聂同学

一个程序员和架构师的实践与思考

以场景思维辅助风险驱动架构设计

“风险驱动架构设计”1需要架构师和团队及时发现风险。这一点是依赖团队经验的。这样的依赖常常引发人们的焦虑:是否所有的风险都被及时发现进而处理了?

不用说缺乏相关经验的团队,即使是经验丰富的团队,随着进入陌生的业务领域或技术环境,也不能避免再次陷入到这样的焦虑之中。

如何缓解焦虑,建立大家的信心呢?我们做了一些尝试——

每当我们害怕遗漏的时候,我们有个朴素的方法:列出所有可能,一一检视,从中挑出那些需要处理的。

怎么才能列出“所有”可能的工程风险呢?我们尝试的是场景思维:我们以软件工程中常见的场景为线索——

  • 系统处理典型需求的场景
  • 发布新功能的场景
  • 业务量发生显著变化的场景
  • 常见故障和应对的场景

根据业务领域、技术环境以及团队结构等因素的不同,这些场景中会发生不同的事件。通过虚拟这些场景和其中的事件,一一检视这些事件中可能蕴含的风险,就可以使我们发现风险的工作系统化。

有同学问到:去寻求一个“完整的”风险列表,不是跟“恰如其分的、不完备的”原则矛盾了么?并不是这样的。我们说的要恰如其分和不完备,指的是架构活动不追求全面,而不是说考虑范围不考虑全面。通过场景思维剪除掉不必要应对的风险,以后的架构活动仍然是恰如其分的。

我们可以从另一个角度来概述这件事情——

“不能发现所有风险”这个风险,是我们可能需要应对的第一个风险。如果需要应对,那我们的措施就是“场景思维法”。

敏捷, 方法论, 架构, 过程

分享 -