服务:还有人在争执如何提高开发效率?可以淘汰“恐龙”吗

0 简介

yaml 复制代码
一些软件专家认为软件危机还没有结束,并指出最近的失败例子,
比如丹佛机场行李系统在1995年的失败,
1996年阿丽亚娜5号火箭的爆炸,
在2003年德国收费软件系统被取消,
在 2013 年政府健康系统healthcare.gov 发布会的失败,
以及2018年被称为Meltdown 和 Spectre 漏洞的发现和被利用。

1 要计划还是变更? 瀑布和敏捷的斗争

很多项目负责人僵化地思考瀑布和敏捷项目管理方法,并认为他们需要在两者之间做出选择。但许多项目------尤其是那些具有不同利益相关者需求和复杂结构的项目------

当我们负责一个高风险项目时,在瀑布的严谨性和敏捷的灵活性之间进行选择可以成就或破坏主动性。

在过去的二十年里,很多学者、领导者、项目经理和组织认为他们必须选择一个放弃另一个。

更糟糕的是,敏捷方法的出现导致了项目社区的部落主义,扼杀了创新并限制了真正有效解决方案的潜力。

将一群项目经理聚集在一起,他们不可避免地会分享他们对最不喜欢的方法的看法。一些奇怪的危言耸听的论调:

"瀑布是为一个不再存在的世界进行设计的过程。"
"敏捷是一种更快地交付失败的方式。"
"瀑布就像是远古恐龙,不适合现代。"
"敏捷灵活到可以让老鹰与火鸡进行合作。"

整个软件组织都在选择"走向敏捷",抛开某些项目所需的传统方法的基础知识。然而敏捷的这种僵化和分裂的思维导致了真正的损失。

驾驭这种格局的关键在于混合项目管理方法,该方法将瀑布的规划严谨性与敏捷的灵活性相结合。

事实上,项目管理协会的 2020 年报告表明,由于项目绩效不佳,11.4% 的投资被浪费了。 有分析报告显示,项目只有31%的成功率,19%的项目完全失败。

这表明估计每年全球财务损失达到惊人的3万亿,更不用说资源浪费,错失机会和负面社会影响。

采用混合方法可以帮助组织开始补救其中一些结果。 我们将探讨如何通过这种混合方法,组织实现最佳平衡,使他们能够灵活地适应不可预见的挑战,而不会忽视其最终目标。

首先,让我们简要回顾一下瀑布和敏捷的核心组件,它们都包含混合方法的构建块。

2 理解瀑布

瀑布:结构化方法,瀑布模型(Waterfall Model)是最早使用的软件过程模型之一,包含一系列活动。这些活动从一个阶段到另一个阶段逐次下降,它的工作流程在形式上很像瀑布,因此被称为瀑布模型。

传统的瀑布式方法是结构化和顺序的,其中进度通过不同的阶段向下"流动":概念、分析、设计、规划、施工、测试、实施、移交和维护。

瀑布模型的特点是因果关系紧密相连,前一个阶段工作的输出结果,是后一个阶段工作的输入。

每一个阶段都是建筑在前一个阶段正确实施的结果之上。每一个阶段工作完成后都伴随着一个里程碑(一组检查条件),对该阶段的工作进行审查和确认。

历史上,瀑布模型起到了重要作用,它的出现有利于人员的组织管理,有利于软件开发方法和工具的研究。

2.1 瀑布模型的主要特点:

瀑布方法的主要优秀特征通过各种示例突出显示:

  • 顺序执行的重要性

伦敦的Crossrail项目是一项重大的基础设施项目,预算为14亿英镑,它的成功实践说明了瀑布模型不同和连续阶段的有效性。在随后的阶段开始之前,每个阶段都必须一丝不苟地完成,以确保结构化的进展,没有留下任何回旋的余地。面对挑战,Crossrail项目仍然成功建成,被誉为工程奇迹,连接了8公里以上的41个车站,预计每年将为约118亿人提供服务。

  • 详细文档的重要性

