基本上,喲哪桑是從 Resource Based View/Knowledge Based View (RBV/KBV) 之觀點主張不要外包。然而我以為喲哪桑的觀點有必要加以修正,才能正確表達他所要表達的意涵。「軟體」一詞沒有抓準非IT企業的核心能耐之本質,精準地說「軟體開發」並非IT企業的核心能耐,「業務流程」才是非IT企業的核心能耐。
當年我在攻讀 MBA 的時候(雖然我的編程能力非常顯著,但我大學讀國際貿易、研究所修企業管理,是正規的管理科班生), RBV/KBV 還是相當熱門的議題,也不乏從 RBV/KBV 觀點討論整合與外包 (Integration or Outsouring)、 Make or Buy 之策略管理議題。在當時,我們注意到 事實上,如核心能力之類的主張,往往變成一種「感覺不錯」的課題,既然只是一種感覺,就似乎不會有人失敗。(企業策略: 37; C. K. Prahalad等著, 李芳齡譯; 天下遠見出版, 2001第一版)。我還寫了篇「失焦的競爭優勢」的報告作業。人們在提到核心能耐時,常常失焦,並沒有抓準自身企業的業務本質。
當我談「軟體外包」的時候,我指的是「軟體開發」的工作。這項工作對於非IT企業而言,並非其核心能耐。將其外包殆無疑義。但企業在軟體外包時常常忽略非常重要的一件事:企業用軟體通常是其業務流程的資訊化映像(Image);亦即企業用軟體的 program 要對應企業的業務流程之 program 。
對程序員而言,程式就是規則與律令(rule and law)。當一個程序員寫下一道程式時,就等於制訂了使用者的行為規則與律令。例如當我限定使用者名稱的最大長度是4個中文字時,使用者就只能輸入4個中文字。如果使用者的姓名不是漢名因此長度超過4個中文字時,那麼使用者就要改名才行。易言之,我規定了使用者的名稱長度,不合規則者受罰,不得使用(此亦為自由軟體(Free Software)易與倡議公民自主性的社會運動產生聯繫的緣由。因為自由軟體將制訂規則的權力還給了使用者)。在企業中,企業用軟體所規約的內容就是企業的業務流程了。所以程式若規定要先填採購單且經過簽核後才能產生進貨單,就等於規定業務流程必須如此作業。當然對企業而言,這段話應該要反過來說才對。如果我的業務流程規定這麼運作,那麼程式就要對應著設計。企業用軟體的 program 應該要對應企業的業務流程之 program 。
話說回來,有哪個程序員願意天天被客戶抱怨自己設計的軟體不好用?像我就會想「明明是你說不清自己的作業流程,反而抱怨我的軟體不好用」。在資訊技術領域中不是沒有注意到這種情形, SOA 概念正是為了解決上述問題而興起。 SOA 概念很好地將「軟體開發」與「業務流程」兩種範疇切割開來,使軟體能跟隨業務流程快速重組。同時令人們注意到業務流程才是主角,軟體只是工具與配角。