SOA失败原因逐个数

统计数据显示,SOA在企业中的实施失败率高达50%。究竟是什么原因造成如此高的失败率?专家经过分析认为,绝大多数的失败都是由于人和流程的问题所引起,而非技术。

1.商业价值含糊不清

只从纯技术的角度去实施SOA是最常见的一个通病。IT在架构、治理和厂商评估上(虽然这些都是必要的)上投入了90%的时间与精力,却忽略了SOA所要解决的商业问题是什么。当他们投入了大量的时间和资金来搭建架构之后才发现,商业用户难以理解SOA能为他们带来什么回报,他们对IT兴致勃勃地讲述采用了哪些新技术毫不感兴趣。

建议:从解决实际商业问题入手。这也是为什么BPM(商业流程管理)成为SOA“杀手应用”的原因。BPM能够改善并自动化商业流程。它为运营绩效提供了相当的可见度,能让商业用户在无需IT参与的前提下动态修订流程,从而提高了灵活性,避免了资源浪费,间接降低了成本。简单来说,SOA应先解决商业问题,其次才是技术问题。

2.低估了用户对变革的抵触

对变革的抵制是遏制任何项目顺利展开的魔手。无可否认,实施SOA会给企业带来大量的变更,而对未知的恐惧是抵制变革的最大原因。

建议:制定一份变更管理(OCM)计划。明确阐述哪些方面会产生变更,执行变更会有哪些步骤,变更的原因和必要性是什么,它们会如何给公司与员工制造双赢。

3. 缺乏核心管理人员的支持

任何大型项目在缺乏有力支持的前提都无法顺利完成,达成目标。SOA横跨了多个部门和多重系统,因此更需要一名有影响力的公司核心管理人员来“护航”,扫清沿途的障碍。

建议:寻找一名能够从SOA实施中充分获益的高层管理人员作为支持者。在技术类公司中,CEO、CIO、CTO或首席架构师都是理想的考虑人选。记住,不管你选择的是谁,此人必须能够清扫障碍,并具备值得信赖的领导能力。

4. 勉强上马

以捉襟见肘的预算来勉强执行SOA项目只会大幅增高失败的系数。SOA实施除了要投入大量的中间件之外,还需要部署许多治理工具、进行大规模培训、聘请外部咨询顾问、搭建基础架构,并设置安全保障,这些都需要资金的支持。

鉴于SOA的分散及松耦合的特性,因此管理上是一种挑战。有些公司为了节省顾问费用,指望不凭借任何外力来成功实施SOA项目。可以说,除非你的公司拥有多名经验丰富的SOA实施人才,否则这么做只会加快项目的失败。

建议:结合项目组合建立SOA路标,评估出SOA能为公司创造的长期回报。对整个SOA活动建立规范的财务审核制度。如果你建立了有说服力的商业用例,那么自然会有足够的资金来支持SOA活动。

5. 员工缺乏SOA技能

在SOA实施过程中有许多专业的角色和技能要求,而其中大部分都需要从公司外寻找。比如SOA架构师,商业流程模型师,工具管理员,数据结构师等等。寻找人才来填补这些缺口需要付出不菲的代价。

在没有任何有经验的专家的协助下就盲目上马SOA是一种严重的错误。SOA实施会影响包括测试、基础架构和安全在内的所有IT部门单元。这不仅仅是送一批程序开发员去上课培训如此简单。

建议:在一开始就制定详细的培训和资源计划,然后纳入到预算申请中。尽量减少反复要求增加预算的次数,正确在第一次就筹备充分。否则,公司管理层只会把SOA项目视为一个永无止境的资金黑洞。

6.项目管理差强人意

项目经理必须能够严密检查、排减风险、让每个成员按计划工作,并善于沟通交流。其中,充分收集用户要求是一大关键。

建议:把你的最佳项目管理团队安排在SOA项目上。或者去外面聘请资深项目经理人。不管你选择的是谁,对方都应当在大型项目上具备有说服力的成功记录。此外,他还需要有足够的技术背景,以便从理论层面去理解SOA。

7. SOA是项目,更是架构

SOA是一种软件架构,只有当公司贯彻了以服务为导向的核心理念,并确保交付持续符合SOA路标时,它才会体现预期的价值。

SOA要求高度的专业化,比如建立一套商业服务,就要求SOA架构师、开发人员、数据结构师、网络架构师和安全专家多方合作而成,单枪匹马搞定SOA是不现实的。

此外,根据公司的具体要求,你或许还需要用户界面设计师,商业流程模型师,数据服务专家,商业规则专家,ESB专家等等。所有这些专业人员都要有高度的协同能力。

建议:对实施SOA来说,标准的IT团队结构是难以成功奏效的。建立开放式的专业人员合作环境,多使用协同技术,尽量避免低效繁琐的会议程序。

8. 低估SOA的复杂性

SOA的概念易于理解,但却难在正确执行。为用户提供简单应用的背后,是巨大的软件管理复杂性,可以说,SOA是一种软件工程。

此外,在SOA实施过程中尽早收集安全要求是非常重要的,这样底层架构才能从一开始就对安全形成良好的支持。否则,任何架构中的大型变更都会引发安全问题。

建议:做好在SOA实施中遭遇各种技术障碍的心理准备,有些是因为代码而引起,有些是因为工具本身所造成。然后设定切合实际的预期,不要抱有一步登天的想法。从小处入手,再逐渐累加,同时从从一开始就考虑到安全机制,不要在事后才想到。

9. 没有实施并严格遵守SOA治理

为了实现SOA的回报(服务重用、灵活性等),团队必须严格遵守架构方针,即设计时的治理。如果没有设计时的治理,你很可能迷失一大堆的Web服务中。

接着就是运行时的治理,即管理SOA环境的健康度。其中涉及到用户所使用的服务种类,加强策略与服务等级协议(SLA)、问题解决、分析绩效和管理所有资产。不要认为部署完成就可以高枕无忧,管理一个分散的环境同样不是一件轻松的任务。

建议:配备一支专门的团队(在企业架构内),制定团队的短期和长期目标。SOA治理是一种长期的过程,一般要花上几年的时间来实现满意的成熟度。随着治理的逐渐成熟,你的SOA也会越来越成功。

10. 不要让厂商左右你的决定

不要过于依赖厂商。厂商的目标是尽可能地多地卖出产品,而你的目标是成功实施SOA,以最少的成本提供最大的回报。另外对厂商所承诺的能够无缝集成所有从他们这里购买的工具也不要盲目信从。不少厂商都是转售原始厂商的工具应用,而原始厂商有时都无法实现无缝集成。

建议:在与厂商进行洽谈之前执行一次彻底的评估流程。在缩小了备选范围后,让他们到现场进行试操作,这样你就能了解更多隐藏在幻灯片介绍背后的真实资料。

另外,尝试去与那些已经实施了SOA的同行公司,或使用过你所选择的那家厂商的服务与工具的公司交流取经。记住,SOA实施没有捷径。