首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

为何增加人手并不能使项目进度提高到想象的程度

2012-08-08 
为什么增加人手并不能使项目进度提高到想象的程度??为什么增加人手并不能使项目进度提高到想象的程度?  假

为什么增加人手并不能使项目进度提高到想象的程度?

?

为什么增加人手并不能使项目进度提高到想象的程度?

  假定一个项目估算出来,一个人做需要12个月(客户哪能等那么久,黄花菜都凉了);那么增加到4个人来做,是不是就可以3个月来完成呢,因为总共12个人月嘛。答案是否定的。

?

  因为,如果项目真是一个人来做,不存在沟通的问题,不会存在接口的问题,不会有这样的场景出现:

  项目经理:我们每周开个例会,讨论一下目前的进度;

  技术经理:来,讨论一下设计方案;

  程序员甲:这个需求好像不太明确,你自己弄清楚了再来找我;

  设计人员:方案有变,得重新讨论一下新方案;

  程序员乙:我写的程序没问题,你调用的数据有问题;

  ......

?

  其实,很多人一起做一个项目,有点类似于现在多核时代的并行处理系统,有个阿姆达尔定律对并行系统的处理能力给出了定量的计算公式:

?

人月
  人月(英语:man-month)指的是“一个人要花几个月”才能完成软件开发的单位,通常用来评估一件软件项目的大小。以成本会计(cost accounting)为基础的进度预估技术,使我们误把工作量和项目进度混为一谈,人月是个危险并很容易就遭到误解的迷思(myth),因为它假设人力和工时可以互换。
Brooks法则
  在一个进度已经落后的软件项目中增加人手,只会让它更加落后。根据Brooks法则,增加人员到一个已经延误的项目里,等于是火上加油。除非你可以把工作区分,让新进人员可在不影响他人工作的状况下有所贡献。
  把工作切分给更多人做将造成额外的沟通(communication)代价——训练和相互的交流(intercommunication)。欲增加软件项目的人手,总共必须付出的代价可分为三方面:工作重新切分本身所造成的混乱与额外工作量、新进人员的训练、新增加的相互交流。

?

?

  网上也有人写了文章来讨论“布鲁克斯定律”,比如:

  柳记 浅谈软件开发定律系列之布鲁克斯定律 http://eilfei2000.blog.51cto.com/2956473/738324

?

  下面的文章也很不错:做一个艺术品,只有一个人才可以做好。规模庞大的工程,需要多个人来完成。

  云风的Blog 软件项目需要很多人一起完成可能是一个骗局 http://blog.codingnow.com/2011/05/solo.html

  关于分工合作 http://blog.codingnow.com/2012/01/_oeouoeie.html

