对于一名架构师来讲,如果说编程语言是知识库层次中的入门石,那么企业架构框架则相当于知识库层次中的金字塔尖。如果想成长为企业级的架构师,企业架构框架是必须要攀登的高塔。 目前国内绝大多数企业采用TOGAF标准,因此我们的讨论主要围绕TOGAF展开,涉及主流版本9.1和9.2。在这个过程中,笔者还会广泛运用摩天轮学习法,以便更清晰地呈现相关内容。
在本文中,笔者将首先讨论企业架构框架TOGAF的学习方法。目前,关于TOGAF的学习材料主要以官方手册为主,网上的资料大多不成体系。然而,官方手册本身存在几个较大缺点可能影响学习质量,以下是笔者总结出来的几个主要缺点:
那么,TOGAF到底应该如何学呢?接下来,首先整体介绍一下学习TOGAF的三个层次。然后,对每个层次的主要内容进行简要讲解。
上述TOGAF官方手册的四个缺点实际上可以归纳为三类问题。第一类是如何学习TOGAF,对应于前面提到的问题1和问题2。
第二类是如何应用TOGAF,对应于前面提到的问题3。第三类则是如何思考TOGAF,对应于前面提到的问题4。
实际上,这三大类问题恰好对应着学习TOGAF的三个主要层次,具体可参见下图所示。
如上所述,这三个层次是一个逐步递进的关系。著名数学家华罗庚曾说过:“先把书读厚,再把书读薄”,这恰好对应着三个层次的递进过程。
只是相较而言,“怎么用”要求能够在已经掌握知识的基础上提炼出一些通用规则或模式,并在特定环境中灵活组合运用。
而“怎么思”则要求更高一些,要求在“会用”的基础之上,再抽象出一些通用的思维方式出来,并扩展到更广泛的应用场景。
在本篇文章的下面部分,将简要介绍一下三个层次的内容结构框架。
关于目前TOGAF官方手册的组织方式和问题,在本篇中将略过不提,笔者将在后续系列文章中进行具体介绍。
在“怎么学”部分,大致的内容框架如下图所示,类似于“剥洋葱”的过程,从企业的外部环境开始逐层剥开,最终再深入讲解TOGAF。
从上图中可以发现,企业架构框架TOGAF的直接外部环境就是企业。因此,可以将学习企业架构框架TOGAF的过程分成两大部分:企业和企业架构框架TOGAF。
第一部分先讲企业,这部分又分成三块内容来进行阐述。
第二部分开始讲企业架构框架TOGAF,这部分也大致分为三块内容来进行阐述。
针对已有问题,通过构建一个“双飞轮模型”来重新组织内容,如下图所示。
这里需要提醒一下,上图中的组织和工具,其涵盖的范围比TOGAF官方手册中提到的概念要大。
大致来讲,TOGAF官方手册中第二部分(架构开发方法)属于上图中的方法部分;官方手册中的第三(ADM指南和技术)、第四(架构内容框架)和第五部分(企业连续统一体和工具)大体划分到上图中的工具部分;最后,官方手册中的第六部分(架构能力框架)划分到组织部分。
此外,在这一部分中,还会通过多个层次元模型的讲解,以对TOGAF整体有一个清晰的整体性认识。
第一个区别是ADM每个阶段的步骤会统一按照摩天轮方法中的目标、环境(含输入和输出)、结构和过程的方式来进行,这样会更加简洁清晰。
第二个区别是在讲ADM每一个阶段时,会将TOGAF官方手册中二、三、四部分的相关内容一并讲解。因为这些部分的主要内容已经分解到“双飞轮模型”中的组织和工具的结构中。因此,在介绍ADM的每一个阶段时,会一并介绍方法与组织和工具部分之间的交互。在这种方式下,内容不会像原来那样存在割裂感,而且一个阶段会将所有相关内容都囊括在内。
通过以上对第一个层次内容的学习,目标是让读者能够清晰地理解并且掌握TOGAF。
学习TOGAF的一个主要目标是为了能够用于实际架构实践当中。上面提过,TOGAF的核心方法ADM都是将很多内容糅杂在一起全部呈现出来,让读者自己去从中挑选合适的部分。
这种难度主要在于两个地方:一是需要对业务架构、应用架构、数据架构和技术架构等相关方法论非常熟悉,这样才能挑选出适合自身场景的技术;二是各个阶段挑选的部分还需要能够保持前后的连贯一致性。
因此,在“怎么用”的第一部分,笔者将首先对TOGAF核心方法ADM进行一些分析探讨,主要包括两部分内容。
接着,在“怎么用”的第二部分,笔者将详细讲解ADM方法在实际架构实践中的应用。如TOGAF中所说企业架构本身是分层的,如下图所示。
因此,在这部分中,首先将从企业架构整体层面介绍ADM方法的应用。其次,再分别介绍ADM方法在战略架构、分部架构和能力架构三大层次上的应用。在不同层次的架构中,ADM方法每个阶段所要做的工作也有较大差异。
在讲解企业架构整体、战略架构、分部架构和能力架构各个部分内容时,我们也将采用摩天轮学习法中的四要素来进行,如下图所示。
在本部分中,笔者将尝试融合企业架构框架与PACE产品开发过程,探讨架构治理等组织方式、工具和方法相互融入的过程。
通过以上对第二个层次内容的学习,读者可以掌握战略、分部和能力三个层级架构的具体落地方法。在这个过程中,读者也会更深入理解一些架构方法论,包括过程驱动方法、对象驱动方法、数据驱动方法、领域驱动方法以及TOGAF中的价值驱动方法等,同时还涉及到需求有效管理、敏捷和DevOps、PACE等相关方法论。
前两个层次更多是关于TOGAF官方手册纸面上教给我们的东西。然而,笔者认为TOGAF背后所蕴藏的一些思想更为珍贵,比如分层、迭代、能力增量、模式、互操作性、分区、无边界信息流、连续统一体、广度/深度/时间区间、原则、开放性、企业应用综合、透明性等。
然而,单独地逐一对这些概念进行讲解会有些零碎。对架构师来说,架构设计的过程其实就是一个应对复杂性挑战的过程。因此,笔者将以“复杂性”为中心,将与其相关的思想都融入进来。
不过,复杂性这个词本身就非常抽象,也很难以准确解释。在之前的文章《一切系统的本质是什么》中,笔者总结出一切系统的本质是由环境、目标、过程和目标四个核心要素组成的。
基于这一理论,笔者将复杂性也视为一个系统,并将探讨复杂性在结构、过程、环境和目标四个方面存在的问题,例如,结构方面存在元素或实体数量过多,交互混乱等复杂性问题,过程方面存在通信的不确定性、滞后性、动态性等复杂性问题,这些复杂性问题同样是架构设计中常常碰到的。
接下来,笔者将进一步抽象这些TOGAF思想,并提炼出一些通用的思维模式,包括本体思维、还原思维、进化思维、系统思维和管理思维等。举例来说,在进化思维中包含了分层、迭代和开放性等思想。
这些通用的思维模式都是人类文明在发展过程中为解决复杂性问题而演变出来的普适性方法。除了介绍思维模式之外,还会探讨这些模式在架构设计领域的应用。
在本篇关于企业架构框架TOGAF的第一篇文章中,我们简要介绍了目前TOGAF官方手册存在的三大类问题,并针对这些问题提出了一种三个层次学习TOGAF的方法。随后,我们简要介绍了每个层次下的主要内容框架。
可以看出,不论是第一个层次“怎么学”中对于ADM方法每个阶段的介绍,还是第二个层次“怎么用”中对于各个层级架构内容的介绍,或者是第三个层次“怎么思”中对于思维本质的探讨,基本都采用了摩天轮学习法中的框架进行讲解。