阅读经典——《人月神话》02
何谓人月神话——The Mythical Man-month?讲真,这句英语按字面来理解似乎应该是“神话般的人月”,翻译成人月神话虽然有新意,却不易理解。
人月是个工作量单位,1人月相当于1人1月的工作量。那么“神话般的人月”就是说这个工作量单位有种神话色彩。
过于乐观的软件经理会认为总工作量可以用人月来表示,而人月自然就可以用人数乘以月份来计算。于是,12人月可以等于1人12个月,或是3人4个月,或是12人1个月。
然而事实并非如此,人数增多会增加沟通成本,导致12人并不能在1个月内完成任务。而且,人数具有上限,当人数超过可分解任务数时,再增加人数非但不能提高效率,反而会延长完成时间。懂得并行编程的朋友应该更容易理解这种情况。
那么,在实际开发中,如果进度晚于预期,我们是否应该增加人手以提高开发速度呢?本书作者Brooks给出的答案是:向进度落后的项目中增加人手,只会使进度更加落后。这就是除去了神话色彩的人月。正确的做法是,重新安排进度,在新的安排中分配充分的时间,以确保任务能够仔细、彻底地完成,这可能要以延期为代价;另一种方案是削减任务,并调整项目进度表,以保证如期完成。