張西振
天下大事,必做于細;天下難事,必做于易。珍珠串項鏈的方法,就是化繁為簡、化難為易。
當我們因為偶然的機緣踏上某一條看似無人踏足過的小徑之后,很快會發(fā)現(xiàn),這條小徑其實早就有人走過。世界上任何看上去離經叛道的思想,實際上都不可能是新的,頂多算是已有思想的新組合或者新應用。哥倫布絕對不是美洲的發(fā)現(xiàn)者,印第安人早就世世代代生活在那里。珍珠串項鏈的“發(fā)現(xiàn)”也同樣如此。
面向對象與面向過程
我所在公司信息化項目購買的平臺軟件是用Java語言寫成的,對這個領域一竅不通的我也偶爾隨手翻翻有關Java語言的書。外行翻書自有另一番妙處,因為看不懂專業(yè)內容,只能去看其中的思想(還真的碰到一本書名就叫做《Java編程思想》),看懂了這些思想也不會用于作者所應用的領域,因為你確實不懂他的領域,你只能把其中的思想“偷”來用于自己所熟悉的領域,而這些作為他山之石的思想往往能夠給你重要的啟示。
Java編程思想的基礎是“面向對象”,而非“面向過程”。為什么要用“面向對象”替代“面向過程”呢?“面向對象”編寫的程序是一些相對獨立的“原子”,可以通過消息(任務)來調用、聯(lián)結為一個個“過程”。這不就是“珍珠串項鏈”嗎?讀到這些內容真的想拍大腿了。
面向對象其實是現(xiàn)實世界模型的自然延伸?,F(xiàn)實世界中任何實體都可以看作是對象。對象之間通過消息相互作用。另外,現(xiàn)實世界中任何實體都可歸屬于某類事物,任何對象都是某一類事物的實例。
如果說傳統(tǒng)的面向過程式編程語言是以過程為中心、以算法為驅動的話,面向對象的編程語言則是以對象為中心、以消息為驅動。用公式表示,過程式編程語言為:程序=算法+數(shù)據(jù);面向對象編程語言為:程序=對象+消息。
面向對象的“原子”是可以重復使用的,是可以靈活地重新結構為新的“過程”的。
這哪里是在講編程,不就是在講企業(yè)嗎?企業(yè)設計與企業(yè)信息系統(tǒng)設計,難道不是同構的嗎?真的搞不懂,我們的簽約軟件供應商在軟件開發(fā)中天天用到的就是Java語言,而僅僅是把其核心思想從技術方面的應用擴展到企業(yè)層面的應用,他們?yōu)槭裁淳透杏X到難以理解、不可理喻呢?
“面向對象”的方法可以給予我們的探索以直接的啟發(fā)。這個方法的重要理念就是“分離”和“調用”。跳出編程語言層面,直接從企業(yè)設計層面來理解,就是:對于一個業(yè)務流程,我們可以把其中包含的所有活動都固化起來,不再變動,這樣是最省事的。但是,我們也可以把其中的每一個活動(活動的概念相當靈活,根據(jù)需要可以在不同的層次來應用,這就是活動分離的“粒度”。分離開來,根據(jù)具體任務去調用他們,以完成業(yè)務流程。雖然后者看似把業(yè)務復雜化了,但是事實上這才是正確的做法——這就是分離,這樣的好處很明顯。
能力單元暢想
首先,我們的能力單元可以方便地重組到任何適用的流程中,使得企業(yè)整體具備了靈活應對個性化產品生產的能力。實際上我們可以做到在每一個訂單履行之前進行“流程重組”,以達到成本、交期、質量最佳——多么美妙誘人呀!
其次,這樣做還可以把過去固化在特定流程中的富裕能力解放出來,使之更充分地發(fā)揮作用,這大概可以看成當年農村改革中把生產隊集體生產改為聯(lián)產承包責任制,以農戶為單元進行生產,并實行統(tǒng)分結合的雙層經營一樣,具有解放生產力的強大效應。
第三,也是更實用的一條,是當我們把關注點從流程轉向能力單元之后,可以方便地把握。因為每一個能力單元都不會太復雜,可以一眼看透,從一個一個能力單元入手來配置資源、優(yōu)化作業(yè)方式方法,都不是太難的事情。
人的智慧不足以保證對一個復雜系統(tǒng)的設計不會出錯,而當一個復雜系統(tǒng)被當成一個整體來設計時,哪怕其中一個微小的錯誤也可能是致命的,譬如航天器設計是世界上最精密的設計了,但照樣會出現(xiàn)挑戰(zhàn)者號那樣的悲劇。航空母艦之所以打不沉,則是因為它的各艙是分離的。
老子說,天下大事,必做于細;天下難事,必做于易。珍珠串項鏈的方法,就是化繁為簡、化難為易。從能力單元設計入手,可以有效地避免總體設計一個龐大的、復雜系統(tǒng)時極其容易出現(xiàn)的邏輯混亂,即便一個能力單元的設計有錯誤,也比較容易檢查排除,更避免像企業(yè)信息系統(tǒng)開發(fā)中具有極大風險的會導致整個開發(fā)失敗的業(yè)務邏輯錯誤。
當我們把一個個能力單元清晰地構建起來的時候,再構筑不同業(yè)務種類的流程就變成了一件令人愉悅的事情了,你可以像搭積木一樣把業(yè)務流程搭建起來,越是對于大型復雜的業(yè)務,越是有此必要。越是能夠分離,越能夠從整體看問題。世界上到處充滿了這樣的悖論。
當企業(yè)所處的環(huán)境越來越具有不確定性,“唯一不變的就是變化”成了人們口頭禪的情形下,企業(yè)經營戰(zhàn)略的調整成為常規(guī)工作,企業(yè)流程重組成為經常性需要,組織學習也成為共識,“面向過程”的流程管理顯示出“僵化”的特征,珍珠串項鏈的方式,來得正當其時。
當我們把企業(yè)整體分離成一個一個的能力單元時,我們就能夠對企業(yè)能力有一個明確的把握,有一個清晰的認識,將市場與能力連接起來的定位問題也就容易解決,當客觀環(huán)境發(fā)生變化的時候,要重新定位,也能夠清楚地知道什么是作為依托的能力,什么是需要增加的能力,什么是已經無用的能力。
像搭積木一樣把業(yè)務流程搭建起來,越是對于大型復雜的業(yè)務,越是有此必要?!?/p>
[編輯胡 浩]
E-mail:chinacbr@vip.163.com