我很喜欢告诉别人,设计AJAX项目的时候要用SOA思想来设计。可是什么是SOA呢,听说100个人有101个答案,可是我不关心哪个更精确,我也不是很关心那些流行的SOA实现如何,我关心的是SOA这个想法,中立的接口、松耦合、无状态,这就很够了。。我所理解的SOA并不一定是和软件开发相关的,这个想法可以用来在各种场合优化各种流程。
我去年在一个新加坡的软件公司的中国开发中心工作。这个开发中心不大,不到百人的规模。我来介绍一下里面都有些什么人在做什么事:
总经理黄小姐,1年多时间里面我只见过10面不到,因为她兼管北京分公司,平时主要在北京呆着。
副总经理老k,除了负责公司日常的管理,也要做公司的财年预算,同时还要负责所有新入职员工的最后一轮(技术)面试。
总经理助理蔡小姐,负责联系业务、开发市场、兼人力资源。
项目经理若干人,负责项目设计、开发兼员工技术培训
开发人员若干十人,负责代码编写,不少人兼报表设计。
DBA汪大叔,兼网管。
测试员曹mm,兼财务。
财务总监曾小姐,兼管北京的财务(因为北京的财务跳槽了)。
前台一年换过三任:文mm、卫mm、李mm。负责接(转)电话、订餐、订机票、处理各种公司文件、协助出国手续办理。
清洁工种姐,扫地擦桌子之外好像也负责跑邮局和外企服务中心(fesco)
……
我是不懂管理的,没吃过猪肉,总见过猪跑。可以想像一下,这样的管理水平能管理更大一点的公司吗?
我现在所在的公司规模要比以前的大了不少了,要做的事情也多了不少,可是每个人却反而可以各司其职。公司内有专门的职能系统,下设公关部、行政部、财务部、人资部、董事会办公室、投资者关系部、财务监督、计划预算部、法务部、采购中心。这些部门专门为全公司各个系统和部门提供相应的服务,不管哪个部门要做什么事情,都可以发起相应的电子流程。这,就是我所讲的SOA。