软件工程之美
宝玉
Groupon 资深工程师,微软最有价值专家
44272 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 55 讲
软件工程之美
15
15
1.0x
00:00/00:00
登录|注册

42 | 反面案例:盘点那些失败的软件项目

团队不敢反对
盖茨对项目直接干预较多
技术难度过大
商业竞争需要
指出问题的雇员被调查和开除
需求变更导致的混乱
无法解决项目的复杂性
缺少对承包商的控制
奇葩要求
糟糕的项目管理
没有好的开发实践
法国政府官员腐败
团队文化营造
缩短项目周期
版本控制、持续集成、自动化测试
架构设计和技术选型
需求分析和沟通
可行性分析
商业压力
上层的政治斗争
糟糕的项目管理
无法解决项目的复杂性
和客户之间沟通不畅
没有对风险进行有效管理
需求不明确或频繁变更
对项目所需要的资源估算不准确
不切实际或不明确的项目目标
组织文化
项目管理
技术管理
外部环境
组织文化
项目管理
技术管理
外部环境
组织文化
项目管理
技术管理
外部环境
不开放、平等、注重沟通协作的团队
不重视安全
频繁需求变更
糟糕的项目管理
项目规模导致的技术复杂度
使用不成熟或不熟悉的技术
销售过度夸大项目成果
需求变更导致的成本压缩
政治因素导致的不切实际的项目进度
项目出资方不满意
产品偏移了最初的目标
产品没有得到市场认可,没有人使用
Bug太多,无法按照当初的设计正常运行
成本超出预算
没能按时交付
项目出资方对项目满意
满足项目最初的目标
有人使用
能按照当初的设计正常运行
成本在预算范围内
按时交付
软件工程对失败问题的应对方案
失败项目的常见原因
案例3. 微软Vista项目
案例2. 美国联邦调查局虚拟案件文档系统
案例1. 来自地狱的项目
组织文化
项目管理
技术管理
外部环境
失败项目的条件
项目管理协会(PMI)认为成功的项目必须满足六个条件
总结
盘点那些失败的软件项目
分析失败软件项目的原因
什么样的软件项目算是失败的项目?
反面案例:盘点那些失败的软件项目

该思维导图由 AI 生成,仅供参考

你好,我是宝玉。我想你日常一定看到过很多项目失败的案例,有些失败项目的案例甚至超出我们的想象,比如说我的朋友圈就被两个项目刷过屏,一个是号称史上最烂的开发项目,开发 12 年,六百万行代码;一个是美国联邦调查局的一个软件项目,花了 1.7 亿美元,最后变成了豆腐渣工程。
也许大多数人看完这类文章后,会当作一个有趣的故事,觉得他们软件工程水平太差了,居然会把项目做成这样。当你学习完软件工程知识后,再看到这些项目失败的案例,不妨从软件工程的角度来分析一下,这些项目失败的真正原因是什么?你能从中获得什么启发?

什么样的软件项目算是失败的项目?

如果我们说一个项目是失败的项目,那么怎么算是一个失败的项目呢?
项目管理协会(PMI)认为成功的项目必须满足六个条件:
按时交付。
成本在预算范围内。
能按照当初的设计正常运行。
有人使用。
满足项目最初的目标。
项目出资方对项目满意。
相应的,如果上面有一个或者多个条件没有满足,那么项目就有可能是失败的,比如说:
没能按时交付。
成本超出预算。
Bug 太多,无法按照当初的设计正常运行。
产品没有得到市场认可,没有人使用。
产品偏移了最初的目标。
项目出资方不满意。
而那些特别失败的项目,往往是多个条件甚至所有条件都不能满足,并且时间、成本、交付结果跟最初目标都相差很大,无疑都造成了巨大的损失。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

软件项目失败并非偶然,而是源于多方面的原因。外部环境、技术管理、项目管理和组织文化等因素共同导致了软件项目的失败。政治因素、成本压力、技术不成熟、糟糕的项目管理决策以及组织文化等都可能成为软件项目失败的原因。具体案例分析了法国政府项目和美国联邦调查局的虚拟案件文档系统项目,展示了这些因素对项目失败的影响。了解这些失败案例的原因可以帮助我们避免类似错误,提高软件项目的成功率。文章还通过微软Vista项目的案例分析,结合软件工程知识,提出了解决失败原因的方案。综上所述,软件项目失败往往是多方面因素共同作用的结果,而总结失败原因并吸取教训是至关重要的。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件工程之美》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(11)

  • 最新
  • 精选
  • 果然如此
    回复纯洁的憎恶:软件工程是过程控制的方法论,而产品设计才是保证伟大的产品,两者应该结合。

    作者回复: 👍很有道理

    2019-06-10
    12
  • 纯洁的憎恶
    深深地感受到,软件工程不是为了创造最伟大的软件项目而存在,却是为了保障每一个项目的成本、质量、工期、目标等等可控而存在的。

    作者回复: 谢谢分享,帮转发一下@果然如此 的回复,我也觉得有一定道理,供参考 :) ------ @果然如此 2019-06-09 19:54 回复纯洁的憎恶:软件工程是过程控制的方法论,而产品设计才是保证伟大的产品,两者应该结合。

    2019-06-09
    5
  • freda
    对于多变,决策难产的领导怎么应对,目前应对就是暂缓2-3天执行。

    作者回复: 遇到这种领导很难应对,决策难产还好,你可以帮助做一些方案,让他选择一个就好!最怕的就是多变,今天刚做好的决策,你还没开始设计开发,他那边明天又变掉了,这种什么软件工程理论都没用! 关键的是,你要有东西来“约束”领导的“多变”,这种约束可以是领导的领导、可以是流程、可以是漂亮的PM妹子,但你不解决如何约束多变的问题,后面的软件工程理论是无法开展的。

    2020-07-03
    2
    1
  • Harold
    互联网项目大多数是失败的。六个原因中,我个人觉得最多的是:产品没有得到市场认可,没有人使用。

    作者回复: 项目开发和产品推广其实算是两个领域,软件工程更多还是关注软件项目开发,至于产品如何得到市场认可,这可能超出了软件工程范畴:)

    2020-03-30
    1
  • mithril
    老师的案例让我想起了美国现在的联合攻击战斗机项目,简直都是一个模子里刻出来的问题

    作者回复: 特地去Google了一下你说的这个项目,不过没有找到好的分析文章,如果有机会,也欢迎分享:)

    2020-03-27
  • 神经旷野舞者
    老师,作为一个普通非管理的技术人员,在项目管理不科学的情况下,如何提高自己的软件工程水平和对项目产生积极的贡献呢?

    作者回复: 作为普通程序员,看起来对项目影响有限,但是实际上一样还是可以利用所学软件工程知识做一些事情。 *首先是做好自己的事情* 作为程序员,每天主要工作都是写代码,但是怎么写其实很有讲究的。比如说: - 你在一个任务开始之前,是不是会做设计?哪怕简单的设计,设计做好了,会不会找同事评点你的设计? - 写代码的时候,代码质量是不是够简洁明了?对需求或架构有疑问是不是能及时去沟通确认 - 写完代码有没有自己测试?有没有写自动化测试,保证自动化测试代码的覆盖率? - 上线后,有没有观测上线的后的错误日志和数据,收集用户的反馈? - 对于技术债务,有没有去尝试优化解决 如果能把自己的事情做好,那么你已经对项目产生了很大的积极贡献,同时你也逐步建立了自己在团队中的影响力,让其他成员看到,软件工程可以帮助你把任务做好,把代码写好。 *然后是用好工具* 工具在软件工程中作用很大,同时引入成本也相对低,不需要领导审批,也不需要申请经费。比如说: - 项目管理工具,如果你们的日常任务都是口头说明的,那么可以借助任务管理跟踪工具,像Jira、禅道等,把日常任务跟踪管理起来,哪怕是你自己的、或者自己小组的任务。这样日常要做哪些事情,时间点,进度,可以一目了然。当你手头已经有很多任务了,产品经理还想给你塞需求,你就把项目管理工具上的任务给他看,让他清楚你当前已经没法做更多的事情了,除非等手头的事情忙完,或者推迟手头的事情。 - 源代码管理工具,git这种源码管理工具现在已经是标配了,如果没有用当然应该赶紧用起来,用了也可以借鉴一些成熟的开发流程,例如Github Flow (O网页链接 ) - CI/CD,持续集成持续部署似乎还不够普及,如果没有的话,要考虑做起来,花一点时间,把CI/CD环境搭建起来,用起来。用CI/CD结合开发流程,降低测试和部署的成本,降低代码集成可能产生的问题风险,把自动化测试覆盖搞上去,让QA可以及时测试到最新代码。 用好工具,可以提升开发效率提高项目质量,如果只是自己负责的项目用,相对阻力要小,可以从小的见效快的事情做起,比如自动化部署、自动化测试这些,然后再逐步扩大范围。 *最后就是影响更多的人* 要想让软件工程在项目中发挥大的作用,仅仅自己用是不够的,需要整个项目都用起来,都用好,才能最大化的发挥作用。所以终极目标还是要通过前面做的这些事情,改变大家的观念,引起大家的重视,让更多的人用起来。 从小事情做起,先在小项目作出试点,让团队成员知道怎么用,用了有什么积极的效果。这就像当年改革开放时的小岗村,几个人先做起来,作出成绩,然后就可以更大范围试点,更大范围推广。

    2020-01-01
  • 大王叫我来巡山
    政府单位干黄的项目,基本都是人祸,没有之一,决策者敢想,企业敢吹,出了问题敢捂,一层一层敢骗。
    2019-08-07
    3
  • aoe
    暗黑3为了避免游戏币崩溃,上线不久后就推出了拍卖系统,起初主要以游戏币交易装备。结果进一步加剧了外挂刷钱,金币瞬间通货膨胀,拍卖系统匆匆关闭。不要低估玩家对装备的渴望。
    2022-02-16
    1
  • ifelse
    其实软件项目失败并不可怕,最重要的还是在失败后,总结原因,吸取教训。--记下来
    2022-07-09
  • williamcai
    开始与客户确定好了需求,快要发布了,客户突然要修改,前前后后不下10次,导致了2个月的工期硬生生的搞成了5个月,还要后期维护的成本也大大增加,总体l
    2020-08-26
收起评论
显示
设置
留言
11
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部