欧洲核子研究中心的大型强子对撞机(LHC)项目估计耗资7亿欧元,展示了瀑布模型强调全面记录的重要性。鉴于大型强子对撞机的复杂性,包括一条 5 英里长的圆形隧道和数千个定制零件,详细的文档对于确保参与项目的每个人都全面了解每个阶段至关重要。

  • 可预见性的重要性

迪拜的哈利法塔项目价值1亿美元,证明了瀑布法在成本和时间表上的可预测性的重要性。精心的前期规划促进了世界最高建筑的建设,尽管该项目规模巨大且复杂,但仍然按照原定时间表在六年内完成。

2.2 瀑布方法的局限性

许多备受瞩目的项目失败,这暴露了瀑布的局限性。

  • 缺乏灵活性,太过刚性

澳大利亚墨尔本的Myki票务系统项目明显强调了瀑布法的刚性。该项目的预算超过1亿澳元,是预期两年的四倍。然而,由于无法适应不断变化的用户需求和技术进步,该系统充满了问题导致了失败。

  • 问题发现较晚

美国政府耗资超过2亿美元的 HealthCare.gov 项目说明了后期测试的影响,这是瀑布模型的一个特征。在测试后期阶段发现的系统缺陷导致了有缺陷的发布和相当大的公众和政治骚动,导致昂贵且耗时的维修和改进。

  • 不兼容需求变动

澳大利亚的国家宽带网络(NBN)项目耗资51亿澳元,在战略和技术方面经历了频繁的转变,导致延误和预算超支。这凸显了瀑布方法在管理需求动态且不断发展的项目方面的不足。

  • 不适合未定义的项目

2015年,提供电子健康记录软件的医疗保健技术公司Cerner开始了一个项目,为美国退伍军人事务部开发一个新系统。该项目使用瀑布模型,估计耗资16亿美元,需要10年才能完成,但很快就遇到了问题。

VA对新EHR系统的要求事先没有明确定义,瀑布模型使Cerner难以改变方向。到2018年,该项目的成本已增加到20多亿美元,仍然落后于计划数年,迫使VA终止该项目。Cerner VA EHR项目被认为是美国政府历史上最昂贵和灾难性的IT项目之一。

以快速变化和不可预测的环境为特征的数字时代已经测试了瀑布方法的极限,认识到需要更具适应性的项目管理方法。

3 小结

释放项目真正潜力的关键在于为每个计划提供一套多样化的工具------各种各样的方法、方法和技术,可以根据每个项目的独特需求进行调整和应用。

下一节我们了解瀑布的反面,更加现代的敏捷和混成方法,是否可以更加完美增加开发效率。

相关推荐
随遇而安622&508几秒前
分布式微服务项目,同一个controller方法间的转发导致cookie丢失,报错null pointer异常
分布式·微服务·架构·bug
喵叔哟23 分钟前
重构代码之用多态替代条件逻辑
java·服务器·重构
Charary28 分钟前
第23天Linux下常用工具(二)
linux·运维·服务器
修修修也34 分钟前
【Linux】进程间通信
linux·运维·服务器·操作系统·进程通信
猫头鹰~36 分钟前
linux文件
linux·运维·服务器
未命名冀37 分钟前
微服务day07
微服务·架构·jenkins
友大冰39 分钟前
Go 语言已立足主流,编程语言排行榜24 年 11 月
开发语言·后端·golang
车载诊断技术1 小时前
电子电气架构--- 实施基于以太网的安全车载网络
网络·人工智能·安全·架构·汽车·电子电器架构
向上的车轮1 小时前
ODOO学习笔记(8):模块化架构的优势
笔记·python·学习·架构
hummhumm2 小时前
第 10 章 - Go语言字符串操作
java·后端·python·sql·算法·golang·database