SOA的理念在酝酿和发展了好几年之后,如今再次在软件业界刮起一股旋风。作为一个技术人员,你可能最直接的想法是:SOA对我以往的企业软件开发经验到底有啥影响?对我的职业发展最直接的冲击到底是什么?
由于SOA 的面向服务的架构体系,企业软件开发环境正在开始发生变化。过去的开发技术不再适合于创建随需应变的业务环境。相反,软件开发的趋势正在向可动态重新配置的服务转变,这些服务可以是单独的,或者是可解决业务问题的某个组合。技术人员将需要越来越多的了解企业的具体业务,从而抽象出各种服务。
就是说,我不能再只局限于技术的天地,而应该努力的去向业务靠拢?没错,一个新的名词已经被提出——业务技术(business technology),即你对企业具体业务的了解程度和抽象程度。纯粹的技术人员提升自己的最好方法就是:转型为既是技术专家又是业务能手的业务技术人员。
A。
问:SOA和业务平台的概念最近很火,我们知道像您公司SAP,还有很多厂商都推出了自己的业务平台,您能说说这些业务平台和SOA的本质关系吗?
答:恩,是这样。我们做SOA已经做了三年,我们分几步把我们的平台逐渐改造成SOA的体系。首先我们本来就有一套成熟的技术平台,然后在上面架构业务平台,最后把我们的整个ERP系统迁移到业务平台上。技术平台是基础,业务平台是通用架构,做业务平台最有难度的是抽象业务对象(business object),要从无数的订单中抽象出核心的业务对象。最终我们一整套产品推出来之后,客户可以直接使用,也可以在这个业务平台上根据企业自己的业务需求来做二次开发。同时,我们也不断推出新的服务包,对业务平台进行增强。我们的ERP2005目前拥有1005个核心业务的服务接口,我们的理念是把通用的业务平台开放给业界整个生态系统(ecological system),让处于产业链不同位置的各个企业一起来完善平台。
问:业务平台给企业里什么样的人使用?
答:业务专家(business expert)。业务专家由两种类型的人转化而成:一种就是这个企业本来的核心用户(key user),比如说财务部,他在这个职位上本来就练就了很高的业务能力;一种是企业的IT部门的技术人员,由于他不断和公司其它部门打交道,所以他越来越精通业务。不能要求第一种人去写代码,但业界现在提倡模型驱动(model driven)的概念,而我们的产品也提供可视化组件(visual component)。比如说已存在几百个复合应用接口,可以供业务人员自己来可视化地组织服务,变更业务,他不再需要去跟IT人员打很多交道。可预见的理想情况是将来可以让这些业务人员像搭积木似的灵活组建和变更业务。
问:您说的业务专家就是我们现在提的业务技术人员,那么随着这样的趋势,在企业里面是不是有一大批技术人员正逐步转化为业务技术人员?
答:没错。业务专家有两类。业务开发也有两个层次。前面说的给业务人员使用的可视化组件是第一个层次,最前端的最简单的层次。第二个层次是:有一些业务不可避免的需要做一些编程工作,比如对某个服务进行扩展等,但这也只是比较简单的技术活,因为不涉及到非常底层的开发,这就需要一些懂技术的业务专家。但对这类业务专家来说,也许不在于他的编程能力有多强,而在于他对业务的理解程度有多深。就像在我们公司,资深的程序员可以很容易教会这类型的业务专家来写某个服务扩展,但他的更高价值应该取决于他对已有的业务平台的这么多的业务接口和对应业务的了解程度,当然这也是一个经验积累的过程。在以前十年经验的程序员和三年经验的程序员有很大区别,可能十年的程序员用100行代码就能搞定问题,而三年的程序员写1万行代码都没搞定,因为他不懂如何最大程度的复用代码。但现在不同了,各种平台已经成熟,要复用的都已经帮你做好了,这样业务能力要比技术能力更重要。
问:SAP有占多大比例的业务技术人员?
答:其实我们公司内部原来就有很多所谓的业务专家,只是没这么称呼。以前做业务分析呢,只是了解业务需求后写个文档就可以了,现在呢可以变得更加主动,可以自己先做个业务模型出来,然后交给技术人员说我要什么样什么样的功能。
问:你们是不是很希望有一批技术人员可以意识到这种转变,来更好的配合你们推出这个业务平台策略?
答:非常正确。我们专门设立了一个业务专家社区供有兴趣的人来交流讨论。其实很多老程序员也有一个困惑:将来的发展在哪里。特别是新技术像SOA来了,他们感觉好像能写的东西平台都写好了,我们还能做什么呢。所以说我们一直提倡他们往业务方向转型。但是我们也不排除你就钻研技术,把技术方面做精。但是你不能在中间,技术不精,业务也不精,那就很尴尬。
问:那你们有没有给技术人员什么建议,怎么朝业务方向上去转?有没有具体案例?
答:具体案例倒没有。但我们的社区平台人气都很旺,经常有一些培训,更重要的是举办技术大会。
问:有这么多的厂商在提供平台,并且没有一个平台是一统天下的,那么技术人员要想转为业务技术人员,如何选择技术平台和业务平台?
答:我个人认为选技术平台,纯粹是个人喜好。对企业来说选择技术平台主要是考虑传承性和成本,一直用linux不会突然改用windows,然后就是看趋势,但是趋势很难看准。关键看这个平台适不适合你的业务,如果要费很大劲迁移到一个新平台上来,那你就要慎重考虑了。建议迁移到相同平台,但是也不一定。总的说来,选择技术平台没有太大标准。再说业务平台,你要看同样的技术平台上最适合搭建什么样的业务平台。选择只购买一个技术平台再在上面做应用开发和选择购买一个本来就带业务平台的技术平台,两种选择区别很大,一般选择后者,因为比较省心省力,最佳实践,呵呵。总的说来,客户选平台唯一的出发点就是自己企业的具体业务情况。