项目管理需要变革
项目需要事先规划,在定好的时间、工作量和计划下去完成它。项目有其目的和目标,并且通常必须在限定的时间和预算内完成。
如果你正在阅读本书,那么你可能是项目经理、项目发起人、项目团队成员,或者在某些方面受项目影响的人。
敏捷方法是对项目管理现代化需求的一种响应。为了理解敏捷方法如何革新产品开发,你有必要了解一些项目管理的历史和作用,以及当前项目遇到的问题。
现代项目管理的起源
项目自古以来就广泛存在。从中国的长城到蒂卡尔的玛雅金字塔,从印刷术的发明到互联网的出现,人们通过各种项目取得了或大或小的成就。
众所周知,项目管理作为一门正式的学科出现于20世纪中期。在第二次世界大战前后,全世界的研究人员在计算机制造和编程领域取得了巨大进展。为了完成这些项目,他们开始建立正式的项目管理流程。第一个流程是以美国军方在第二次世界大战中使用的逐步制造模型为基础。
人们在计算领域采用这种逐步制造流程是由于早期与计算机相关的项目严重依赖于硬件,当时的计算机体积庞大,足以塞满一整间屋子。相对而言,软件在整个计算机项目中只是很小的一部分。在20世纪40至50年代,计算机可能装有数千枚真空管,但只有不到30行的程序代码。20世纪40年代,在这些最初的计算机上使用的制造过程是众所周知的瀑布式项目管理方法论的基础。
1970年,一位名叫温斯顿·罗伊斯(Winston Royce)的计算机科学家为电气与电子工程师学会(IEEE)写了一篇名为《管理大型软件系统的开发》(Managing the Development of Large Software Systems)的论文,描述了瀑布式方法论的阶段划分。术语“瀑布”是后来被命名的,尽管有时阶段名称的叫法不同,但本质上和罗伊斯最初的定义是差不多的:
(1)需求;
(2)设计;
(3)开发;
(4)集成;
(5)测试;
(6)部署。
在瀑布式项目中,只有在前一个阶段完成之后,你才能进入下一个阶段——因此它被形象地取名为“瀑布”。
这叫技术支持
纯粹的瀑布式项目管理(也就是在开始下一步之前必须完成上一步)实际上是对罗伊斯建议的误解。罗伊斯其实已经认识到这种方法的内在风险,并建议在多次迭代中进行开发和测试,以创建产品。但该建议被很多采用瀑布式方法论的组织所忽视。
在2008年被基于敏捷技术的改进方法超越之前,瀑布式方法论是软件开发领域中最常用的项目管理方法。
现状中的问题
自20世纪以来,计算机技术已经发生了巨大的变化。许多人手腕上就有一台“计算机”,比起人们刚开始应用瀑布式方法论时所使用的最大、最昂贵的机器,这台“计算机”具有更强大的功能、内存和性能。
同时,使用计算机的人也发生了变化。人们为普通大众生产了硬件和软件,而不是只为少数研究人员和军方生产只有最少量程序的如庞然大物般的机器。在许多国家,几乎所有人每天都在使用平板电脑或者智能手机。软件应用于我们的汽车、家用电器和住房中,提供给我们日常的信息和娱乐。甚至幼儿都在使用计算机——我朋友两岁大的女儿使用智能手机几乎比她父母更熟练。人们对于更新、更好的软件产品的追求是永恒的。
不知何故,当所有的技术都在发展的时候,唯独流程依旧停滞不前。软件开发者仍在使用20世纪50年代以来的项目管理方法论,而这些方法源自20世纪中期以硬件为主的计算机制造流程。
当今,传统型项目的成功总会遭遇范围膨胀的问题,即在项目中引入了不必要的产品特性。看看你每天使用的软件产品吧。比如,我们现在正在打字的字处理程序就具有很多特性和工具。即便我们每天都在用该程序进行写作,也只是使用其中一小部分特性。程序中有相当多的工具我们从未使用过,也没想过要用,我们甚至不知道还有其他人曾使用过它们。这些很少有人使用的特性就是范围膨胀的结果。
范围膨胀出现在所有类型的软件中,从复杂的企业应用到每个人都在使用的网站。如图1-1所示,斯坦迪什集团的研究表明,范围膨胀是普遍存在的,有80%被要求开发的特性不经常或从未被使用过。
图1-1中的数字显示了时间和金钱的巨大浪费。这种浪费是传统项目管理流程不能适应变化的直接后果。项目经理和干系人知道项目中期的变更不受欢迎,因此,项目初期是他们获得潜在所需特性的最佳时机,所以他们要求:
>>他们所需要的一切;
>>他们认为他们可能需要的一切;
>>他们想要的一切;
>>他们认为他们可能想要的一切。
图1-1显示的统计数据就是产品特性膨胀的最后结果。
图1-1实际使用到的被要求开发的软件特性
资料来源:斯坦迪什集团,2017
软件项目的成功与失败
软件行业遭遇了传统项目管理方法论的发展停滞。2015年,一家名为斯坦迪什集团的软件统计公司针对美国10 000个项目的成功率与失败率做了一项研究,研究结果如下。
●29%的传统项目彻底失败。这些项目在完 成前被终止,且在产品交付上没有任何结果。总之,这些项目没有交付任何价值。
●60%的传统项目面临挑战。这些项目虽然 完成了,但是实际的成本、时间、质量或这些要素的综合与期望存在差距。项目在时间、成本和未交付的产品特性上的实际结果与期望值的平均差距远超过100%。
●11%的项目是成功的。这些项目按最初期望的时间和预算完成,并交付了所期望的产品。
在美国,仅花费在产品开发上的数千亿美元中,就有数十亿美元被浪费在未能部署任何功能的项目上。
使用过时的管理和开发方法所导致的问题并非无足轻重。因为这些问题,每年要浪费数十亿美元。2015年,因为项目失败所导致的损失达数十亿美元,这相当于世界上数百万份工作的损失。
在过去的30年中,人们在项目工作中已经意识到传统项目管理日益增长的问题,并着手建立更好的模型。