架构合同是在开发团体和赞助者之间关于架构的交付物、质量以及适用目标的联合协议,并且通过有效的架构治理将会促使这些协议的成功施行。通过对合同的管理施行一个治理方法,如下几点将会得到保障:
在企业架构开发方法的各阶段中经常会见到架构合同的身影,例如架构愿景阶段中的架构工作说明书等。但无论是何种架构协议,我们都要牢记企业架构开发的终极目标是创建一个动态的企业架构,亦即该架构可以适应外界技术和业务环境的变化而灵活地演进,而架构合同对于促成这一动态企业架构的实现,以及针对此实现的治理是非常重要的。
架构工作说明书产生于架构开发方法的架构愿景阶段,它是架构组织和企业架构赞助者之间的所签订的协议,其具体内容请参见之前架构内容框架中的相关内容。
此合同是一份为设计和开发企业架构而签署的意向说明,亦或是其中一个重要部分。此合同所涉及到的团队组织包括系统集成者、应用提供者和服务提供者。随着合作分工的逐渐细化,针对一个或多个架构领域(业务、数据、应用和技术)的开发已经越来越多的被外包出去,而企业架构组织则主要负责在整体上进行监督和协调,并且在有些情况下,这一监督性角色的任务也被外包到企业之外。但无论怎样安排这些外包任务,这些安排都需要在架构合同的治理之下来进行。这些架构合同定义了所开发架构的交付物、质量、适用目标以及架构开发团队之间进行合作的各种流程。通常来讲,这些架构的内容包括如下几点:
当企业架构被实现之后,在架构功能组织(或整合了架构功能的IT治理组织)和业务用户(他们将会在所设计的架构环境中创建和部署各个应用系统)之间就需要达成一份架构合同(此合同还可以被用来在架构变更阶段中对企业架构变更进行管理),而这份业务用户架构合同(Business Users’ Architecture Contract)的内容通常包括如下几点:
在企业架构开发方法过程的实施治理阶段中所产生的各种架构合同文档主要处于架构治理领域之中。在架构治理的背景之下,这些架构合同经常被用来作为驱动架构变更的一种手段。为了确保这些架构合同的效能,如下几个治理框架的方面需要被引入到实施治理阶段之中:
由于各个组织所处的环境并不是一成不变的,因而能够对这些变化进行快速反应并与之相适应的组织将会比那些缺乏应变能力的组织获得更大的优势。随着IT技术的日益发展以及与组织业务联系的日趋紧密,每个组织都知道为了管理所有可能出现的变化需要不断地改其与IT相关的开发流程,但对于很多组织来说,在哪些方面进行改进以及如何改进的确是个让人头疼的问题。所以在实践过程中,有的组织要么由于不知如何下手而投入过少,要么进行漫无目标的投入而导致投资回报率过低。那么各个组织如何才能解决这一问题,从而使得其所做的改进努力更加有目的性,并得到足够好的回报呢?其实这一问题的答案就是在组织中建立和运用能力成熟度模型(CMMs:Capability Maturity Models)。通过使用这些模型,组织可以得到如下效益:
能力成熟度模型并不是专为企业架构而生,其实它最初目标是为了改善软件和系统工程的过程,只是随着企业架构理论的发展以及业界针对这一领域的关注逐渐加强,人们才开始考虑将这一模型应用到企业架构的领域之中,从而为评测和改进企业架构的过程提供导向。在TOGAF 9中并没有为企业架构专门设计一套成熟度模型,它只是通过例举两种成熟度模型来介绍当前企业架构是如何与能力成熟度模型相结合的,以供读者借鉴。
在前面已经提到过,美国政府可以说是施行企业架构的先行者之一,因而所有的美国联邦政府部门都被要求提供成熟度模型以及相应的打分机制来作为他们的IT投资管理和审计需求的一部分。以美国商务部(US Department of Commerce(DoC))为例,他就已经开发出了一套企业架构能力成熟度模型(ACMM:Architecture Capability Maturity Model)来帮助其内部的企业架构成熟度评测。这一成熟度模型在2007年12月时发布了1.2版本。ACMM提供了一套框架,其中包含了一个富有成效的企业架构过程所应具备的各种关键组件,其目标在于通过明确企业架构的薄弱环节并提供一条定义良好的演进改善路线来提升企业架构的成功几率。ACMM包含如下三部分内容:
在上述三个部分的内容中,前两部份描述了架构能力成熟度水平、相应的企业架构元素,以及用在成熟度评测中的每个成熟度水平的特性;最后一个部分被用来获取用于向商务部首席信息官(CIO)进行汇报的架构能力成熟度水平。
ACMM从如下九个方面对企业架构的成熟度水平进行评定:
ACMM将每个企业架构成熟度评估元素的成熟度水平分为如下五个档次:
截至到目前,成熟度模型已经在很多行业中得到了接受和施行,而且每个行业几乎都具有符合其自身特点的成熟度模型,但是正是由于这种广泛的接受性导致了成熟度模型过于繁杂。为了管理这一由于过多成熟度模型所带来复杂性,SEI(Software Engineering Institute)开发了一个名为能力成熟度模型集成(CMMI:Capability Maturity Model Integration)的框架。该框架综合了各领域成熟度模型的最佳实践,它使得组织可以:
由于CMMI并不是隶属于某个特定行业的综合性成熟度模型,因而在企业架构的成熟度方面也可以对其进行借鉴,而这其中最为重要的就是标准过程改进评估方法(SCAMPI :Standard CMMI Appraisal Method for Process Improvement)。此方法是与CMMI相关连的评估方法,被用来与CMMI参考模型进行比对,从而对目标的优势、弱点进行明确,并通过分数评定的方式进行清晰的表述。
企业架构过程是个非常繁杂的过程,它的顺利进行离不开众多具有不同角色的人员的通力协作,而如何保证这些相互合作的人员在各自岗位上能够胜任就变成一切活动的根本问题。为了应对这一问题,TOGAF提出了架构技能框架(Architecture Skills Framework),它为进行企业架构建设的组织提供了一份关于企业架构工作中各种角色及其能力的视图,从而为担负企业架构工作任务的团队的建立提供了导则。简单来讲,架构技能框架的内容包含如下三个方面:
在实践中,每个企业对于项目人员的选择应该都有着自己的一套方法和流程,基本上来讲,都是通过项目本身的特质来制定所需人员的技能标准,并通过简单的面试来从组织内外的候选者中选择合适之人,但这对于企业架构的建设来讲却过于简单了。虽然企业架构的建设从本质上来讲也是一个项目,但是由于其本身的复杂度之高、牵涉性之广,如果把它当作一个普通实现项目来对待的话,组织往往会面临如下风险:
为了尽量避免这些风险,各个组织应该采用更为正式的认证机制来对企业架构工作人员进行定义和选择,而这一机制的目的应该在于如下两点:
TOGAF将通常用来承担企业架构开发工作的架构团队中的角色分为如下几类:
架构技能框架将架构团队所需要技能归纳为如下几类:
架构委员会成员 |
架构赞助者 |
架构经理 |
架构师 (技术) |
架构师 (数据) |
架构师 (应用) |
架构师 (业务) |
方案/项目经理 |
IT设计师 |
|
通用技能 |
|||||||||
领导力 (Leadership) |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
4 |
1 |
团队合作 (Teamwork) |
3 |
3 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
人际交往 (Inter-personal) |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
口才 (Oral Communications) |
3 |
3 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
写作 (Written Communications) |
3 |
3 |
4 |
4 |
4 |
4 |
4 |
3 |
3 |
逻辑分析 (Logical Analysis) |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
3 |
3 |
干系人管理 (Stakeholder Management) |
4 |
3 |
4 |
3 |
3 |
3 |
3 |
4 |
2 |
风险管理 (Risk Management) |
3 |
3 |
4 |
3 |
3 |
3 |
3 |
4 |
1 |
业务技能和方法 |
|||||||||
业务案例 (Business Case) |
3 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
业务情景 (Business Scenario) |
2 |
3 |
4 |
4 |
4 |
4 |
4 |
3 |
2 |
组织结构 (Organization) |
3 |
3 |
4 |
3 |
3 |
3 |
4 |
3 |
2 |
业务流程 (Business Process) |
3 |
3 |
4 |
4 |
4 |
4 |
4 |
3 |
2 |
战略规划 (Strategic Planning) |
2 |
3 |
3 |
3 |
3 |
3 |
4 |
3 |
1 |
预算管理 (Budget Management) |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
4 |
3 |
战略愿景 (Visioning) |
3 |
3 |
4 |
3 |
3 |
3 |
4 |
3 |
2 |
业务指标 (Business Metrics) |
3 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
3 |
业务文化 (Business Culture) |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
3 |
1 |
遗留的投资 (Legacy Investments) |
4 |
4 |
3 |
2 |
2 |
2 |
2 |
3 |
2 |
业务功能 (Business Functions) |
3 |
3 |
3 |
3 |
4 |
4 |
4 |
3 |
2 |
企业架构技能 |
|||||||||
业务建模 (Business Modeling) |
2 |
2 |
4 |
3 |
3 |
4 |
4 |
2 |
2 |
业务流程设计 (Business Process Design) |
1 |
1 |
4 |
3 |
3 |
4 |
4 |
2 |
2 |
角色设计 (Role Design) |
2 |
2 |
4 |
3 |
3 |
4 |
4 |
2 |
2 |
组织结构设计 (Organization Design) |
2 |
2 |
4 |
3 |
3 |
4 |
4 |
2 |
2 |
数据设计 (Data Design) |
1 |
1 |
3 |
3 |
4 |
3 |
3 |
2 |
3 |
应用设计 (Application Design) |
1 |
1 |
3 |
3 |
4 |
3 |
3 |
2 |
3 |
系统集成 (Systems Integration) |
1 |
1 |
4 |
4 |
3 |
3 |
3 |
2 |
2 |
IT行业标准 (IT Industry Standards) |
1 |
1 |
4 |
4 |
4 |
4 |
3 |
2 |
3 |
服务设计 (Services Design) |
2 |
2 |
4 |
4 |
3 |
4 |
3 |
2 |
2 |
架构原则设计 (Architecture Principles Design) |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
2 |
2 |
架构视图和视角设计 (Architecture Views & Viewpoints Design) |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
2 |
2 |
构建块设计 (Building Block Design) |
1 |
1 |
4 |
4 |
4 |
4 |
4 |
2 |
3 |
解决方案建模 (Solutions Modeling) |
1 |
1 |
4 |
4 |
4 |
4 |
4 |
2 |
3 |
效益分析 (Benefits Analysis) |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
业务交互 (Business Interworking) |
3 |
3 |
4 |
3 |
3 |
4 |
4 |
3 |
1 |
系统行为 (Systems Behavior) |
1 |
1 |
4 |
4 |
4 |
4 |
3 |
3 |
2 |
项目管理 (Project Management) |
1 |
1 |
3 |
3 |
3 |
3 |
3 |
4 |
2 |
方案或项目管理技能 |
|||||||||
方案管理 (Program Management) |
1 |
2 |
3 |
3 |
3 |
3 |
3 |
4 |
2 |
项目管理 (Project Management) |
1 |
2 |
3 |
3 |
3 |
3 |
3 |
4 |
2 |
管理业务变更 (Managing Business Change) |
3 |
3 |
4 |
3 |
3 |
3 |
4 |
4 |
2 |
变更管理 (Change Management) |
3 |
3 |
4 |
3 |
3 |
3 |
4 |
3 |
2 |
价值管理 (Value Management) |
4 |
4 |
4 |
3 |
3 |
3 |
4 |
3 |
2 |
通用IT知识技能 |
|||||||||
IT应用开发方法和工具 (IT Application Development Methodologies & Tools) |
2 |
2 |
3 |
4 |
4 |
4 |
2 |
3 |
3 |
编程语言 (Programming Languages) |
1 |
1 |
3 |
4 |
4 |
4 |
3 |
2 |
3 |
代理应用 (Brokering Applications) |
1 |
1 |
3 |
3 |
4 |
4 |
3 |
2 |
3 |
信息消费应用 (Information Consumer Applications) |
1 |
1 |
3 |
3 |
4 |
4 |
3 |
2 |
3 |
信息提供应用 (Information Provider Applications) |
1 |
1 |
3 |
3 |
4 |
4 |
3 |
2 |
3 |
存储管理 (Storage Management) |
1 |
1 |
3 |
4 |
4 |
2 |
2 |
2 |
3 |
网络 (Networks) |
1 |
1 |
3 |
4 |
3 |
2 |
2 |
2 |
3 |
基于Web的服务 (Web-based Services) |
1 |
1 |
3 |
3 |
4 |
4 |
2 |
2 |
3 |
信息技术基础设施 (IT Infrastructure) |
1 |
1 |
3 |
4 |
3 |
2 |
2 |
2 |
3 |
资产管理 (Asset Management) |
1 |
1 |
4 |
4 |
3 |
3 |
3 |
2 |
3 |
服务等级协议 (Service Level Agreements) |
1 |
1 |
4 |
4 |
3 |
4 |
3 |
2 |
3 |
系统 (Systems) |
1 |
1 |
3 |
4 |
3 |
3 |
2 |
2 |
3 |
商用现成品 (COTS) |
1 |
1 |
3 |
4 |
3 |
4 |
2 |
2 |
3 |
企业连续体 (Enterprise Continuums) |
1 |
1 |
4 |
4 |
4 |
4 |
4 |
2 |
3 |
迁移规划 (Migration Planning) |
1 |
1 |
4 |
3 |
4 |
3 |
3 |
2 |
3 |
管理工具 (Management Utilities) |
1 |
1 |
3 |
2 |
4 |
4 |
2 |
2 |
3 |
基础设施 (Infrastructure) |
1 |
1 |
3 |
4 |
3 |
4 |
2 |
2 |
3 |
IT技术技能 |
|||||||||
软件工程 (Software Engineering) |
1 |
1 |
3 |
3 |
4 |
4 |
3 |
2 |
3 |
安全 (Security) |
1 |
1 |
3 |
4 |
3 |
4 |
3 |
2 |
3 |
系统和网络管理 (Systems & Network Management) |
1 |
1 |
3 |
4 |
3 |
3 |
3 |
2 |
3 |
事务处理 (Transaction Processing) |
1 |
1 |
3 |
4 |
3 |
4 |
3 |
2 |
3 |
位置和目录 (Location & Directory) |
1 |
1 |
3 |
4 |
4 |
3 |
3 |
2 |
3 |
用户界面 (User Interface) |
1 |
1 |
3 |
4 |
4 |
4 |
3 |
2 |
3 |
国际化操作 (International Operations) |
1 |
1 |
3 |
4 |
3 |
3 |
2 |
2 |
2 |
数据交换 (Data Interchange) |
1 |
1 |
3 |
4 |
4 |
3 |
2 |
2 |
3 |
数据管理 (Data Management) |
1 |
1 |
3 |
4 |
4 |
3 |
2 |
2 |
3 |
图形与图像 (Graphics & Image) |
1 |
1 |
3 |
4 |
3 |
3 |
2 |
2 |
3 |
操作系统服务 (Operating System Services) |
1 |
1 |
3 |
4 |
3 |
3 |
2 |
2 |
3 |
网络服务 (Network Services) |
1 |
1 |
3 |
4 |
3 |
3 |
2 |
2 |
3 |
通信基础设施 (Communications Infrastructure) |
1 |
1 |
3 |
4 |
3 |
3 |
2 |
2 |
3 |
法律环境 |
|||||||||
合同法 (Contract Law) |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
3 |
1 |
数据保护法 (Data Protection Law) |
3 |
3 |
4 |
3 |
3 |
3 |
3 |
2 |
2 |
采购法 (Procurement Law) |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
1 |
诈骗 (Fraud) |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
1 |
商业法 (Commercial Law) |
3 |
3 |
2 |
2 |
2 |
2 |
3 |
3 |
1 |
在前面提到过的各种角色之中,最经常被提到的恐怕要数“企业架构师”这一角色了,而这也正是因为这一角色是整个企业架构建设的核心。虽然非常重要且常被挂在嘴角,但其在各行业中正式的定义却鲜有所闻,而仅仅被当作一个跨越多个架构领域具有广泛实践经验和技能的角色。TOGAF对于企业架构师的工作描述总结为如下几点:
架构师的职责范围贯穿了企业架构的整个生命周期,它开始于与客户一起理解其真正的需求,并在其后的过程中负责将这些需求转化为能够对其进行实现的各项能力。此外,架构师还需要通过不同模型的展示来与客户就其需求是如何被满足的进行沟通。由此可见,架构师与负责建设的团队是不同的,他的主要目标在于理解如何才能满足客户的需要,并就此为负责建设的应用开发团队或产品实现团队提供设计决策文档。与建设者相比,架构师需要保持一定水平的抽象性,并且通常其所使用的技能应该是归纳性的,而建设者则更加注重于实现方面,其所采用的技能也往往是推断性的。综上所述,架构师的角色职能可以总结如下:
在前面有关企业连续体的部分中我们已经了解到,对于构建块的实现可能会受其复杂性所限而需要对其解决方案的实施进行进一步划分,而在这种情况下就需要多种架构师的通力协作。从企业连续体的角度来说,架构师这一角色可以分为如下几种,并且其中的每一种都具备着各自的关注点:
在本节的最后一部分,我们来探讨一下TOGAF对于企业架构师各方面特质的归纳总结: