为什么大型项目会失败?

为什么大型项目会失败?这个问题困扰了许多软件开发者和软件公司很多年。
首先何为大型项目,有一种观点就是超过了10000行有效代码的就可以称作为项目,而超过100000行代码的项目就可以称作大型项目了。另一种观点是认为,超过500个人月的项目就可以认为大型项目了。更有甚者,大型项目基本上不用人月来计算,直接用人年来计算,超大型项目都是500人年以上的项目。
即使是这样的项目,最终也不免遇到项目无法推进而被迫取消,或者项目投入超预期,另外项目的成果和预期成果差异巨大,无法使用诸如此类的问题而导致最终的失败。
原因是什么呢?众说纷纭。难道团队不够优秀吗?难道没有引入最佳实践吗?难道资金不够吗?不,其实在大型项目开始之初,就知道会使用最好的资源,用最佳实践来进行开发。但是依然无法避免最终的失败。
从《人月神话》开始,就一直把最终的问题归集于沟通。大型项目参与的人太多,从而导致沟通不畅。这种不畅不仅仅包括覆盖面的方面,也就是项目的所有信息并不是透明的,许多人至始至终都无法获得所需的信息开展工作。另外一方面就是信息传递过程中出现的歧义的问题,导致大量的信息冗余和信息失真,最终在蝴蝶效应的影响下导致了项目的失败。
按照weinberg的说法,所有问题最终就是人的问题。
而人的问题,最终也就是管理问题。
我们在《快速软件开发》中看到,尽管所有人都知道什么是最佳实践,什么是正确的,总是妄想超越正常,实现不切实际的目标。这和投资市场的投机行为相类似,投机总是会有成功者,但是大部分的都血本无归。而所有的投机者仍然以成功者为榜样,坚信自己能够打败市场。
说穿了,是大家在进行一个大型项目的过程中,并没有坚持自己的原则和客观事物的发展规律。按马爷爷的说法,自然要被历史抛弃。
所以大型项目失败归根到底是个哲学问题,它涉及到世界观和方法论两方面的问题。所以RUP强调是原则,而在原则不变的情况下使用各种过程都可以得到好的结果。

猜你喜欢

转载自belmount.iteye.com/blog/786715