《人月神话》笔记——第一章&第二章

第一章 《焦油坑(The Tar Pit)》

  在这一章中,作者首先带领我们了解了软件开发这一职业。

  作者认为:从业者可以从这一职业中得到乐趣。首先是一种创建事物的纯粹快乐;其次,快乐来自于开发对其他人有用的东西;第三是整个过程体现出魔术般的力量;第四是学习的乐趣,来自于这项工作的非重复特性;最后,乐趣还来自于工作在如此易于驾驭的介质上。同时,作者又清醒地指出:编程有一些固有的苦恼。首先,必须追求完美;其次,是由他人来设定目标,供给资源,提供信息。而且,概念性设计是有趣的,但寻找琐碎的bug却是一项重复性的活动;另外,很多情况下,调试和查错往往是线性收敛的;最后,作者指出有些产品在尚未投入使用时已显过时,最终被更新、更好的构思取代。

  所以,作者将编程这一乐趣与苦恼共存的创造性活动比作一个许多人痛苦挣扎的焦油坑。

第二章《人月神话(The Mythical Man-Month)》

  ——“缺乏合理的时间进度是造成项目滞后的主要原因。”

  在这一章中,作者分析了软件开发过程中导致项目滞后的几种原因,很多是开发者的错误认知造成的。

  作者首先指出:缺乏合理的时间进度是造成项目滞后的主要原因。首先,我们对估算技术缺乏有效的研究;第二,我们采用的估算技术隐含地假设任何月可以互换,错误地将进度与工作量相互混淆;第三,由于对自己的估算缺乏信心,软件经理通常不会有耐心持续地进行估算这项工作;第四,对进度缺少跟踪和监督;第五,当意识到进度的偏移时,下意识(以及传统)的反应是增加人力。

  编程过程中,人们往往过于乐观,给我们的判断带上了主观色彩。人数和时间的互换只适用于可以将任务分解给参与人员并且他们之间不需要相互的交流的情况。否则,当任务由于次序上的限制不能分解时,人手的添加对进度没有帮助。而对于关系错综复杂的任务,人手的增加反而带来时间的增加。由于人们的乐观主义,通常实际出现的缺陷数量比预料的要多得多。因此系统测试所花时间要比预测的多很多。

posted @ 2017-10-10 22:48  ForSouth  阅读(195)  评论(0编辑  收藏  举报