王建民老师在软件工程课程上为我们推荐了几本专业方面的课外读物,我选择了这本人月神话。
这本书中提到:有外科手术队伍The Surgical Team,贵族专制,民主政治Aristocracy,Democracy,System,画蛇添足The Second-System Effect,贯彻执行Passing the word,
胸有成竹Calling the Shot,削足适履Ten Pounds in a Five-Pound Sack。。。。
最深的体会是:保持设计的概念完整。无论对小软件还是大软件,都必须由一个设计师主导,最多两个人讨论来共同完成软件的整体设计。作为一个软件,一个系统,必须有一个清晰明确的概念模型,大家都在这个框架下工作,所有的创新发展都必须与基本的概念相吻合。具体的实现人员可以细化概念,但只有总设计者才有否定与发展基本概念的权力。需要注意的一点是,即使是总设计师一直是同一个人,他脑海中所认为理所当然的规则或者概念,很可能由于没有明确的文档化,而没有成为所有开发者共同的概念。在其他开发者编码的时候,就可能会生成与概念相抵触的东东(模块,功能,算法),导致整体结构的恶化。这个时候总设计师一定要即时发现,做出更正。
第一章中指出,过去几十年大型系统的开发就像焦油坑一样,虽然各种各样的团队通过各种努力开发出可运行的系统,但只有很少的项目可以满足目标、时间进度和预算的要求。作者还介绍了编程的快乐和烦恼。编程的乐趣主要是创造的乐趣、学习的乐趣。而其烦恼是难以达到完美,必须付出艰苦的劳动,项目似乎总是倾向于推迟完成,最可怕的是产品还未完成就可能已经过时了。作者将为解决这些困难在本书其他章节为大家提出自己的建议。
认为大项目只是增加足够的程序员就能顺利完成,已经对于已经推迟的项目,只要增加人手就能按期完成的看法是错误和危险的,因为它假定人和月是可互换的,而其实将工作分割给许多人、培训和程序员之间的交流都需要额外的工作。Brooks提出:给推迟的软件项目增加人手将使得项目更加推迟。作者同时在本章指出应该谨慎对待弥漫在编程开发中的乐观主义,估算的不可靠行和重要性以及早期策划时应该分配给系统测试足够的时间。
人月神话真的是一本很值得读的书。
原文地址:http://www.cnblogs.com/fengxiaolan/p/3760330.html