统计数据显示,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。