软件项目的进展并不能用简单的线性关系抽象。软件开发不是一项简单重复的体力劳动。设想如果一个人要搬东西,假设他一个人需要一个小时搬完,但是如果他再找来5个人一起搬,可能只需要十分钟。软件开发比这要复杂的多;如果一个人用十天能做完的一个项目,他做到第五天后想找人来一起做,这就不是找五个人一天就能做完的事情。也许完成项目花费的时间比十天还要多。他要花时间为新加入的队员介绍项目,为他们合理分工,如果有一人没按时完成,所有人都要停下等待……由此引出一系列不可预估的问题。复杂度大大提高。总之:从项目的人数和时间两个维度考虑,都不能以人月作为软件开发度量:1.人数的增加对软件开发的贡献不是线性增长的(队友之间有协作交流的问题)。2.每个人在项目开发中的工作量也不是线性递增的(开发的过程中复杂度提高)。他们可能会是log(o)或更复杂的情况。

总之,我认为在软件开发中,合理评估参与人数和时间是一项很有挑战并且需要经验性的工作。同时,应该尽量减少或避免人员的改动。

posted on 2017-06-08 19:58  路路路路啊  阅读(104)  评论(0编辑  收藏  举报