三大层次学习企业架构框架TOGAF

2024-04-20 06:52

本文主要是介绍三大层次学习企业架构框架TOGAF,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

对于一名架构师来讲,如果说编程语言是知识库层次中的入门石,那么企业架构框架则相当于知识库层次中的金字塔尖。如果想成长为企业级的架构师,企业架构框架是必须要攀登的高塔。

目前国内绝大多数企业采用TOGAF标准,因此我们的讨论主要围绕TOGAF展开,涉及主流版本9.1和9.2。在这个过程中,笔者还会广泛运用摩天轮学习法,以便更清晰地呈现相关内容。

在本文中,笔者将首先讨论企业架构框架TOGAF的学习方法。目前,关于TOGAF的学习材料主要以官方手册为主,网上的资料大多不成体系。然而,官方手册本身存在几个较大缺点可能影响学习质量,以下是笔者总结出来的几个主要缺点:

  1. 作为企业级的架构框架,与企业、企业战略、企业愿景、业务战略等都有很多关联。此外,还有一个重要概念叫做无边界信息流,它源自于无边界组织。这些作为与TOGAF密切相关的外部环境因素,在TOGAF官方手册中仅仅轻描淡写地提及或者根本不提,这会给理解TOGAF带来困惑。例如,如果不了解企业战略和愿景,就很难理解架构愿景;不理解无边界组织就很难理解无边界信息流,同时也难以领会企业基于能力的规划、业务能力、业务价值、业务功能,以及企业为什么要采用SOA、微服务等架构。总之,在TOGAF官方手册中省略了大量关键外部环境知识,而这些知识对于正确理解TOGAF却具有重要价值;

  2. TOGAF官方手册在内容组织上存在不够完善的地方,导致读者难以形成对TOGAF整体性的理解。实际上,在详细介绍TOGAF核心ADM方法之前,应该先对TOGAF进行一个相对全面的概述。尽管有些读者可能认为目前TOGAF标准结构中的六大部分已经提供了概述,但其实这仅仅是技术视角下的整合,并非从企业或架构视角出发进行的整合。因此,在阅读TOGAF手册时,会让人感觉内容比较零散,难以形成一个统一而完整的认知框架;

  3. TOGAF中的核心ADM方法本身是一个具体的指导流程,TOGAF中也花了很大的篇幅来进行介绍。但是,存在的最大问题是学完之后仍然不会用。这里面最主要的原因在于ADM中将太多东西糅杂在一起,没有按照不同场景进行分层或分类。举个简单的例子,在ADM中的业务架构阶段,其中建模可以包括价值流、结构化分析、用例分析、过程建模等方式,这些不同的方式实际上适用于不同的项目的规模或层次。因此,TOGAF在这方面存在问题是内容涵盖太广泛,反而让人难以聚焦;

  4. 初次接触TOGAF时,有人可能觉得它内容繁杂,文字也较为正式晦涩,因此很多人选择放弃学习或者干脆不去了解。然而真实情况是,TOGAF中蕴含着深邃博大的思想。比如说,对于架构而言,其本质在于解决现实世界或系统的复杂性问题。在TOGAF中就明确提到了一些应对复杂性的通用方法,比如分层、迭代、架构连续性、能力增量、模式、互操作性和分区等。总体来说,TOGAF实际上是一个蕴藏着许多重要架构思想的宝库。如果TOGAF手册能够更好地提炼和升华这些思想,将会给读者带来更大的价值。
    在这里插入图片描述
    那么,TOGAF到底应该如何学呢?接下来,首先整体介绍一下学习TOGAF的三个层次。然后,对每个层次的主要内容进行简要讲解。

掌握TOGAF的三个层次

上述TOGAF官方手册的四个缺点实际上可以归纳为三类问题。第一类是如何学习TOGAF,对应于前面提到的问题1和问题2。

第二类是如何应用TOGAF,对应于前面提到的问题3。第三类则是如何思考TOGAF,对应于前面提到的问题4。

实际上,这三大类问题恰好对应着学习TOGAF的三个主要层次,具体可参见下图所示。

第一层是“怎么学”?其主要目标是“知识为我所知”,即寻找到好的学习方法或途径,全面理解并掌握TOGAF体系的知识。

第二层是“怎么用”?其主要目标是是“知识为我所用”,即不仅能够掌握知识,并且能够根据不同的环境灵活地组合运用。

第三层是“怎么思”?其主要目标是“思想为我所用”。即不仅能将TOGAF知识活灵活用,并且能将其背后蕴含的思想提炼出来,应用于架构设计等其他场景中。
在这里插入图片描述

如上所述,这三个层次是一个逐步递进的关系。著名数学家华罗庚曾说过:“先把书读厚,再把书读薄”,这恰好对应着三个层次的递进过程。

首先,第一个层次“怎么学”类似于“先把书读厚”的过程。在这一阶段,不仅需要学习TOGAF理论本身的内容,还需要通过大量外部环境知识的学习来全面理解和掌握TOGAF。

