《人月神话》笔记

《人月神话》揭示了软件项目管理的关键问题,如人员与时间的误解、沟通效率、系统设计的重要性。文中提出了首席程序员的外科手术团队模式,强调概念完整性,指出过度设计的危险,以及有效的文档与沟通对于项目成功至关重要。此外,文章探讨了如何应对变化,提倡使用高级语言和自文档化程序,以减少维护成本和错误。
摘要由CSDN通过智能技术生成

人月神话(The Mythical Man-Month)

在众多软件项目中,缺乏合理的时间进度是造成项目滞后的最主要原因,它比其他所有因素加起来的影响还大。
人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。它暗示着人员数量和时间是可以相互替换的。
人数和时间的互换仅仅适用于以下情况:某个任务可以分解给参与人员,并且他们之间不需要相互的交流。

无论多少个母亲,孕育一个生命都需要十个月。

对于软件任务的进度安排,以下是我使用了很多年的经验法则:

  • 1/3计划
  • 1/6编码
  • 1/4构件测试和早期系统测试
  • 1/4系统测试,所有的构件已完成

进度落后时,削减任务常常是唯一可行的方法。

Brooks法则:向进度落后的项目中增加人手,只会使进度更加落后。(Adding manpower to a late software project makes it later)

外科手术队伍(The Surgical Team)

同样有两年经验而且在受到同样的培训的情况下,优秀的专业程序员的工作效率是较差程序员的十倍。(Sackman、Erikson和Grand)

需要协作沟通的人员的数量影响着开发成本,因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不当所引起的不良结果(系统调试)

Mills建议大型项目的每一个部分由一个团队解决,但是该队伍以类似外科手术的方式组建,而并非一拥而上。由一个人来进行问题的分解,其他人给予他所需要的支持,以提高效率和生产力。

外科医生。Mills称之为首席程序员。他亲自定义功能和性能技术说明书,设计程序,编制源代码,测试以及书写技术文档。他使用例如PL/I的结构化编程语言,拥有对计算机系统的访问能力;该计算机系统不仅仅能进行测试,还存储程序的各种版本,以允许简单的文件更新,并对他的文档提供文本编辑能力。首席程序员需要极高的天分、十年的经验和应用数学、业务数据处理或其他方面的大量系统和应用知识。

贵族专制、民主政治和系统设计(Aristocracy, Democracy, and System Design)

主张在系统设计中,概念完整性应该是最重要的考虑因素。也就是说为了反映一系列连贯的设计思路,宁可省略一些不规则的特性和改进,也不提倡独立和无法整合的系统,哪怕它们其实包含着许多很好的设计。
概念的完整性要求设计必须由一个人,或者非常少数互有默契的人员来实现。
对于非常大型的项目,将设计方法、体系结构方面的工作与具体实现相分离是获得概念完整性的强有力方法。

画蛇添足(The Second-System Effect)

在开发第一个系统时,结构师倾向于精炼和简洁。他知道自己对正在进行的任务不够了解&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值