企业级管理信息系统架构成熟度模型
骆金松
摘要:以传统制造业为参照,说明制造业企业如何在保持低成本、快速响应的前提下,应用模块化、平台化、标准化、分工协作等技术,在提高产品的普遍适应性的同时,提高满足客户个性需求的能力。根据制造业的发展规律,作者推测并给出了企业级管理信息系统较理想的参考架构模型,并提出了四阶段的企业级管理信息系统的架构成熟度模型,说明软件开发商如何根据企业的实际情况选择合适的架构模型,并建立相配套的战略、企业文化、组织结构、作业流程、技能结构等,并在适当的时候对架构模型进行调整,以保持企业的核心竞争力合可持续发展。
关键词:成熟度、管理信息系统、企业级、架构模型
软件产业是中国经济信息化的核心产业。中国信息化产业发展的步伐伴随着全球经济一体化而越来越快,中国软件开发商也正一步成为中国企业信息化建设舞台的主角之一,而这一切首先要归于中国开发商熟悉客户业务的本土化优势。然而经历了20多年的发展以后,中国软件开发商并没有想到信息化建设大潮所带来的高速增长,除了极少数企业获得了发展较好,而且取得了较高的市场份额,大多数企业受到成本、质量、技术、人力、资源等诸多因素的制约,难以具备持续发展的能力,在与国外的软件供应商同台竞争过程中处于劣势地位。与此同时,技术的革新和软件开发模式的快速变化缩短了中国软件产业升级的历程,从而带来了新的机会和挑战。在这一历史的转折点,我们有必要重新审视中国软件开发商长期以来所采取的发展战略,并剖析这些公司在发展之路上如何采取合适的技术路线,并得以持续发展。
按照苏联发明家G.S.Altshuller在1946年创立的TRIZ理论,也被称为“发明问题的解决理论”,任何技术领域的产品改进、技术的变革、创新和生物系统一样,都存在产生、生长、成熟、衰老、灭亡的过程,是有规律可循的。按照这个我们可以从一个成熟领域的发展过程中找出某些规律,而后用来预测另一个新兴领域的发展趋势是有科学依据的。所以,本文通过对制造业等传统行业的发展规律的分析,来预测新兴的企业级管理信息系统软件领域的发展趋势是有科学依据的。进一步,作者根据目前国际上众多企业级管理信息系统软件开发商的发展历程对本文提出了四阶段成熟度模型加以论证。希望研究结果可以对国内企业级管理软件开发商的技术路线提供指导性建议,帮助企业持续发展。
一种观点认为:信息产业得以快速发展,并在世界范围内迅速扩散,其内在推动力就在于信息产业的发展改变了传统产业的边际收益递减规律,实现了边际收益递增。因为一个软件程序一旦编写成功后,它的复制几乎不需再花费什么生产成本。我认为这种观点不太全面,对于字处理软件、杀毒软件、英语学习软件等软件而言一旦软件设计出来,就不需要为不同的客户进行定制开发,大量分发。对于企业级管理信息系统市场,不同的企业个性化需求十分明显,一般都需要提供针对性强的个性化解决方案。软件开发企业一方面要尽量满足企业客户个性化需求,提高服务质量,另外一方面又要尽量提高软件复用程度,降低开发成本。在企业级管理软件市场,总是可以高质量、快速、低成本满足客户个性化需求的软件企业才具有竞争力。要解决这个问题,很大程度上需要良好的技术架构。
早期,汽车制造采用了几乎全手工的生产方式,由一家企业负责汽车的设计、零件的制造、整车的组装的绝大部分工作,其生产效率和成本可想而知。目前汽车的制造普遍运用了平“平台+组件”策略。在一条生产线上,采用一套底盘和车架零件创造一种通用的车辆结构,通过平台上安装不同的零部组件,提供满足特定需求的个性产品。“平台+组件”策略的原理是通过最小的内部多样化进行组合可以满足更多的外部多样化。整车制造商不再像过去那样生产全部的汽车零部件,而是将一台汽车分为几十个模块,如底盘、驾驶室、底盘、发动机等,每个模块从上游的供应商和合作伙伴采购,自己在完成最终的组装就可以了。在IT制造业,“模块化”更好体现的淋漓精致:虽然所有的PC厂商都还是自己定义和设计产品,可他们自己大部分已经不在制造产品,而是交给中国台湾代工厂。通过全球范围内的零部件采购,PC厂商就能够“制造”出符合自己平台定位和特质的产品。虽然提供了很高的生产效率,IT制造业依然可以满足比如PC选购的个性化需求,比如DELL提供网站提供按需装配制造的个性化PC的服务。
在企业级软件行业也经历了与硬件相似的层次化、模块化、标准化、社会化分工的过程。例如IBM公司最初需要自己设计硬件,开发操作系统、应用软件。进入微型计算机时代以后,尤其进入Internet网络时代,随着标准化程度和模块化程度不断提高,软件业逐渐从垂直结构演变为层次结构,在垂直层面上也实现了专业分工的细化,形成了操作系统研发、应用平台研发、应用软件研发、咨询实施服务产业链和产业集群。企业级管理信息系统也经历了同样的规律,一开始管理信息系统的研发针对特定企业定制开发,取得成功以后考虑向其他的企业推广应用,由于不同企业的需求个性化特点,开始对软件的体系结构进行改造,比如采用了分层结构、模块化、建模、二次开发等技术手段,形成了一体化的架构甚至平台化的架构。由于客户数的增加,为了更好发挥各自的优势而将非优势的部分外包出去,以提高企业的竞争力,在基础平台的开发、行业应用开发、中间件开发、咨询实施服务等方面必然出现垂直层面上的社会化分工。SAP公司是全球最知名的ERP产品提供商,其80%以上的收入来自分布在全球各地、各行业的代理商和咨询实施服务商,已经开始进入到社会化分工的高级阶段。
阶段 | 阶段 | 主要措施 | 典型特征 |
段一 | 初始阶段 | 不同客户的系统的源代码完全分开,降低系统整体的架构的复杂性,减少项目间的相互影响。 | (1) 注重实现功能,并按进度要求,实现低成本交付,较少关注复用性、可维护性、可移植性、灵活性。 (2) 个性化需求可以按需定制,但是系统一旦建立,后期系统的调整十分困难,难以按需应变。 (3) 一般项目开发周期比较长,单个项目建设成本高,整体拥有成本也较高。 (4) 一般企业级的客户的个数比较少,一般小于5个客户,一般没有建立咨询、实施和服务体系。 |
阶段二 | 一体化阶段 | 不同的客户使用同一套源代码,不鼓励分支版本,实行单主线版本方式维护。 | (1) 共性的代码和客户个性化需求的代码均混合在一起,随着客户增加,系统复杂度越来越高,可维护性下降。 (2) 部分采用了建模技术提供了随需应变的灵活性,但对建模具有一定的局限性。 (3) 较多采用配置参数方式,通过配置参数的组合来满足客户个性需求,对于特定的客户群有良好的适应性,配置的速度较快。 (4) 灵活性受到配置参数的制约,经常会出现现有的参数组合无法满足客户个性需求的情况。 (5) 对于超出参数配置能力的客户,主要采取的方法是引导客户适应系统,或要求客户放弃该需求。 (6) 需要对系统进行修改时,修改代码周期通常比较长较长,而且现有的客户之间可能互相影响。 (7) 一般客户个数20个以内,开始建立咨询、实施和服务体系,但是体系不完善。 |
阶段三 | 平台化阶段 | 建立高度复用,可插拔组件、可建模的公共平台架构,提供公共平台基础上的可复用组件库,并为提供个性化的咨询、开发和服务建立系统的体系。 | (1) 采用了基于“需求共性程度”为分类标准的多层架构,下层的满足不同客户通用需求,上层满足客户个性需求。 (2) 公共平台部分不同客户只有一套源代码,目标是实现高度复用。通过持续升级公共平台,可以低成本获得公共平台的新特性。 (3) 广泛采用了建模技术,而且具有强大灵活的建模能力,具有广泛普遍的适应性。 (4) 系统实现了高度模块化,在基础平台上可以通过组件的选配和插拔实现快速按需组装,满足客户个性需求。 (5) 当企业的个性化需求,现有模块都无法满足需求时,通过修改现有组件,或完全定制全新组件,满足客户个性需求。 (6) 一般客户数高于20,可能达到数百个甚至更多,建立了一套支持灵活高质量服务的服务体系,关注客户满意度、服务的价值、服务的成本。 |
下表对四阶段的架构模式的优缺点加以总结:
阶段 | 优点 | 缺点 |
初始阶段 | (1) 首次开发时开发难度相对较低。 (2) 首次开发时完全按需定制。 (3) 新开发通用功能,老客户需要移植开发才可享用。 (4) 当用户数增加时,容易过度到一体化阶段。 | (1) 一般项目开发实施周期相对较长。 (2) 系统建成后随需应变难度极大。 (3) 对开发商来说竞争力差,对客户来说整体拥有成本极高。 (4) 用户数增加时,版本分支比较多,管理难度上升。 |
一体化阶段 | (1) 系统的新功能容易通过升级让已有的客户低成本获得。 (2) 没有分支版本,软件开发商的管理相对比较容易。 | (1) 随着客户数的增加系统变得越来越难以维护。 (2) 不同客户的需求难以兼顾,容易相互影响。 (3) 系统建成后随需应变的能力不够强。 (4) 一般一体化阶段系统难以过渡到平台化阶段。 (5) 开发商因为商业或技术等原因停止持续维护对客户造成极大的风险。 |
平台化阶段 | (1) 开发商通过长期持续维护基础平台使得容易通过基础平台升级让已有的客户低成本获得新特性。 (2) 基础平台没有分支版本,软件开发商的管理相对比较容易。 (3) 采用组件插拔方式提供,可以更好满足客户个性需求。 (4) 建立可复用组件库以后可以提高快速低成本满足客户个性需求的能力。 (5) 公共平台客户数量足够大时,由于软件的边际效益明显,均摊成本会下降。 | (1) 开发商必须建议一个强大的技术开发团队和公共平台开发团队,需要较大持续投资能力。 (2) 需要建立一整套的“体现服务价值”为的销售体系、实施服务体系,并高效运行。 |
社会化分工阶段 | (1) 不同的厂商可以根据产业链中企业的核心竞争力开展业务,而非核心业务部分外包有更好的经济性。 (2) 对于客户而言,基于产业链形成的解决方案能力比较强,而且具有较强的适应变化的能力。 (3) 对于功能性、灵活性要求高、支付能力强的企业,对于支持长期持续发展非常必要。 | (1) 依赖于整个产业的分工合作,容易受到外部不可控因素的干扰,存在一定的应用和实施风险。 (2) 对于模式比较稳定、功能性要求不高、对个性化要求很高的企业,架构可能过于复杂,性价比不够高。 |
从机械制造业的发展过程得到启发,我们推测现有软件架构所在的成熟度的劣势十分明显时,就会限制的公司的持续发展,此时应该考虑是否对架构模型进行调整。每次架构模式的调整都是痛苦的,需要产品进行重大修改,甚至舍弃。对于许多以自己有产品为基础的企业,往往都从第一阶段向第二、三阶段逐步发展而来的,适当的时间合适的技术架构的调整是保持企业持续发展所必须的,可以将带来竞争力的增强,市场份额的扩大。当然并不是每个阶段都是必须经历的,例如某些公司可以没有自己的核心产品,但对某些行业信息化有深入的了解,可直接进入第四阶段,成为咨询实施服务商。
企业应该根据企业的用户数的多少、需求的功能和个性化情况、需求的复杂程度、现有的产品基础、对行业的了解程度、投资能力、技术水平、现有的核心竞争力等情况,选择适合企业自己的成熟度级别和相对应的架构模型,因为任何一个成熟度都存在不足,一定要注意扬长避短,建立与成熟度阶段相配套的企业文化、组织架构、作业流程、技能结构。当架构模式已不再适应时,企业竞争力下降时,应该对架构模式转变做出合适的选择,并对企业的战略、企业文化、组织结构、作业流程、技能结构等方面进行系统性的规划与调整。
先写到这里,待续。 看完请留个言,欢迎讨论,对架构技术感兴趣的可以加入群:85228721