?

  PS:为什么会写这么一篇文章呢?因为今天刚好看到最新的《程序员》杂志上的《1024核CPU上的并行编程》一文,突然想到在项目中好像也存在这种并行计算的影子。该文说道“同步所带来的串行化开销是并行程序最大的性能杀手”,同样也可以说“沟通 所带来的时间成本开销是项目的最大进度杀手,但沟通是不可以省略的”。(当然,本文并不是否定团队协作完成项目,因为大多数项目都不可能一个人搞定:一是时间不允许,二是精力不允许,三是能力不允许,四是客户不允许,五是......,最大的原因是没有必要也没有能力一个人扛,钱是公司赚滴,身体是自己的哦

?

?

1 楼 KimHo 2012-06-04   钱是公司赚滴,身体是自己的哦
顶这句
学会利用公司各种资源,改进工作效率才行 2 楼 selvemen 2012-06-04   KimHo 写道钱是公司赚滴,身体是自己的哦
顶这句
学会利用公司各种资源,改进工作效率才行
是的,在项目中更多的是需要有效沟通,和合理的沟通机制 3 楼 rensanning 2012-06-04   引用假定一个项目估算出来,一个人做需要12个月(客户哪能等那么久,黄花菜都凉了);那么增加到4个人来做,是不是就可以3个月来完成呢,因为总共12个人月嘛。答案是否定的。
你的这个假设太极端了,任何项目经理都不可能在只有1个人的前提下,敢做预算来启动一个项目。

PMBOK认为当进度发生偏差时,有两个方法可以用来挽回:赶工和快速跟进。
赶工就是你这里说的加人手,通过增加资源来加快关键路径上的活动从而缩短工期。当然赶工就会增加风险,增加成本。
快速跟进是将预定按顺序执行的活动并行执行从而缩短工期。它所带来的风险是:返工。

任何补救措施都会有风险,不可避免,主要在于项目经理如何降低风险,促使项目顺利进展! 4 楼 facingSun 2012-06-05   ,身体是自己的哦
顶这句
学会利用公司各种资源,改进工作效率才行KimHo 写道钱是公司赚滴,身体是自己的哦
顶这句
学会利用公司各种资源,改进工作效率才行
得学~~ 5 楼 amonlei 2012-06-05   太理论了。。。。。增加人手跟增加处理器节点不一样,培训、人员水平参差不齐。。。。 6 楼 amonlei 2012-06-05   公式所反映的因素,是次要因素,主要因素还是我说所说的,人不是机器, 7 楼 leo_dream 2012-06-05   rensanning 写道引用假定一个项目估算出来,一个人做需要12个月(客户哪能等那么久,黄花菜都凉了);那么增加到4个人来做,是不是就可以3个月来完成呢,因为总共12个人月嘛。答案是否定的。
你的这个假设太极端了,任何项目经理都不可能在只有1个人的前提下,敢做预算来启动一个项目。

PMBOK认为当进度发生偏差时,有两个方法可以用来挽回:赶工和快速跟进。
赶工就是你这里说的加人手,通过增加资源来加快关键路径上的活动从而缩短工期。当然赶工就会增加风险,增加成本。
快速跟进是将预定按顺序执行的活动并行执行从而缩短工期。它所带来的风险是:返工。

任何补救措施都会有风险,不可避免,主要在于项目经理如何降低风险,促使项目顺利进展!
当进度发生偏差时,项目经理肯定要采取措施,保证项目进展顺利。
但是阿姆达尔定律反映的是:增加人手并不能按照理想和预期的进展来大幅缩短工期,不是简单地增加一个人手,就能大幅缩短工期 8 楼 wangyjx 2012-06-05   用一个阶段的例子,给你九个女人,你也不能一个月生一个孩子 9 楼 alanlhy 2012-06-05   各有利弊,并行该法最重要的是每个人都能有一个断层思想,你写的模块需要哪些参数,有需要输出哪些参数,这些 应该都要想好,以至于时间不会耗在模块之间的衔接上。。。当然还有一点是要理解透需求。。。 10 楼 yjl6691088 2012-06-05   钱是公司赚滴,身体是自己的哦
11 楼 yjc2020 2012-06-05   KimHo 写道钱是公司赚滴,身体是自己的哦
顶这句
学会利用公司各种资源,改进工作效率才行


顶啊 12 楼 yjc2020 2012-06-05   架构设计的好,模块分工合理,接口定义清楚。多人开发速度可以提高。 13 楼 bluend1004 2012-06-06   引用没有必要也没有能力一个人扛,钱是公司赚滴,身体是自己的哦
精辟~ 14 楼 ayanami001 2012-06-06   要架构NB。。。 15 楼 skanion 2012-06-06   说得对!!!! 16 楼 Mybeautiful 2012-06-06   说的有理! 17 楼 leonardo_dzh 2012-06-06   mark! 18 楼 wandou 2012-06-06   最大的问题在于,多人开发时,会互相扯皮。不要说哪个公司没有扯皮,每个公司都在扯皮。 19 楼 donglin243870 2012-06-08   有点意思?

热点排行