在实施GJB5000的组织中,大多数软件项目都是使用的瀑布开发流程,而有些学者说瀑布开发流程的使用是导致大多数项目失败的罪魁祸首!
乍听下来觉得不可思议,看了学者的阐述之后,我又深以为然。
先说结论。
说瀑布开发流程导致大多数项目失败是来自于一个研究成果——研究软件项目成功率的CHAOS 告,该 告指出 使用瀑布开发流程的项目成功率只有14%,也就是说86%都失败了!
再说原因。
并不是所有的项目都适用瀑布式流程,使用瀑布开发流程必须满足以下条件:
因此,瀑布开发流程只有在需求完全清楚而且相对稳定,计划也不会变化的情况下才是有效的。
其实瀑布开发流程更适合制造业。制造业通常会在输入稳定的情况下,只用一个流程就会制造出大量的产品(也许瀑布流程的产生就是软件工程初期借鉴了制造业的结果)。而这恰恰是瀑布开发流程不适用于软件行业的原因,因为软件开发的一个流程只会生产出一个产品。
所以,瀑布开发流程并不适合解决软件开发中的问题,因为软件开发是复杂的,而不是简单的过程。
最后该学者还以FBI的“哨兵”项目为例,说明了瀑布开发流程不适合复杂软件的开发。
“哨兵”项目是FBI想要建立的一个自动化管理其调查档案的软件系统。该项目外包给了洛克希德马丁(Lockheed Martin)公司,最初使用的就是瀑布开发流程。2006年3月,项目 启动,最初预算是4.51亿美元,预期在2009年12月完工。但是直到2010年8月,在花费了总预算中的4.05亿美元后,该项目只完成了50%的任务。由于成本和时间的超支,2010年7月,FBI决定停止洛克希德马丁公司在“哨兵”项目剩余工作。
2010年,FBI重新启动“哨兵”项目,使用敏捷Scrum流程,并且将项目的人数从400人减少到45人(其中15人是程序员)。项目团队以30天为一个迭代,每个迭代交付一部分功能,每次交付的功能必须满足最终的功能性和非功能性需求。每三个月就将最近三次迭代的功能部署到一个现场试点上。到2011年11月,“哨兵”项目在重新启动后用不到一年的时间就全部完成了,并且节省了90%以上的开支。
当然,敏捷开发流程也不是“银弹”,按照那个项目成功率 告中的数据, 敏捷开发流程的项目成功率是42%,是瀑布开发流程的3倍而已。
我们的军用软件开发为什么不能采用敏捷开发流程呢?如果美国的FBI都可以,我们有什么不可以呢?
这正是:
瀑布很低成功率,大家都有心戚戚
尝试敏捷新流程,降低成本提效率
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!