我的架构思想(五十二):附录 3.1.2

阅读数:17 2019 年 10 月 16 日 15:05

我的架构思想(五十二):附录 3.1.2

附三:超越软件架构——组织与架构 <1 什么是领域角色的关注 >(领域角色的关注)

在我们对 EHM 模型背后的全景——软件工程——作出本质性思考的时候,“在哪里?是谁?在做什么?”这三个问题的提出,将会带来一个全新的视角。因为这三个问题代表的是:领域,角色,关注。

如此前所讨论的,我们可以将 EHM 模型简单地抽象为一个单向的轴线(对这里要讨论的话题来说,轴上的刻度是没有数值意义的),如图附 3-2 所示。

图附 3-2 将 EHM 图抽象为单向的轴线

我的架构思想(五十二):附录 3.1.2

在《大道至简》中我讲述过一个细节,即所谓的“工程中没有 BOSS”。简单地说,就是经营者这个角色与我们要讨论的工程问题“几乎”无限之遥远。所以我们先把这个轴线向右无限延伸,也就是说,首先要在工程问题中析出“经营”这个角色,如图附 3-3 所示。

图附 3-3 轴线中的经营角色

我的架构思想(五十二):附录 3.1.2

然而,我们又必须认识到:任何一个有意义的工程实施,都是与企业的最终利益相关的,因此也必然会受到经营决策的影响。这种影响可能会很直接地立刻体现,也可能在相当长的时间之后才会表现出来。因此在上面这个图例中,我用虚线来指明这种影响。这一点在后续的讨论中将会相当重要。

剩下的是两类角色,一类是实现角色,另一类是团队角色。在《大道至简》中我们强调了二者本质的不同,以及我在跨越这一边界的过程中最主要的醒觉:语言只是工具。在这一过程中,我留意到:

若某角色在“实现”与“团队”两个领域边界上切换,其成本消耗是不可控的。

由此,《大道至简》中的 EHM 工程模型通过一个界面(临界点)来分隔二者,认为最好的法子是,让实现角色根本不知道所谓的工程,而又在遵循工程的原则下来推进项目。这种分析和推论有一定的合理性,但又忽略了其背后的本质原因,这一点在后面的讨论中将越来越明显。

在使用“在哪里?是谁?在做什么?”这一工具来仔细分析这两类角色时,我们会发现他们所在的领域也是有区别的:实现角色是在技术领域,团队角色则是在工程领域。技术领域关注的是实现的细节,即通过何种方法能将目标有效地实现出来,因而会追求这一实现过程的最优解;工程领域关注的是团队及其所应对目标的规模,在大多数的情况下,这一角色期望控制这一规模以使“目标、资源与质量”可按某种预期、整体地得到保障。有趣的是,从技术领域来说,一旦更细节的或者更宏大的实现成为可能,那么他们将毫不犹豫地将这种“可能”升级为“必须”,并为之充满激情;而这一切,往往又是以牺牲规模为代价的。

对于这两个角色,以及其不同的关注,可以描述成图附 3-4(与上面的图类似,两条轴线之间的角度也是没有数值意义的)。

图附 3-4 模型 1:对 EHM 模型进一步抽象所得的新模型

我的架构思想(五十二):附录 3.1.2

这个模型直接抽象自 EHM 中的实现团队这两个主要角色,并在一定程度上将二者对立起来。这可以让我们清楚地看到二者的不同,和这种差异的本质原因,亦即是它们所面向领域的思维方式与关注对象的差异1。另一方面:

1 思维方式并不是思维对象,前者是基于后者而渐渐形成的思想方法;思维对象也并不是关注对象,(在同一个领域下)前者是后者所带来的、在意识中的映像或抽象。

  • 它狭义地将工程问题等同于团队问题;
  • 它限制了实现角色对工程问题的探讨。

因此它更加清晰地刻画了《大道至简》中所论“工程”的内在关系和冲突。

评论

发布