标签:
在阅读《人月神话》这样具有深远影响力作品后,我对软件工程又有了新的认识。Brooks 博士为人们管理复杂项目提供了最具洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践,具有深远的影响。Brooks被认为是“IBM 360系统之父”。
《人月神话》讲解软件工程、项目管理相关课题,被誉为软件领域的圣经。该书于1975年首次发行,并于1995年重新发行纪念版,其中新增了对《没有银弹》一文的评论和回应,与4个额外的新章节,其中《没有银弹》被证明是富有煽动性的,预言十年内没有任何编程技巧能够给软件的生产率带来数量级上的提高,《没有银弹》激起了越来越多文字上的剧烈争论。
书中应用焦油坑表示过去几十年的大型系统开发,很多大型和强壮的动物在其中剧烈挣扎。让我感觉到,软件开发过程中所遇到困难是多么的多,开发多么艰难。但是这本书同时告诉了我们软件的开发有苦也有乐,我们可以在编程过程中体会那份快乐。《人月神话》是为软件开发经验的天马行空总结。比《Beautiful code》更为有远见,把我从充实代码的清晰简介升华,拓展到软件开发的高层度, 一个周密,准确,明朗的开发需求分析,可行性研究,软件实现是软件开发的完美递进。
人与神话中讲述人力和时间并不体现线性关系。指出以大量人员和较短的时间,并不能缩短软件的开发进度。一窝蜂的作业方式无助于软件生产,且会制造麻烦,产生出更差的软件。向进度落后的项目追加人力,只会使进度更加落后。所有的编程人员都应该是乐观主义。人数和时间的呼唤仅仅适用于:某个任务可以分解给参与人员,并且他们之间不需要相互的交流。软件开发的多少人参与和完成时间不成正比,过多的人参与并不一定能缩短开发时间。参与软件开发的人增加,软件的花费将提高,刚参加这需要时间了解项目,给软件管理带来了不协调。概念完整性和架构师是任玥神话的核心法则。一个整洁、优雅的变成产 品必须向它的每位用户提供一个条理分明的概念模型,这个模型描述了应用,实现应用的方法以及用来指明操作和各种参数的用户界面使用策略。概念的完整性是易用性中最重要的因素。而架构师,则是负责保证产品所有方面的概念完整性的,架构师设计的是能够让用户理解产品概念的模型,这包括所有的功能的详细说明以及调用和控制的方法。概念完整性将软件开发连成了一条钻石项链,每个部分都不可忽视,不可取代。整体的抽象完整时软件管理的灵魂。正因为如此,可见架构师的重要性。因此另一方面 把工作切分给更多人做将造成额外的沟通代价——训练和相互的交流。欲增加软件项目的人手,总共必须付出的代价可分为三方面:工作重新切分本身所造成的混乱与额外工作量、新进人员的训练、新增加的相互交流。
外科手术团队中说明了,效率高和效率低的实施者之间具体的差别非常大,经常达到数量级的水平。在接受相同的训练、同样都是两年资历的情况下,优秀专业程序员的生产力要比差劲的程序员好上十倍。短小精悍团队是最棒的——尽可能用最少的人。两人团队,其中一人当领导者,这通常是最佳的用人方式。软件编码实现过程中,需要不是人多,而是少而精的优秀程序员,编码员。所以整体程序员的素质很重要,有必要培训提高素质。
“画蛇添足”:《人月神话》的第二系统效应就一个人所做过的设计而言,第二个系统是最危险的系统,一种普遍倾向是过分设计第二个系统,向系统添加很多修饰功能和想法,倾向于将之前已熟悉的技术发挥到淋漓尽致,但却没有留意到,这项技术早就跟目前项目的基本系统假设有冲突而不再适用,有些画蛇添足,并不会给软件管理带来好处。
《人月神话》这本书使我对软件工程有了新的认识,认识到了自已以前的不足。它从各个方面分析了软件开发的模式及编程者应该有的心态和素质,真的是一本很有教育意义的书籍,这本书流行了20多年真的是有其深刻的教育意义!
标签:
原文地址:http://www.cnblogs.com/1305yyf/p/4296988.html