其次,第二个层次“怎么用”和第三个层次“怎么思”则都类似于“再把书读薄”的过程。

只是相较而言,“怎么用”要求能够在已经掌握知识的基础上提炼出一些通用规则或模式,并在特定环境中灵活组合运用。

而“怎么思”则要求更高一些,要求在“会用”的基础之上,再抽象出一些通用的思维方式出来,并扩展到更广泛的应用场景。

在本篇文章的下面部分,将简要介绍一下三个层次的内容结构框架。

层次1:怎么学?
关于目前TOGAF官方手册的组织方式和问题,在本篇中将略过不提,笔者将在后续系列文章中进行具体介绍。

在“怎么学”部分,大致的内容框架如下图所示,类似于“剥洋葱”的过程,从企业的外部环境开始逐层剥开,最终再深入讲解TOGAF。

在这里插入图片描述

从上图中可以发现,企业架构框架TOGAF的直接外部环境就是企业。因此,可以将学习企业架构框架TOGAF的过程分成两大部分:企业和企业架构框架TOGAF。

第一部分先讲企业,这部分又分成三块内容来进行阐述。

(1)企业外部环境:将企业视为一个黑盒,并以企业的“有边界组织”到“无边界组织”的演变为轴,探讨无边界组织的含义,最后延伸介绍无边界信息流。

(2)企业边界:从某种意义上来讲,企业战略的本质可以理解为是将外部环境与企业内部能力进行匹配的过程。因此,这一部分主要讲解企业战略,包括企业战略的十大学派、三大层次,以及与愿景、使命、文化的关系等。

(3)企业内部:即企业通常为了实施战略,内部是如何组织的。在此过程中,会逐步介绍价值系统、价值链、核心流程、组织结构等内容。

第二部分开始讲企业架构框架TOGAF,这部分也大致分为三块内容来进行阐述。

(1)TOGAF的整体性概述:在这部分内容中,会首先介绍TOGAF官方手册的内容组织方式及存在的主要问题。

针对已有问题,通过构建一个“双飞轮模型”来重新组织内容,如下图所示。

这里需要提醒一下,上图中的组织和工具,其涵盖的范围比TOGAF官方手册中提到的概念要大。

大致来讲,TOGAF官方手册中第二部分(架构开发方法)属于上图中的方法部分;官方手册中的第三(ADM指南和技术)、第四(架构内容框架)和第五部分(企业连续统一体和工具)大体划分到上图中的工具部分;最后,官方手册中的第六部分(架构能力框架)划分到组织部分。
在这里插入图片描述

此外,在这一部分中,还会通过多个层次元模型的讲解,以对TOGAF整体有一个清晰的整体性认识。

(2)TOGAF核心ADM方法介绍:这部分内容相比TOGAF官方手册中的介绍方式主要有两个区别。

第一个区别是ADM每个阶段的步骤会统一按照摩天轮方法中的目标、环境(含输入和输出)、结构和过程的方式来进行,这样会更加简洁清晰。

第二个区别是在讲ADM每一个阶段时,会将TOGAF官方手册中二、三、四部分的相关内容一并讲解。因为这些部分的主要内容已经分解到“双飞轮模型”中的组织和工具的结构中。因此,在介绍ADM的每一个阶段时,会一并介绍方法与组织和工具部分之间的交互。在这种方式下,内容不会像原来那样存在割裂感,而且一个阶段会将所有相关内容都囊括在内。

(3)TOGAF其他内容专题介绍:比如架构治理、连续统一体等,这些内容在上面一、二块内容中并没有完全覆盖。

通过以上对第一个层次内容的学习,目标是让读者能够清晰地理解并且掌握TOGAF。

层次2:怎么用?
学习TOGAF的一个主要目标是为了能够用于实际架构实践当中。上面提过,TOGAF的核心方法ADM都是将很多内容糅杂在一起全部呈现出来,让读者自己去从中挑选合适的部分。

这种难度主要在于两个地方:一是需要对业务架构、应用架构、数据架构和技术架构等相关方法论非常熟悉,这样才能挑选出适合自身场景的技术;二是各个阶段挑选的部分还需要能够保持前后的连贯一致性。

因此,在“怎么用”的第一部分,笔者将首先对TOGAF核心方法ADM进行一些分析探讨,主要包括两部分内容。

一是探讨企业架构,以及ADM方法中涉及的业务架构、数据架构、应用架构和技术架构的本质是什么。

二是探讨ADM方法中业务架构、数据架构、应用架构和技术架构中隐含的方法论有哪些?尤其是业务架构部分,由于业务架构指导数据架构和应用架构的实现,业务架构的方法论是最重要的。

接着,在“怎么用”的第二部分,笔者将详细讲解ADM方法在实际架构实践中的应用。如TOGAF中所说企业架构本身是分层的,如下图所示。

在这里插入图片描述

