程式語言的決策可以怎麼做?

除了交給 CTO 選之外,還可以怎麼選?

Laurence Chen
May 11, 2022

我曾經拜訪過幾位的 CEO ,有時候也會有機會談到各式各樣的「決策」,不管是技術選型、人才雇用、選擇外包廠商等等。我很喜歡詢問 CEO ,『請問貴公司是如何做出這樣子的決策的?』

從這些 CEO 告訴我的事,我認為關於「決策」有三個重點:

  • 決策大致上也符合所謂的 80/20 法則。大多數的決策影響並不大,但是極少數的決策影響非常重大。
  • 做好的決策、正確的決策,也許不會讓公司立刻勝出,但是,無數正確的決策累積下來之後,產生的競爭優勢非常可觀。
  • 對於組織來講,要長期穩定地做出高品質的決策,應該要利用所謂的理性決策方式,即所謂的「決策模型」。透過決策模型來決策,是提昇一個組織長期決策品質的不二方式。

最近,有一位 CEO 請教了我一個很有趣的問題,「為什麼 Clojure 語言,如此小眾的語言,在台灣居然還有三家公司在使用?這些公司難道不擔心找不到人才嗎?這些公司是如何做出這樣子的決策的?」

老實說,我也不知道這些公司是如何決策的。而且,這些公司也很有可能『沒有使用任何決策模型、一切還是是交由 CTO 決定』。但是,另一方面,在絕大多數的情況之下,我也會選擇 Clojure,所以我給了那位 CEO 我本人的決策矩陣。

程式語言決策矩陣

programming language decision matrix

應用「決策矩陣」有下列的步驟:

首先,第一步要想清楚「決策前提」

「如果我要讓公司取得長期的成功,用哪一種程式語言,最有優勢?」

第二步要列出各種可能的選項

簡化一點,這邊只列出 Java, Python, Javascript, Clojure 四個選項。前三個大概是目前台灣市場最主流的選項。

第三步則是要列出,會有助於達成決策前提的關鍵要素

  1. Machine Efficiency (在機器上的執行效能)
  2. Developer Productivity (軟體工程師的開發速度)
  3. Library Ecosystem (語言函式庫的生態系完整度)
  4. Extending to Frontend (該語言是否可以延伸應用到前端?)
  5. Local Talent Pool (在地的人才庫)

上述的 5 點,滿分都是 10 分,最低分是 0 分。

第四步,將矩陣填完

填寫數值的部分,也沒有所謂絕對的客觀、必然還是有主觀的成分。然而,將本來只用一兩句話就解釋完的決策,改成使用決策矩陣決策,可以讓經驗、資訊、判斷被有效地加以整合。

最後一步,加總判斷,做出充分考慮多個面向、最平衡的選擇。

決策的關鍵

我解釋完決策矩陣之後,CEO 又問了我第二個更重要的問題,「做這樣子的決策,跟別人都不一樣,不會有一種怕怕的感覺嗎?」

我引用杜拉克的話回答他,要做好決策,最重要的關鍵,不在於卓越的分析能力。而是有沒有勇氣去「選擇未來而非過去、著眼於機會而非問題、堅持自己的方向而非隨波逐流」。

--

--

Laurence Chen

IT 顧問、講者、作家。喜歡快速迭代 (fast iteration) 與提高產出。 著作:「從錯誤到創新」 https://leanpub.com/errors_to_innovation/ 網站:https://replware.dev/