《人月神话》(P2)错误的进度估计

简介: 在众多的项目中,缺乏合理的进度安排是造成项目延期最主要的原因,这比其他所有因素加起来影响还要大。这个灾难是怎么发生的呢?所有编程人员都是乐观主义者所有系统的进度安排背后第一个错误的假设是:一切都将运作良好,每项任务仅需要花费它“应该”花费的时间。

在众多的项目中,缺乏合理的进度安排是造成项目延期最主要的原因,这比其他所有因素加起来影响还要大。这个灾难是怎么发生的呢?

所有编程人员都是乐观主义者

所有系统的进度安排背后第一个错误的假设是:一切都将运作良好,每项任务仅需要花费它“应该”花费的时间。对于创造者,只有在实现的过程中,才能发现我们构思的不完整和不一致性。

编程人员通过非常纯粹的思维活动构思程序,所以很容易自信的认为实现过程中不会遇到困难。然而我们的思维是有缺陷的,项目越大,能够按照计划顺利进行的概率就越小。

人月

在估计和进度安排的过程中使用“人月”作为工作量单位是十分荒谬的,是一个带有危险和欺诈性的神话,他暗示着人员数量和时间可以相互替换。然而人数和时间的互换仅仅适用于,某个任务可以分解给参与人员,并且他们之间不需要相互交流的情况。

当不能分解时,人手的添加对进度没有任何帮助,大多数编程工作都具有这种特征。就像你无论找几个妈妈,孕育一个生命总是需要10个月的时间。
对于可以分解的情况,增加人手可以加快进度,但是会提高成本,2个人的效率可能仅等于1.5个人。原因在于沟通、培训、交流等事物增加了工作量,而且所增加的工作量可能会完全抵消任务分解所产生的作用。
软件开发作为一项系统工作,沟通、交流的工作量非常大,它会快速消耗任务分解所节约下来的时间。

系统测试

系统测试进度的安排往往是编程中最不合理的部分,都过于短了。很少项目允许为为测试分配一半的时间,然而大多数项目的测试实际上是花费了进度中一半的时间。

不安排足够的测试时间将会是一场灾难,由此造成的项目延期成本高昂,在早期规划时,保留充分的测试时间非常重要。

作者建议进度安排:

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

以上内容就是原版《人月神话》第二章——人月神话,前三节所讲述的内容。

在本章中,作者试图告诉我们,项目之所以延期,很大部分原因是因为项目在最初的计划阶段,就错误的估计了项目进度

管理人员很容易会认为项目功能完成就意味着开发完成了,没有为测试阶段安排较长时间的意识,往往测试的时间只能占到项目周期的1/8甚至更少。这明显是犯了乐观主义的错误,项目管理人员甚至比开发人员更加乐观。

如果不是站在专业的角度上,似乎很难理解测试阶段所花的时间,更难理解的是为什么增加人手不能让项目进度加快。

目录
相关文章
|
2天前
|
数据挖掘
五种被低估的非常规统计检验方法:数学原理剖析与多领域应用价值研究
本文将详细介绍五种具有重要应用价值的统计检验方法,并探讨它们在免疫学(TCR/BCR库分析)、金融数据分析和运动科学等领域的具体应用。
24 11
|
5月前
|
BI
敏捷项目度量问题之利用「需求燃起图」和「缺陷燃起图」预测项目的完成时间如何解决
敏捷项目度量问题之利用「需求燃起图」和「缺陷燃起图」预测项目的完成时间如何解决
|
8月前
|
机器学习/深度学习 存储 算法
算法人生(4):从“选项学习”看“战胜拖延”(担心失败版)
选项学习是强化学习的一种策略,通过定义、学习和切换选项来解决复杂任务,将大任务分解为可重复使用的子任务,以提高学习效率和适应性。面对因担心失败而拖延的问题,我们可以借鉴选项学习的思想:将大任务拆分为小目标,正视失败作为成长的一部分,回顾成功经验并寻求支持。通过这种方式,逐步增强自信,降低拖延现象。
|
程序员 测试技术 API
统计千行代码Bug率,有没有意义?
统计千行代码Bug率,有没有意义?
991 0
|
算法
软考:计划评审技术(PERT)三点估算法计算工期、标准差、完成概率
软考:计划评审技术(PERT)三点估算法计算工期、标准差、完成概率
250 0
软考:计划评审技术(PERT)三点估算法计算工期、标准差、完成概率
|
持续交付
做了一点微小的工作
重启个人博客/微不足道的开源工作/阅读感悟
186 0
做了一点微小的工作
|
存储 算法 NoSQL
重现死亡现场!对外部数据3D建模,这个尸检算法把死亡时间预测误差缩小到38分钟
重现死亡现场!对外部数据3D建模,这个尸检算法把死亡时间预测误差缩小到38分钟
378 0
|
项目管理
艾伟也谈项目管理,利用简单的一元线性回归分析估计软件项目开发时间
  引言       前两天一个朋友给我打电话,问我如何估计项目开发时间。对此我很诧异,问他以前他们是怎么估计的,他说以前基本都是大家开个会,大约都说说自己意见,最后负责人一拍脑袋,给出一个时间。不过这次遇到一个非常认真的客户,要求不但要估计出项目开发时间,还要明确说明具体的依据和估算方法,这下我这朋友有点犯难,才询问我。
1288 0

热门文章

最新文章