无论是商业组织、政府机构,还是非营利组织,都可能需要通过开发、定制和使用软件来创造价值。假如没有软件的帮助,作为商业领导者,你很难甚至无法实现自己设定的业务目标。尽管软件如此有用,但是一直以来,软件开发都广受诟病,被认为不可靠、高成本、易出错。这就使你陷入了一个两难的境地:你需要软件,但无法及时得到成本可接受、质量可靠的可用软件。
软件项目的成功率如此之低,你很可能会为那些牵涉到软件开发的重要项目忧心忡忡。软件行业耗时、成本高,又不可预期,早已让你大失所望。如果不是软件那么重要的话,你很可能早就停止在软件上的投资了。
不过,面对这些问题的并不只有你一个,很多机构都有同样的困扰。例如,联邦调查局(FBI)的“哨兵”(Sentinel)项目最近也遇上了麻烦。结果,他们运用本书中描述的理念和流程,使项目起死回生。
这里关于“哨兵”项目的资料均来自美国司法部的检察长报告,并且对外公开。如果你认为这只是一个基于政府工作特性的个案,不具有普遍性,那么你可以试想一下:如果一个庞大的政府机构都可以这样彻底地改进软件的开发方式,你的组织同样可以做到。
FBI针对每一项调查都建立一份档案,其中包含所有创建或者调用的调查记录。2003年,FBI决定将这些档案数字化,并对相关的流程进行自动化管理,这样探员们就可以迅速地比较各个档案,从中找到它们之间的联系。这个项目的名字叫做“哨兵”。
2006年3月,FBI启动了“哨兵”项目,目标用户是3万多人,包括FBI探员、分析师和行政人员。“哨兵”项目的最初预算是4.51亿美元,预期在2009年12月完工。根据FBI的最初计划,“哨兵”项目的开发工作会分为四个阶段。这个项目外包给了洛克希德马丁(Lockheed Martin)公司,这家公司建议使用传统的软件开发流程。
到2010年8月,FBI已经花费了总预算中的4.05亿美元,但是项目只完成了四个阶段中的两个。虽然完成的前两个阶段的确帮助FBI改进了档案的管理系统,但是没有达到他们的预期效果。于是,由于成本和时间的超支,2010年7月,FBI决定停止洛克希德·马丁公司在“哨兵”项目剩余两个阶段的开发工作。
到这个阶段为止,FBI一直在使用传统的开发流程,而现在,他们尝试引入新的流程来获得更好的成效。这个新的流程就是我们在20世纪90年代初创立的Scrum。在那一份指出只有37%的软件项目成功的CHAOS报告中,同时论述了采用传统开发流程和采用敏捷(即Scrum)流程开发项目的结果会有什么区别(见图1-2)。从图中可以看出,采用传统开发流程(瀑布式)的项目中只有14%成功了,而采用敏捷流程的项目成功率则有42%。这些敏捷项目不仅满足斯坦迪什组织对成功项目的定义,而且能够更好地适应客户需求的变化,更有效地降低风险,并最终交付更高质量的软件。