文章主要讲了在软件开发工程项目中,时间和人员数量上的转化关系。表明了在一个项目中增加人员的数量不一定能够缩短项目完成的时间,很多时候还会起到相反的作用。正如Brooks法则中所说的那样“想进度落后的项目中增加人手,只会使进度更加落后”。
在软件项目中,缺乏合理的时间进度使造成项目滞后的最主要的原因。造成这个结果主要由于以下几个方面,包括我们对工程的乐观的估计,错误的认为人和月(时间)可以无条件的相互替代,软件经理不合理的估算和缺少对进度的跟踪和监督。
在编程人员中弥漫着乐观主义,他们通常会认为一切都将运作良好,每一项任务仅花费它所应该花费的时间。但是人员的构思总是会存在某些偏差,导致了idea是很好的,但在实现的过程中出现问题,这种结果会严重的影响到软件工程最终的完成时间。所以说在做一个项目的时候,人们不应该盲目的乐观。
文章对造成项目滞后的第二个原因进行了详细的论述,为我们否定了一个关于“人月神话”谬论。“人月神话”的主要内容是人员数量和时间是可以相互替代的。事实上,人员数量和时间是不可以无条件的相互替代的。文中也表明了人员数量和时间的互换仅仅适用于以下情况:摸个任务可以分解给参与人员,并且他们之间不需要相互的交流。只有在这种可分解的任务中人月神话是存在的。但是在更多的情况下,由于任务常常是不可分解的,而且需要人员之间的大量的相互沟通。这时候,一味的增加开发人员不会缩短时间的进度,相反还很有可能比没增加人员的时候完成的时间还要晚。在文中作者也举了一个例子,假定没有在规定的时间内完成任务,达到第一个里程碑,项目经理可以有四种选择的方案。1,在原来3个人的基础上增加了2个人。2,将原来的3个人增加到9个人。3,重新安排进度。4,削减任务。作者说明了项目经理往往倾向于选择削减任务来减少后续的成本,也说明了第一种和第二种方案的不可行。因为增加了人员就要对他们进行培训,这是需要时间的,还有就是会出现重复工作的问题,原先由3个人负责的工作分解到了由5个人来工作,这就导致了某些已经完成的工作必然会丢失,丢失的工作还需要再做一遍,这也导致了时间的浪费和延长。这样一来,表面上看来投入了更多的人力,可是结果还是和没有增加人手一样或许更糟。说明了时间和人员数量是不可替代的。
原文地址:https://www.cnblogs.com/123456www/p/10989086.html