通读完《人月神话》之后,了解到了许多有关软件项目管理的经验,丰富了自己的专业知识,也有了很多的感触。
在软件项目管理领域很少能有像《人月神话》一样具有强大的影响力和畅销不衰。Brooks为任何人管理复杂项目提供了颇具洞察力的见解,有很多发人深省的观点,也有大量的软件工程实现。在这本书中Brooks重新审视了他原先的观点,增加了一些新的想法和建议。
第一章:焦油坑。讲述了过去几十年的大型系统开发犹如一个焦油坑。在水平边界以下,程序变成编程产品,这是可以被任何人运行、测试、修复和扩展的程序。编程作为一门职业也有着纯粹的快乐,但是在这个过程中并不都是喜悦,所以要追求完美,做出好的产品。
第二章:人月神话。众多软件项目中,缺乏合理的时间进度是造成项目滞后的最主要原因。造成普遍性灾难的原因:对估算技术缺乏有效的研究;对于自己的估算缺乏信心;对进度缺少跟踪和监督。在这章中也懂得了要有乐观的精神,但是不能盲目乐观,需要有科学的依据。
第三章:外科手术队伍。 要注重团队的协作能力。Mills建议大型项目的每一个部分由一个团队解决,但是该队伍以类似外科手术的方式组建。
第四章:贵族专制、民主政治和系统设计。在系统设计中,概念完整性应该是最重要的考虑因素。对团队实行专制统治,从而产生概念一致,功能完备且系统的,能够得到客户满意的产品。
第五章:画蛇添足。在开发第一个系统时,结构师倾向于精炼和简洁。第二个系统是设计师们所设计的最危险的系统。而项目经理更应该懂得如何避免画蛇添足,这样,才会使项目得到完整的体现。
第六章:贯彻执行。以用户手册为中心,设计人员与实施人员要通过非常正式的交流、会议、电话记录、电子邮件等进行充分的沟通。手册需精确,避免有错误,最终测试结构以用户手册为准则进行测试。
第七章:为什么巴比伦塔会失败?大型软件项目的组织是交流的结果,组织的目的是利于交流。组织分为两部分:文档的组织像没有工作手册和人员的组织。
第八章:胸有成竹。实践是最好的老师。估算有3个要素:1.实践2.量化指标3.根据量化的指标建立模型。实现->量化指标->估算模型->实现->量化指标->重新建立模型。
第九章:削足适履。主要讲程序占用资源的控制。要进行规模控制,创造一些空间技能。
第十章:提纲挈领。计算机产品的文档目标是定义待满足的组织和需要,定义迫切需要的资源、约束和优先级。要有正式的文档。
第十一章:未雨绸缪。1.使用原型开发2.唯一不变的就是变化。3.软件维护占总项目%工作量4.交付给客户的不是产品,而是满意度5.修复bug会以20%-50%的几率引入新bug。
第十二章:干将莫邪。对于骨干人员来讲保管自己工作生涯中搜集的一套工具集,这些工具成为个人技能的直观证明。
第十三章:整体部分。1.防范bug要从产品定义开始2.先让各个部分能够单独工作,再进行整体联调。
第十四章:祸起萧墙。PERT图,清晰可测量的里程碑,配合进度信息真实反馈和审查,可以避免进度的落后。
第十五章:另外一面。文档是必须的,但文档的工作量应该最小化。
第十六章:没有银弹——软件工程中的根本和次要问题。这是一篇论文,作者认为软件项目具有人狼的特性。作者通过软件系统的内在特性复杂性、一致性、可变性和不可见性来分析说明了软件天生就没有银弹。
第十七章:再论《没有银弹》。软件开发有着根本的困难,但有可用的改进方法。
对于软件项目由一开始的焦油坑状态到一直以来不断发现问题,了解问题直到进一步的解决问题。印象最深的就是著名的Brooks法则:对于进度以落后的软件开发计划而言,若在增加人力,只会让其更加落后。人们常拿人月来计算软件的工作量,但是Brooks发现软件的开发工作是需要人与人之间的沟通的,这才使得设计工作不易分割。