服务:还有人在争执如何提高开发效率?敏捷是最终良药吗

简介

敏捷不是现代软件开发的最终归宿,拒绝开发部落的相互绝缘。

1 理解敏捷方法的优点

敏捷联盟致力于开发迭代和敏捷的方法,寻求更快、更好的软件和系统开发方法,挑战更多的传统模型。

敏捷的关键是自适应的面向人的,目标在于灵活性,当风险可接受时允许从序列中排除选定的事件。 适用于系统工程的敏捷原则如下:

●最高的优先级是通过尽早地和持续地交付有价值的软件来满足客户。

●欢迎需求变更,即使是在项目开发后期。敏捷流程利用需求变更帮助客户获得竞争 优势。

●不断交付可用的软件,周期从几周到几个月不等,且越短越好。

●在项目中业务人员与开发人员每天在一起工作,业务人员始终参与到开发工作中。

●在开发团队内部和团队之间,传递信息最有效的方法是面对面交谈。

●工作软件是进展的主要度量。

●对技术的精益求精以及对设计的不断完善将提升敏捷性。

●简单性(尽最大可能减少不必要的工作的艺术)是精髓。

●最佳的架构、需求和设计出自于自组织的团队。

●团队要定期反省如何能够做到更加高效,并相应地调整团队的行为。

敏捷是自适应的面向人的方法。侧重于使团队能够以较小的增量交付工作,从而更快地为客户提供价值。由于团队会不断评估项目要求、计划和结果,因此可以快速进行更改。现代敏捷方法主要有

XP极限编程,水晶系列方法,Scrum方法,特征驱动FDD方法。

敏捷的综合特征,在各种著名项目中得到体现,包括:

  • 迭代开发

某全球知名搜索引擎的开发是迭代开发的一个恰当的例子。它始于 1996 年的一个研究项目,并发展成为当今使用最广泛的搜索引擎,每天为超过 8 亿次搜索提供服务。多年来不断的增强、调整和改进强调了敏捷固有的迭代开发概念。

  • 客户的参与和协作

比如亚马逊是以客户为中心的先驱,是客户协作敏捷原则的缩影。它不断征求客户反馈并将其纳入其产品和服务中,推动其达到平流层市场价值。

  • 拥抱变化:对变更的响应

流媒体音乐领域的某全球领导者是敏捷适应性的经典案例。

它不断发展其商业模式和产品供应,以响应市场变化和用户需求,从简单的音乐流媒体平台转向提供播客、视频和个性化播放列表。

1.1 敏捷方法有其常见局限性:

  • 文档不足

敏捷方法对快速交付的关注往往会导致文档不足。2015年,德国某连锁超市启动了一个实施新SAP系统的项目。该项目未能将该超市独特的业务流程准确地映射到新系统上。缺乏足够的文档导致开发团队和利益相关者之间的误解,导致系统设计和功能的差异,并导致该项目在2018年取消,造成约500亿欧元的损失。

  • 敏捷不可预测的交货时间和成本

英国的某一次信贷福利改革项目最初预算为 2 亿英镑,这表明敏捷在估计交付时间和成本方面存在困难。该项目的成本上升到超过2亿英镑,由于其复杂性和需求的不断变化,近十年后仍未完全实施。

  • 敏捷依赖客户参与

客户无法投入大量时间或未及时提供反馈的项目可能会面临重大障碍。一个值得注意的例子是耗资60万美元的美国海岸警卫队薪资系统项目,该项目于2017年终止,部分原因是利益相关者参与不足。

  • 敏捷的可预测性在某些类型项目中不足

敏捷的灵活性和适应性不能很好地转化为具有固定需求或需要高可预测性的项目。 例如,世界贸易中心一号大楼的建设项目预算约为 3 亿美元,需要严格的法规遵从和精确的规划,而这对于敏捷来说是不可行的。

随着敏捷的不断发展,这些限制强调了对项目管理方法的需求,这些方法可以融合瀑布和敏捷的优势,有效地减轻两者固有的弱点。因此,混合方法的理由变得越来越引人注目。

2 采用混成开发方法

混成开发方法的出现代表了项目管理的新时代,它利用了敏捷和瀑布的优势,同时减轻了它们的局限性。

混成开发方法的兴起与特定的时间或事件无关;相反,它们已经有机地发展,以响应现代复杂项目的需求。

混成项目管理的主要特征及其实际影响包括:

  • 灵活性和结构

混成开发方法,例如飞利浦为其数字化转型计划实施的方法,包括敏捷的灵活性和瀑布结构。 他们为其 HealthSuite 数字平台采用了混成方法,为软件开发提供快速、迭代的版本,同时仍遵守严格的文档和安全准则。

通过将这两种方法结合起来,飞利浦能够创建一种既灵活又结构化的混成方法。这提高了产品质量,缩短了上市时间,可预测的成本并节省了成本。

  • 分阶段和迭代

混成开发方法对定义明确的组件采用分阶段方法,对不确定的组件采用迭代方法。

在成为全球最佳数字银行的道路上,某银行执行了精心策划的基础设施改革阶段,同时为其面向客户的数字服务实施迭代开发。

