我很喜歡告訴別人,設計AJAX項目的時候要用SOA思想來設計。可是什么是SOA呢,聽說100個人有101個答案,可是我不關心哪個更精確,我也不是很關心那些流行的SOA實現如何,我關心的是SOA這個想法,中立的接口、松耦合、無狀態,這就很夠了。。我所理解的SOA并不一定是和軟件開發相關的,這個想法可以用來在各種場合優化各種流程。
我去年在一個新加坡的軟件公司的中國開發中心工作。這個開發中心不大,不到百人的規模。我來介紹一下里面都有些什么人在做什么事:
總經理黃小姐,1年多時間里面我只見過10面不到,因為她兼管北京分公司,平時主要在北京呆著。
副總經理老k,除了負責公司日常的管理,也要做公司的財年預算,同時還要負責所有新入職員工的最后一輪(技術)面試。
總經理助理蔡小姐,負責聯系業務、開發市場、兼人力資源。
項目經理若干人,負責項目設計、開發兼員工技術培訓
開發人員若干十人,負責代碼編寫,不少人兼報表設計。
DBA汪大叔,兼網管。
測試員曹mm,兼財務。
財務總監曾小姐,兼管北京的財務(因為北京的財務跳槽了)。
前臺一年換過三任:文mm、衛mm、李mm。負責接(轉)電話、訂餐、訂機票、處理各種公司文件、協助出國手續辦理。
清潔工種姐,掃地擦桌子之外好像也負責跑郵局和外企服務中心(fesco)
……
我是不懂管理的,沒吃過豬肉,總見過豬跑。可以想像一下,這樣的管理水平能管理更大一點的公司嗎?
我現在所在的公司規模要比以前的大了不少了,要做的事情也多了不少,可是每個人卻反而可以各司其職。公司內有專門的職能系統,下設公關部、行政部、財務部、人資部、董事會辦公室、投資者關系部、財務監督、計劃預算部、法務部、采購中心。這些部門專門為全公司各個系統和部門提供相應的服務,不管哪個部門要做什么事情,都可以發起相應的電子流程。這,就是我所講的SOA。