当一项工作延误的时候,人们最早想到的方法就是就是增加人员,有时候这是一个简单而有效的方法.那么在软件开发的时候如果工期耽误的情况下增加软件开发人员是否可以有效地缩短开发工期.很多人员都认为是理所当然的事情.而令人奇怪的这个理论有时候会产生很好的效果,有时候却会导致项目的延期加剧,甚至这个项目的失败.这到底是为什么?
软件工程有一个很著名的理论就是:在软件项目延期的时候,盲目地增加开发人员不但不会加快项目的开发速度,而且可能导致项目的延期程度的加剧,理由很简单,软件开发的一个特点就是需要大量的人员之间的交流,而这些交流时间随着开发人员的增加会急剧增加从而延误开发,举一个例子,一个开发组如果只有3个开发人员,每人年的开发代码量为1万行,每两个人之间交流浪费的开发时间为1千行,则一年的实际开发量应该为:
1万行*3-1千行*(2+1)=2万7千行,如果项目增加7个人,(其他参数不变),1万行*10-1千行*(9+8+7+6+5+4+3+2+1)=5万5千行,在10个人开发组,人员增加到原来的3.3倍,但效果只增加到原来的2倍.如果是人员增加到15人,则项目组实际开发结果为15-11.25=3.75万行,从这里可以看出,在继续增加人员,工作效果会越来越低(每年的开发代码量越来越少).从这个公式代入不同的人员数目可以看到如下的数据:
开发人数 工作效果 人员交流浪费的时间 实际工作效果(单位的千行代码/年) 生产率
1 10 0 10 100
2 20 1 19 95
3 30 3
软件工程有一个很著名的理论就是:在软件项目延期的时候,盲目地增加开发人员不但不会加快项目的开发速度,而且可能导致项目的延期程度的加剧,理由很简单,软件开发的一个特点就是需要大量的人员之间的交流,而这些交流时间随着开发人员的增加会急剧增加从而延误开发,举一个例子,一个开发组如果只有3个开发人员,每人年的开发代码量为1万行,每两个人之间交流浪费的开发时间为1千行,则一年的实际开发量应该为:
1万行*3-1千行*(2+1)=2万7千行,如果项目增加7个人,(其他参数不变),1万行*10-1千行*(9+8+7+6+5+4+3+2+1)=5万5千行,在10个人开发组,人员增加到原来的3.3倍,但效果只增加到原来的2倍.如果是人员增加到15人,则项目组实际开发结果为15-11.25=3.75万行,从这里可以看出,在继续增加人员,工作效果会越来越低(每年的开发代码量越来越少).从这个公式代入不同的人员数目可以看到如下的数据:
开发人数 工作效果 人员交流浪费的时间 实际工作效果(单位的千行代码/年) 生产率
1 10 0 10 100
2 20 1 19 95
3 30 3