DevOps 中的要求

抽象的

DevOps 强调快速开发、持续集成和自动化,这在使其与通常更加结构化和线性的需求收集和文档过程保持一致方面提出了独特的挑战。 本文讨论了两种范式之间的紧张关系以及如何协调它们。 在本文中,我们探讨了协调传统需求工程实践与 DevOps 的动态特性所面临的挑战。 通过拥抱开放协作、持续反馈、适应性和可追溯性,DevOps 团队可以应对这些挑战并为无缝集成铺平道路。 在 DevOps 的背景下,需求不能是静态的工件; 它们成为与软件一起发展的生命实体。 本文反思了将 RE 集成到 DevOps 中所面临的挑战,并探索了实现无缝集成的途径。

介绍

DevOps 的目标是强调软件开发中的敏捷实践,并允许系统运营团队更有效地协作。 这是一个协作的跨学科流程,旨在简化软件的持续规划和交付,同时确保其质量。 在这种高度协作的环境中,开发团队根据业务需求开发新功能,而运营团队负责管理生产和服务级别的变更。 DevOps 的一部分还包括持续监控生产中软件产品的性能。

采用 DevOps 的一些优点是缩短部署周期并改善运营和开发之间的沟通和协作。 DevOps 据称可以减少开发错误,因为它强调自动化以及软件开发所需的操作相关活动的显式集成。

敏捷方法建议进行小规模迭代,以实现频繁的软件交付。 在整个迭代过程中,可以与利益相关者协作收集需求、确定优先级并进行验证。 连续需求工程 (CRE) 是一种需求工程方法,强调收集和管理需求的演化观点。 它在敏捷和 DevOps 方法中得到实践,其中需求不被视为静态工件,而是在项目开始时创建,并保留随着项目进展而演变和适应的动态实体。 在本文中,我们将讨论如何将传统的需求工程 (RE) 实践集成到 DevOps 流程中。

将 RE 集成到 DevOps 中

传统的需求工程强调​​理解业务需求以及执行收集和管理需求的流程以全面了解业务环境的重要性,而 DevOps 则是一个持续的软件开发、测试和部署过程。 虽然这两个学科可能看起来有所不同,但它们的融合对于确保软件产品符合用户期望,同时满足快速交付和持续改进的需求至关重要。

DevOps 是对手动任务自动化、集成开发和运营以及实施持续改进文化的持续努力。 这对于 RE 来说可能很奇怪,因为 RE 大部分时间都涉及人类活动来理解需求及其业务环境。 为了协调这些看似不同的思维方式,组织必须拥抱适应性。 在 DevOps 的背景下,变化是持续不断且受欢迎的,静态和僵化的传统需求文档可能会阻碍进展。 相反,需求必须随着软件的发展而发展,与动态开发过程保持同步。

在 DevOps 中,需求必须能够适应变化和演进。 随着软件开发通过迭代和部署不断发展,需求也应该不断发展。 这种适应性使开发团队能够对不断变化的用户需求和不断变化的业务目标保持响应。 这可以通过持续协作和短反馈循环来实现。 为了确保需求与快速交付环境中不断发展的软件和用户期望保持一致,应该根据每次迭代结束时可用的频繁反馈对需求进行持续评估。 DevOps 依靠反馈而蓬勃发展。 需求的设计应能够持续捕获用户反馈以及从每个周期中获得的经验教训,从而使开发、运营团队和业务用户能够共同做出明智的决策并快速迭代。 在这个动态和变化的环境中,可追溯性变得至关重要。 DevOps 团队必须在不断变化的需求、代码更改和已部署的软件之间建立并维护可追溯性。

从本质上讲,RE 和 DevOps 的集成意味着思维方式的转变,并承认需求不是僵化的工件,而是在迭代交付周期中不断发展的生命实体。 这种一致性使 DevOps 团队能够充分利用 DevOps 的潜力,同时通过敏捷性和以用户为中心的结合确保软件始终立足于业务需求。

DevOps 的 CRE

持续需求工程 (CRE) 是一种 RE 方法,强调收集和理解业务需求过程的持续性和迭代性。 需求不被视为在项目开始时创建的静态文档,而是被视为在以用户为中心的流程中协作发展和适应的动态工件。 CRE 的实践是: 迭代和增量地理解业务需求; 以客户为中心的开发方法; 和适应性。 CRE 承认,由于不断变化的业务需求、市场条件或客户反馈,要求可能会发生变化。 它旨在适应变化并快速有效地响应新要求或对现有要求的修改。

CRE 与 DevOps 非常契合,其中灵活性、对变化的响应能力和以用户为中心至关重要。 通过强调 RE 的持续性,DevOps 团队可以增强满足业务需求和交付成功软件产品的能力。 将 CRE 和 DevOps 结合起来可以产生协同效应。 该集成带来了诸多好处,不仅增强了软件开发流程,还提高了敏捷性、响应能力和以用户为中心的方法。 以下是结合 CRE 和 DevOps 的技术:

  • 培育协作文化并打破孤岛:跨职能团队是 CRE-DevOps 集成的基础。 如果没有在跨职能环境中进行开放式沟通和协作,这一切就不会发生。
  • 通过拥抱敏捷性来调整需求实践:从传统的、以文档为中心的需求实践(例如用户故事、验收标准和功能驱动的开发)转变。 这些与 DevOps 的迭代性质非常吻合。
  • 需求是渐进的:这可以通过不断完善和审查来实现。 经常使用待办事项整理等技术来利用快速反馈周期和冲刺计划,根据业务价值、用户反馈和过去周期的学习不断确定需求的优先级和细化需求。 根据用户反馈、对过去迭代的监控以及通过回顾获得的见解不断完善需求。 不断完善和调整需求,以确保满足不断变化的业务需求。
  • 鼓励反馈:创建一种公开反馈的文化和一个心理安全的工作场所,让团队成员可以轻松地提出与 CRE 和 DevOps 集成相关的担忧或建议改进。

总之,需求工程和 DevOps 的集成意味着变革之旅,或许还意味着思维方式的转变。 通过采用协作文化、吸取每个周期的经验教训、在交付过程中不断调整需求、鼓励反馈以及将需求视为渐进的而非静态的,DevOps 团队可以通过连续体应对挑战并解锁途径学习。


作者: 亚当·自然

Adam Alami 是丹麦奥尔堡大学的助理教授。 他在信息技术实践方面拥有丰富的经验。 他的职业生涯始于软件开发,后来又涉足业务分析和项目管理。 二十年来,参与重大 IT 转型项目一直是他工作的支柱。 他选择的研究领域符合软件工程的合作、社会和人类方面的广泛主题。 他对业务分析和当代软件开发实践有着浓厚的兴趣。 他拥有丹麦哥本哈根 IT 大学计算机科学博士学位、悉尼科技大学 (UTS) 计算机科学硕士学位以及蒙特利尔魁北克大学软件工程学士学位。 电子邮件: [email protected]。 推特:@AdamAlamiDK。

Leave a Reply

Your email address will not be published. Required fields are marked *

近期新闻​

编辑精选​