程式語言的決策可以怎麼做?
除了交給 CTO 選之外,還可以怎麼選?
我曾經拜訪過幾位的 CEO ,有時候也會有機會談到各式各樣的「決策」,不管是技術選型、人才雇用、選擇外包廠商等等。我很喜歡詢問 CEO ,『請問貴公司是如何做出這樣子的決策的?』
從這些 CEO 告訴我的事,我認為關於「決策」有三個重點:
- 決策大致上也符合所謂的 80/20 法則。大多數的決策影響並不大,但是極少數的決策影響非常重大。
- 做好的決策、正確的決策,也許不會讓公司立刻勝出,但是,無數正確的決策累積下來之後,產生的競爭優勢非常可觀。
- 對於組織來講,要長期穩定地做出高品質的決策,應該要利用所謂的理性決策方式,即所謂的「決策模型」。透過決策模型來決策,是提昇一個組織長期決策品質的不二方式。
最近,有一位 CEO 請教了我一個很有趣的問題,「為什麼 Clojure 語言,如此小眾的語言,在台灣居然還有三家公司在使用?這些公司難道不擔心找不到人才嗎?這些公司是如何做出這樣子的決策的?」
老實說,我也不知道這些公司是如何決策的。而且,這些公司也很有可能『沒有使用任何決策模型、一切還是是交由 CTO 決定』。但是,另一方面,在絕大多數的情況之下,我也會選擇 Clojure,所以我給了那位 CEO 我本人的決策矩陣。
程式語言決策矩陣
應用「決策矩陣」有下列的步驟:
首先,第一步要想清楚「決策前提」
「如果我要讓公司取得長期的成功,用哪一種程式語言,最有優勢?」
第二步要列出各種可能的選項
簡化一點,這邊只列出 Java, Python, Javascript, Clojure 四個選項。前三個大概是目前台灣市場最主流的選項。
第三步則是要列出,會有助於達成決策前提的關鍵要素
- Machine Efficiency (在機器上的執行效能)
- Developer Productivity (軟體工程師的開發速度)
- Library Ecosystem (語言函式庫的生態系完整度)
- Extending to Frontend (該語言是否可以延伸應用到前端?)
- Local Talent Pool (在地的人才庫)
上述的 5 點,滿分都是 10 分,最低分是 0 分。
第四步,將矩陣填完
填寫數值的部分,也沒有所謂絕對的客觀、必然還是有主觀的成分。然而,將本來只用一兩句話就解釋完的決策,改成使用決策矩陣決策,可以讓經驗、資訊、判斷被有效地加以整合。
最後一步,加總判斷,做出充分考慮多個面向、最平衡的選擇。
決策的關鍵
我解釋完決策矩陣之後,CEO 又問了我第二個更重要的問題,「做這樣子的決策,跟別人都不一樣,不會有一種怕怕的感覺嗎?」
我引用杜拉克的話回答他,要做好決策,最重要的關鍵,不在於卓越的分析能力。而是有沒有勇氣去「選擇未來而非過去、著眼於機會而非問題、堅持自己的方向而非隨波逐流」。
註:
新文章已經轉換到 https://replware.substack.com 發表,歡迎讀者訂閱