因此,在这部分中,首先将从企业架构整体层面介绍ADM方法的应用。其次,再分别介绍ADM方法在战略架构、分部架构和能力架构三大层次上的应用。在不同层次的架构中,ADM方法每个阶段所要做的工作也有较大差异。

在讲解企业架构整体、战略架构、分部架构和能力架构各个部分内容时,我们也将采用摩天轮学习法中的四要素来进行,如下图所示。

首先,介绍该架构所处的环境,随后介绍该架构的实现目标;接着,在结构部分介绍该架构所涉及的主要模型,包括元模型及其他模型等;最后,在过程环节,则主要按照ADM方法中的业务架构、数据架构、应用架构和技术架构来详细介绍执行过程。并且,在讲解过程中,会列举大量的实践案例来帮助读者掌握。

最后,在“怎么用”的第三部分,还将讲解企业架构作为一个整体在企业中的应用。在TOGAF手册中,只讲述了ADM这一个核心过程,这实际上是一个偏技术视角的过程。

在本部分中,笔者将尝试融合企业架构框架与PACE产品开发过程,探讨架构治理等组织方式、工具和方法相互融入的过程。

通过以上对第二个层次内容的学习,读者可以掌握战略、分部和能力三个层级架构的具体落地方法。在这个过程中,读者也会更深入理解一些架构方法论,包括过程驱动方法、对象驱动方法、数据驱动方法、领域驱动方法以及TOGAF中的价值驱动方法等,同时还涉及到需求有效管理、敏捷和DevOps、PACE等相关方法论。

层次3:怎么思?
前两个层次更多是关于TOGAF官方手册纸面上教给我们的东西。然而,笔者认为TOGAF背后所蕴藏的一些思想更为珍贵,比如分层、迭代、能力增量、模式、互操作性、分区、无边界信息流、连续统一体、广度/深度/时间区间、原则、开放性、企业应用综合、透明性等。

然而,单独地逐一对这些概念进行讲解会有些零碎。对架构师来说,架构设计的过程其实就是一个应对复杂性挑战的过程。因此,笔者将以“复杂性”为中心,将与其相关的思想都融入进来。

不过,复杂性这个词本身就非常抽象,也很难以准确解释。在之前的文章《一切系统的本质是什么》中,笔者总结出一切系统的本质是由环境、目标、过程和目标四个核心要素组成的。

基于这一理论,笔者将复杂性也视为一个系统,并将探讨复杂性在结构、过程、环境和目标四个方面存在的问题,例如,结构方面存在元素或实体数量过多,交互混乱等复杂性问题,过程方面存在通信的不确定性、滞后性、动态性等复杂性问题,这些复杂性问题同样是架构设计中常常碰到的。

接下来,笔者将进一步抽象这些TOGAF思想,并提炼出一些通用的思维模式,包括本体思维、还原思维、进化思维、系统思维和管理思维等。举例来说,在进化思维中包含了分层、迭代和开放性等思想。

这些通用的思维模式都是人类文明在发展过程中为解决复杂性问题而演变出来的普适性方法。除了介绍思维模式之外,还会探讨这些模式在架构设计领域的应用。

通过以上对第三个层次内容的学习,读者相当于掌握了一套解决通用复杂性问题的通用思维方式,也可以将这些从TOGAF抽象提炼出来的思想,应用于更广泛的架构设计中。

结束语
在本篇关于企业架构框架TOGAF的第一篇文章中,我们简要介绍了目前TOGAF官方手册存在的三大类问题,并针对这些问题提出了一种三个层次学习TOGAF的方法。随后,我们简要介绍了每个层次下的主要内容框架。

可以看出,不论是第一个层次“怎么学”中对于ADM方法每个阶段的介绍,还是第二个层次“怎么用”中对于各个层级架构内容的介绍,或者是第三个层次“怎么思”中对于思维本质的探讨,基本都采用了摩天轮学习法中的框架进行讲解。

通过本次课程,可以加深大家对摩天轮学习法的理解,它不仅可以讲解Java语言这种简单的技术,也可以用于拆解像企业架构框架这种处于金字塔尖的技术。

后续,我们也将陆续推出更多运用摩天轮学习法的系列课程,包括设计模式、开发框架、各类中间件、架构、大模型技术等,希望大家持续关注。

另外,笔者前期编写的《架构师启示录》已由机械工业出版社最近出版。书中主要介绍了一个架构师能力模型,涵盖架构知识模型、架构落地方法、架构思维模式三大维度,是一本非常实用的架构学习书籍,欢迎大家订阅。

直播预告

在这里插入图片描述

这篇关于三大层次学习企业架构框架TOGAF的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/919569

相关文章

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

Gin框架中的GET和POST表单处理的实现

《Gin框架中的GET和POST表单处理的实现》Gin框架提供了简单而强大的机制来处理GET和POST表单提交的数据,通过c.Query、c.PostForm、c.Bind和c.Request.For... 目录一、GET表单处理二、POST表单处理1. 使用c.PostForm获取表单字段:2. 绑定到结

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操