人月神话读书笔记

第一章—焦油坑。焦油坑是作者用来形容大型系统开发的一个概念。在史前时代,恐龙、猛犸象、剑齿虎这些大型食肉动物碰到焦油坑也是没有办法挣脱的,而且越用力就越容易被沉入坑底。这就像我们大型系统开发的工作。我们认识到真正的大型编程系统产品并不是简单程序的简单堆叠。这也就是所谓的“焦油坑”。既然是明知是焦油坑,那我们为什么要跳进去呢?因为软件开发有其独有的的乐趣。比如创建事物的快乐、开发对其他人有用的东西的乐趣、面对不重复的任务不断学习的乐趣。

第二章—人月神话。1、所有的编程人员都是乐观主义者:“一切都将运作良好”。所以系统编程的进度安排背后的第一个假设是:一切都将运作良好,每一项任务仅花费它所“应该”花费的时间。计算机十分容易掌握,编程人员通过非常纯粹的思维活动来开发程序。而我们的构思是有缺陷的,因此常有bug。2、我们围绕成本核算的估计技术,混淆了工作量和项目进展。用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。它暗示着人员数量和时间是可以相互替换的。3、作为一个学科,我们缺乏数据估计。因为我们对自己的估计技术不确定,所以在管理和客户的压力下,我们常常缺乏坚持的勇气。非阶段化方法的采用,少得可怜的数据支持,加上完全借助软件经理的直觉,这样的方式很难生产出健壮可靠和规避风险的估计。4、Brook法则:向进度落后的项目中增加人手,只会使进度更加落后。

第三章—外科手术团队。面对软件项目的“焦油坑”以及“人月神话”,作者给出的一个解决办法是——“外科手术队伍”。分别是外科医生、管理员及其文秘、编辑及其文秘、副手、程序职员、工具维护人员、测试人员和语言专家。有研究表明,同样有两年经验而且受到同样培训的情况下,优秀的专业程序员的生产率是较差程序员的10倍。在软件项目中,一个小型的、精干的队伍是最好的,这样既减少了沟通成本,又提高了生产率。但是对于真正意义上的大型系统来说,小型精干的队伍往往意味着太慢。这就是矛盾的所在,对于效率和概念的完整性来说,最好由少数精干的人员来设计和开发,而对于大型系统来说,则需要大量的人手,以使产品能在时间是满足市场的需求。

第四章-贵族专制、民主政治和系统设计。作者认为概念完整性才是最重要的因素。就是说,为了反映一系列连贯的设计思路,宁可省略一些不规则的特性和改进,也不提倡独立和无法整合的系统,哪怕它们其实包含着许多很好的设计。概念的完整性要求设计必须由一个人,或者非常少数互有默契的人员来实现。而进度压力却要求很多人员来开发系统。

第五章—画蛇添足。尽早交流和持续沟通能使结构师有较好的成本意识,以及使开发人员获得对设计的信心,并且不会混淆各自的责任分工。牢记是开发人员承担创造性和发明性的实现责任,所以结构师只能建议,而不能支配;时刻准备着为所指定的说明建议一种实现的方法,同样准备接受其他任何能达到目标的方法;

第六章—贯彻执行。手册、或者书面规格说明,是一个非常必要的工具。手册是产品的外部规格说明,它描述和规定了用户所见的每一个细节;同样的,它也是结构师主要的工作产物。手册的作者必须注意自己的思路和语言,达到所需要的精确程度。

posted @ 2023-03-31 19:53  一个不会起名字的人  阅读(34)  评论(0编辑  收藏  举报