人月神话阅读笔记01

第一章:焦油坑(岸上的船儿如同海上的灯塔,无法移动)

  过去的大型系统开发就如一个焦油坑,很多强壮的动物在里面剧烈的挣扎,大多数开发出了可运行的系统,但只有少数能满足目标、进度和预算的要求。程序本身是一个普通的产品,但是,经过两种途径可以让程序变为更有用的(但是成本更高):编程系统,编程产品,这样便形成了编程系统产品,是真正有用的产品,是开发目标。职业是快乐的,同时也是充满苦恼的。

第二章:人月神话(美食的烹饪需要时间;稍等片刻,更多美味,更多享受)

  一个软件项目,最重要的是合适的进度安排:估算技术、缺乏信心、缺少跟踪和监督、火上浇油,常常我们会因为这些导致灾难。简单地保持乐观主义会使得我们进度安排出现偏差,很难进行顺利。简单地使用人月单位来估计和进度安排,这是受多方面影响的。系统测试也是极为重要,同时,空泛的估算也轻易地引发问题。进度灾难也时有发生,项目进度落后,只能加速,增派人手,但是结果往往不容乐观,只会让进度更落后。

第三章:外科手术队伍(研究表明,效率高和效率低的实施者之间的个体差异非常大,经常能够达到数量级的水平)

  好的程序员和坏的相比较,在编程速度所涉及的生产效率有着惊人的差异,经验和实际表现也是没有实际的联系。工作的人手在不同的工作项目中有着不同的需求,最好的解决办法就是,一个部分由一个团队解决,同时优化编程队伍,符合道理的角色分工、协调,便可解决这一问题。

第四章:贵族专职、民主政治和系统设计

  编程系统是为了使计算机更加容易使用,所以他被装备了各种语言和工具,能用最简洁和直接的方式来指明事情的系统是最好的,易用性实际上是需要设计上的一致性和概念上的完整性。概念的完整性要求设计必须由一个人,或者非常少数互有默契的人员来实现。不能与系统基本概念进行整合的良好想法和特色,最好放到一边,不予考虑。在外部说明完成之前,设计实现人员有很多事情可以做。只要有一些最终将并入外部说明的系统功能雏形,他就可以开始了。

第五章:画蛇添足(聚沙成塔,集腋成裘)

  画蛇添足就过分设计,而书中很明确的指出了过分设计往往出现在设计和开发第二个系统的时候,对于第一个系统他们小心谨慎,倾向于精炼和简洁,但是到了第二个系统他们太想去追求完美,又加上盲目的自信,再加上没有太多的成本和进度等意识,导致了画蛇添足和过分设计。结构师如何避免画蛇添足——开发第二个系统所引起的后果?结果是,他无法跳过二次系统。但他可以有意识关注那些系统的特殊危险,运用特别的自我约束准则,来避免那些功能上的修饰;根据系统基本理念及目的变更,舍弃一些功能。

第六章:贯彻执行(他只是坐在那里,嘴里说“做这个!做那个!”当然,什么都不会发生,光说不做事没有用的)

  假设一个项目经理已经拥有行事规范的结构师和许多编程实现人员,那么他如何确保每个人听从、理解并实现结构师的决策?对于一个由1000人开发的系统,一个10个结构师的小组如何保持系统概念上的完整性?办法就是:要有文档化的规格说明—手册,形式化定义,直接整合,会议和大会,多重实现,电话日志,产品测试。

 

个人感受:

  开始阅读《人月神话》之后,逐渐开始发现了软件工程的世界,软件工程真的不是传统意义上的会写代码,会写文档就可以了。软件工程真的是一门工程,就像土木工程、电气工程,他不是单纯的科学研究,而不是一味的讲究编写代码,而是一门工程,教会我们软件工程,了解整个软件制作的流程与关键点,学习如何去完成整个项目,预知将会遇到的问题以及如何去解决他们。这都是十分关键且重要的,这才是软件工程的本质。

posted @ 2016-06-13 18:40  YangLna  阅读(179)  评论(0编辑  收藏  举报