Jan van Santbrink 说,“在管理中,为了充当敏捷的合伙人,架构需要从根本上做出改变”。在管理中,在与敏捷思想一起使用时,架构如何才能发挥关键作用呢?在阿姆斯特丹敏捷管理大会上,他就此问题作了演讲。
InfoQ 采访了 Jan,内容涉及为什么敏捷和架构需要协同、架构如何为敏捷决策提供支持以及做架构对开发的好处。
InfoQ:您认为架构是什么?它与设计有什么不同?
Jan:架构是在组件层面,而设计定义组件将如何创建或者是如何创建的。架构跨多个应用程序,而设计可以针对一个应用程序来做。
InfoQ:为什么架构与敏捷的协同很重要?如果它们无法协同会怎样?
Jan:协同很重要,因为随着时间推移,架构和敏捷都一直存在。为了避免在它们中的任何一个方面做不必要的工作,我认为协同是必需的。如果它们无法协同,那么团队的解决方案将不适合作为企业级的方案,因为这会导致更高的开发和维护成本。
InfoQ:在您的演讲中,您展示了如何将架构纳入 SAFe。关于这点,您能详细描述一下吗?
Jan:SAFe 将架构史诗当做起点并定义架构功能。这些功能被添加到待办事项列表中,并与业务负责人一起排定优先级。如果有任何架构功能需要创建来支持多项业务功能,那么就需要将它们添加到在一个单独的冲刺里开发的“架构跑道(architecture runway)”中,但仍然要按时完成。
InfoQ:您谈到了架构在决策中的作用。高层管理者需要做什么样的决策,而架构如何提供支持?
Jan:高层管理者的任务是解决业务问题。架构师可以通过提出问题的解决方案、定义优缺点及风险、并达成合适的解决方案来提供支持。这是一个粗略的解决方案,需要在设计和构建之前进行细化。
InfoQ:当一家公司采用了敏捷,还需要做这些决策吗?还是高层管理者做吗?还是说要降到团队层面来做这些决策?
Jan:敏捷不会自动解决业务问题,因此,总是需要做这些决策。决策发生在组织的所有层面,战略决策永远不能在操作层面进行。如果这在实践中发生了,那么肯定存在组织问题。
InfoQ:企业可能将架构和敏捷看作不同的事物,因为他们发现二者难以结合。您能举例说明一下它们可以如何结合以及相互支持吗?
Jan:我的观点是,企业架构总是有自上而下的特性,而敏捷设计和构建则有自下而上的特性。通过将解决方案和项目架构师包含在团队中,进而把二者结合起来是很可能实现的。企业架构可以基于已知的依赖关系为你提供正确的工作包。敏捷团队可以对实践中确实有用的指南提供反馈。
InfoQ:您能举例说明一下,在敏捷环境中,如何将 TOGAF 用于企业架构吗?
Jan:我的观点是,TOGAF 只跟企业架构有关,它用来找出组织中的稳定因素。如果引入了敏捷 EA,那么它将是与敏捷开发团队完全不同的敏捷。
InfoQ:对开发而言,做架构有什么好处?需要哪项投资?
Jan:开发可以获得以下好处:
a. 价值链有助于发现利益相关者
b. 构件及依赖关系有助于创建正确的工作包和团队
c. 高层管理者对主要工作内容作出承诺,减少不必要的变更
d. 标准和指南不同组织的投资数据有很大差别,因此很难做出估计。
查看英文原文:**** Governing Agile with Architecture
评论