2023.03.23 读书笔记:第2章 《人月神话》
《人月神话》第2章:《人月神话》
Good cooking takes time. If you are made to wait, it is to serve you better, and to please you.
美食的烹饪需要时间;片刻等待,等多美味,更多享受。
缺乏合理的进度安排是造成项目滞后的最主要的原因。导致“缺乏合理的进度安排”普遍出现,有以下原因:
1、编程人员太过“乐观主义”。此处的“乐观主义”表现在:一切任务都运作良好,每一项任务仅花费它所“应该”花费的时间。出现这种现象的原因,作者在书中引用《The Mind of the Maker》解释——“创造性活动分为三个阶段:构思、实现、交流。” 实现的过程中才能发现我们构思的不完整性和不一致性,即缺少了“实现”这一步骤,或者说是实践不够。结合编程工作,编程语言的易于驾驶让我们产生“乐观主义”,大型的编程工作中,出现正常的概率非常小。
2、将“人月”作为衡量工作的单位,错误地认为人员数量和时间是可以相互替换的。数量和时间可以相互替换地情况仅适用于:某个任务可以分解给参与者,并且他们之间不需要交流。当任务不可分解,人员增加,沟通增加,就是图 2-4 的情况,纵轴“月”不降反升。沟通增加了两部分负担:培训和相互的交流。它们或者只说沟通也算作工作量的一部分。
3、系统测试进度安排不合理。系统测试明明是软件任务安排中很重要的部分,却很少会为测试花费一半时间。以下是作者凭借多年经验得出的时间安排:
5、重复产生的进度灾难。这其实就是作者自己提出的著名的Brooks法则:向进度落后的项目中增加人手,只会使进度更加落后。如果阶段性任务未完成,项目经理会忍不住增加更多的人力。
(横轴是月,纵轴是人数,比如刚开始是3人,之后是5人。人数乘以对应月,就是项目所需人月,ABC是书中假设的工作里程碑)
(曲线图片来源:《人月神话》40周年中文纪念版 )
菜鸟学习新词
缺陷率图表:https://blog.csdn.net/emag_testage/article/details/305244 (但是这篇也是别人转载并且图片没有了)
本文作者:VivianMarie
本文链接:https://www.cnblogs.com/Vivianmaire/p/17249344.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步