我想你日常一定看到过很多项目失败的案例,有些失败项目的案例甚至超出我们的想象,比如说我的朋友圈就被两个项目刷过屏,一个是号称史上最烂的开发项目,开发 12 年,六百万行代码;一个是美国联邦调查局的一个软件项目,花了 1.7 亿美元,最后变成了豆腐渣工程。
也许大多数人看完这类文章后,会当作一个有趣的故事,觉得他们软件工程水平太差了,居然会把项目做成这样。当你学习完软件工程知识后,再看到这些项目失败的案例,不妨从软件工程的角度来分析一下,这些项目失败的真正原因是什么?你能从中有什么启发?
什么样的软件项目算是失败的项目?
如果我们说一个项目是失败的项目,那么怎么算是一个失败的项目呢?
项目管理协会(PMI)认为成功的项目必须满足六个条件:
- 按时交付。
- 成本在预算范围内。
- 能按照当初的设计正常运行。
- 有人使用。
- 满足项目最初的目标。
- 项目出资方对项目满意。
相应的,如果上面有一个或者多个条件没有满足,那么项目就有可能是失败的,比如说:
- 没能按时交付。
- 成本超出预算。
- Bug 太多,无法按照当初的设计正常运行。
- 产品没有得到市场认可,没有人使用。
- 产品偏移了最初的目标。
- 项目出资方不满意。
而那些特别失败的项目,往往是多个条件甚至所有条件都不能满足,并且时间、成本、交付结果跟最初目标都相差很大,无疑都造成了巨大的损失。
IEEE(电气和电子工程师协会)有一个专门的网页,把过去十年间,那些著名的失败软件项目,做了一个墓碑来展示,墓碑里的这些项目加起来的损失大约 700 亿美元。WikiPedia 上也有一个网页(List of failed and overbudget custom software projects)列出来那些损失严重的软件项目,也是惊人的数字。
(图片来源:Monument to Failure)
而这些软件项目的失败,很大程度上是可以预测和避免的。如果把问题简简单单归结为软件工程水平太差了&#x