【企业架构】企业架构和敏捷/ DevOps:自适应企业基础
Marc Lankhorst,Fabian Aulkemeier
企业架构,敏捷软件开发和DevOps有时被认为是不和的。我们认为他们可以进行富有成效的协作和界面,但您如何做到这一点?如何协调这些世界的概念和流程,弥合文化差距?
在之前的博客文章中,我们和我们的同事已经写过关于以精益和敏捷的方式进行业务转型的必要性,企业架构和敏捷开发流程可以协同工作的方式,以及如何将敏捷概念映射到ArchiMate建模语言支持这种合作。
在本博客中,我们想讨论几个突出企业架构,敏捷开发和DevOps之间协作的用例。我还将讨论BiZZdesign的软件如何与敏捷和DevOps工具协同工作,以简化组织变更流程中的价值流,帮助您成为适应性企业。
为什么要关联EA和敏捷/ DevOps?
敏捷方法对提高对变化的响应能力有很大帮助。但是,它们并不是您需要的唯一方法,如果应用不正确,它们甚至可能会损害企业的整体适应性。
一般而言,组织越大,其各部分(能力,资源,流程,系统)之间的互连和依赖性就越大,企业架构就越重要,就会提高适应性,使部分与整体战略方向保持一致。
在较小的组织中,一些敏捷/ DevOps团队可以协调他们之间的变更,管理层的线路足够短,可以直接向团队传达战略方向。然而,在大型组织中,可能有数百个敏捷团队,每个团队都在大型“企业机器”的一部分上工作,并且需要更多的协调。如果敏捷团队建立了无视环境的敏捷孤岛,那么您仍然无法获得适应性和灵活性的最终结果。此外,未来的变化可能会变得更加困难,这就是良好的架构至关重要的原因。
已经创建了诸如LeSS和Scaled Agile Framework(SAFe)等方法来处理这些情况下的协调团队。下图显示了SAFe的简化版本,突出显示了一些重要的术语和反馈循环。
他们的架构方法主要关注软件开发的需求,因此,主要从软件和解决方案的角度来看待企业。但是,企业不仅仅是软件。这是EA提供的“全局”视图增加价值的地方,因为它还包括除软件用户之外的其他利益相关者,包括所需(和不需要的!)业务成果,要开发或改进的功能,所需资源,业务流程,IT和要实现的物理基础设施等等。
EA和敏捷的用例
在许多情况下,企业架构和敏捷开发的结合是非常宝贵的。例如,在以下情况下,此协作至关重要:
- 优先考虑业务价值。基于对企业体系结构的分析,您可以了解不同的epics和功能如何与业务流程,功能,业务目标和相关的利益相关者相关联。通过跟踪您的体系结构模型,您可以了解哪些业务目标以及哪个利益相关方对该功能做出了贡献,以及这是否比其他功能更重要。像这样的客观信息可以帮助产品所有者停止“分贝驱动”的优先级排序,其中具有最响亮的声音的用户获得他们的愿望。
- 规划工作的连贯性。您的体系结构中的依赖项可用于规划敏捷活动:如果功能A依赖于功能B,则首先构建B.这在SAFe称之为“促成因素”中更为重要:解决方案的各个方面不直接向用户提供功能,但间接支持此功能并实现长期质量和发展。它的“建筑跑道”概念就是一个例子,您可以及时为新功能奠定技术基础。不过,这个概念可以扩展到软件之外。例如,投资于员工技能可以为许多未来的发展和改进提供基础。
- 跟踪进度。如果某个功能或启用程序被延迟,例如敏捷团队希望将其推送到下一个sprint,则需要将对整个解决方案的影响纳入该决策。这个团队可能有充分的理由优先考虑其他事项,但通常他们没有足够的信息来理解后果。能够追溯到总体目标将证明决策将如何影响发布,项目完成日期等。它还可以帮助团队提出诸如“这对组织的业务目标有何影响?”等问题。哪些客户群体会受到影响?我们可以通过优先考虑其他功能(可能是其他团队)来减轻这些影响吗?“这就是体系结构模型非常有用的地方,特别是对于推动者而言。由于启用程序不提供最终用户功能,因此当您推迟它们时,很少有人会抱怨。但是,它们对于许多不同的功能和解决方案的长期可行性通常很重要,因此跟踪这些依赖关系是关键。
- 使用新见解更新架构。在敏捷环境中,企业架构不是对长期未来状态的静态描述。相反,它是一种共享工具,可以根据自上而下和自下而上的输入提供愿景,指导并确保整个企业的一致性。业务战略,目标和期望的结果提供了自上而下的方向,而本地创新和改进提供了自下而上的变化。因此,企业中的各个团队从他们自己的角度共同致力于架构。
EA和DevOps的用例
当我们使用DevOps扩展敏捷开发时,还有其他用于架构的用例可以添加到上面的列表中。一般而言,运营管理并不总是意识到架构的好处。但是在敏捷/ DevOps的快速变化周期中,以及解决问题的“失败前进”方法,DevOps的架构变得更有价值。例如,架构模型可用于:
- 事件相关。架构模型允许您以集成的方式查看整个企业中的事件。例如,如果黑客试图同时使用不同的攻击媒介危害您的安全性(例如社会工程,网络钓鱼,病毒和物理入侵),那么架构模型可以帮助您将这些关联起来以了解其实际目标。
- 根本原因分析。通常,必须追踪整个系统链以找出故障或问题的原因。架构模型在这方面提供了很大帮助,因为它们为运营管理提供了可能需要调查的各种互连和依赖关系。
- 风险分析。在实施更改之前,您需要知道企业的哪些部分可能会受到影响。低风险变化可以快速实施,但高风险变化需要更彻底的分析和缓解措施。
在本系列的下一部分中,我们将介绍如何使用模型和工具支持在Enterprise Studio和HoriZZon中集成敏捷开发和体系结构。敬请关注!
讨论:加入知识星球【首席架构师圈】
- 71 次浏览