敏捷开发之基于价值的架构决策

阅读数:1318 2011 年 7 月 23 日

话题:敏捷架构文化 & 方法

在最近的SATURN 2011大会上,来自 eBay 的首席架构师 Jeromy Carriere 以其报告——在 Vistaprint(一家快速前进的敏捷公司)中引入可持续架构实践的经验,而被授予了“架构实战”大奖。Jeromy讲述了对于架构转型,经济价值核算制与所有制如何为自治、但是一致的设计决策奠定了基础。

Jeromy 还提及了,在克服开发人员——将架构等同于大规模预先设计活动、并将架构师角色等同于规范强化人员——的心理障碍上的挑战。他与团队频繁地对话以了解项目的问题,并在被询问时施以援手以获得组织内的信誉。最终,“架构是一个量化决策的工具,以及架构师是一个跨越整个工程部门的共享角色”的观点被广为接受。

通过赋予架构转型以经济价值(对项目的影响),项目组就能够遵循一个合理且透明的决策流程,决定​​是否需要继续进行架构转型。为了将组织的转型需要与项目的转型需要结合在一起,决策流程遵循了一个最小集合的指导方针,包括例如:

  • 集思广益不同的选项,选择将经济价值完整最大化的选项
  • 选择将导致最小、最少耦合软件的设计
  • 利用标准化,以提升可预见性和可扩展性

LAAAM(轻量级架构选型评估方法,“Lightweight Architecture Alternative Assessment Method”的缩写),是一个受软件工程研究所(SEI)的严格的 ATAM(体系结构权衡分析方法,“Architecture Tradeoff Analysis Method”的缩写)流程启发而产生的决策流程。该决策流程针对于结构型与权重型质量,在不同层面上发挥了关键的作用。他解释说:

当决策需要同时考虑局部(如项目)和全局(如企业)关注时,我通常会尝试建立一个综合的质量树——诸如,也许,在企业层面上指定了质量以及次级质量,并且依照评级部分排序(例如,性能比安全性更重要,可靠性也比安全性更重要;但性能与可靠性相比较,孰重孰轻则未定),而项目则对所有的质量属性都排定了顺序(与前面的部分排序一致)。此外,项目还指定了与其特定上下文相关的场景。

LAAAM 提供了一个计算架构方案价值的简单方式——基于各方案在解决项目与企业的相关场景(根据其在质量树上的排名进行加权)时的适用程度(拙劣、尚可、足够或优秀)。目标不在于盲目选择“赢家”方案,而是验证相关的场景得到了有效地解决。当候选方案的得分区别不大时,一个好的策略是把场景深化为子场景,并在子场景上应用该方法。

Jeromy 告诉 InfoQ 他认为对于 LAAAM 演化,最优先的是:整合成本模型(因功能交付延误的机会成本、因技术债务导致生产力下降的成本以及营运成本等),并提供工具支持。

查看英文原文:Value-based Architectural Decisions in Agile Development