这种方法使他们能够改造其遗留系统,同时将创新服务推向市场,将其收入从 9 年启动数字化转型的 6 亿新元增加到 2014 年的 14 亿新元。

  • 客户参与和可预测性

混成方法在客户参与和可预测性之间取得平衡。如英国电信使用敏捷的数字服务方法,例如其新的5G网络,通过尽早和经常获得反馈来确保客户参与。这有助于确保最终产品满足客户的需求。

对于基础设施项目,例如其新的数据中心,电信使用瀑布方法以更可预测的方式规划和执行项目。

这有助于确保项目在预算范围内按时完成。混成方法可确保客户参与并提供可预测的交付时间表,帮助其在21年实现37.2021亿英镑的年收入。

2.1 混成开发方法优势

混成开发方法的项目管理及其相关示例的优势包括:

  • 平衡的方法

混成开发方法提供了两全其美的方法,如某视频游戏开发商使用瀑布 Waterfall 来规划和开发角色和初始编码等资产,以确保基础游戏稳健且结构合理。

而他们在游戏机制、调试和发布后更新方面转向敏捷。通过采用混成开发方法,最终于 2020 年月成功推出了《刺客信条》并获得了商业赞誉。

  • 缓解不确定风险

混成开发方法通过将敏捷的适应性与瀑布的结构化规划相结合来降低风险,正如特斯拉开发Model 3的所证明的那样。

为了建造生产汽车电池的超级工厂,特斯拉采用了严格的规划和风险评估方法。与此同时,特斯拉通过无线方式更新车辆软件的能力允许快速解决问题和后期制作功能添加。

这种双重战略使特斯拉能够有效地降低风险,同时在高风险的制造环境中保持灵活性。

  • 有效利用资源

混成开发方法提供了资源密集型长期规划的稳定性,同时提供了快速适应市场需求的灵活性。

例如,某服装知名企业的详细规划和交错的开发阶段确保了最小的资源闲置。

另一方面,由设计师、营销人员和商店经理组成的跨职能团队参与迭代周期和冲刺。

这些快速反馈循环使该服装品牌能够根据实时销售数据和新的时尚趋势立即分配或重新分配资源。

2.2 混成方法使用场景

识别何时使用混合方法对于项目的成功至关重要。该方法提供了适应性,而不会牺牲许多项目所需的愿景和详细规划,使其成为每个组织都应该开发的宝贵方法。

那么,如何确定您的项目是否会从混合方法中受益?以下是一些指标:

  • 不同的利益相关者需求:

当您与广泛的利益相关者打交道时,每个人都有自己的要求和期望,混合方法可以满足所有人的需求。它可以允许迭代反馈,就像在敏捷中一样,同时保持结构化的路线图,就像在瀑布中一样。

  • 不同的项目阶段:

如果项目的不同阶段需要不同的方法,例如初始研究阶段需要严格的结构,然后是需要更大灵活性的开发阶段,则混合方法可以提供两全其美的方法。

  • 不确定的要求:

对于需求可能会发生变化或需要在一开始就完全明确,但需要明确的结构或最终目标的项目,混成开发方法可以适应不断变化的需求,而不会忽视最终目标。

风险管理:如果您的项目遇到高度的不确定性或风险,需要迭代测试和审查,但也需要全面的文档和规划,混成开发方法可以在适应性和细致性之间取得适当的平衡。

  • 复杂的项目结构:

对于以错综复杂的相互依赖关系、多方面组件或多功能团队为特征的项目,混成开发方法可以满足细微的需求,在严格的规划与灵活的执行之间取得平衡。

3 小结

混成开发方法朝着解决软件危机开发问题的方向迈出了有希望的一步,它既包含瀑布和敏捷的优势,又抵消了它们的弱点。

通过将该方法作为工具箱中的工具,可以提高项目的成功率,为组织提供更多价值,并更有效地驾驭项目的复杂性。

在一个企业内部,可能存在不同的应用系统,而这些应用系统由于开发的时间不同,采用的开发工具不同,在合适的时机选择合适的开发方法就显得很重要。

相关推荐
杜杜的man6 分钟前
【go从零单排】Closing Channels通道关闭、Range over Channels
开发语言·后端·golang
钰@31 分钟前
小程序开发者工具的network选项卡中有某域名的接口请求,但是在charles中抓不到该接口
运维·服务器·小程序
java小吕布36 分钟前
Java中Properties的使用详解
java·开发语言·后端
wanhengwangluo38 分钟前
云服务器和物理服务器的区别有哪些?
运维·服务器
2401_857610032 小时前
Spring Boot框架:电商系统的技术优势
java·spring boot·后端
扣得君3 小时前
C++20 Coroutine Echo Server
运维·服务器·c++20
keep__go3 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
矛取矛求3 小时前
Linux中给普通账户一次性提权
linux·运维·服务器
jieshenai3 小时前
使用VSCode远程连接服务器并解决Neo4j无法登陆问题
服务器·vscode·neo4j
杨哥带你写代码3 小时前
网上商城系统:Spring Boot框架的实现
java·spring boot·后端