核心觀點#
面對離岸外包的競爭,與其爭論「少數高薪開發者 vs. 大量低薪開發者」,不如選擇第三條路:自動化。就像 1980 年代製造業的機器人手臂取代了人力,軟體開發者也應該打造自己的「機器人」來提升生產力。
關鍵概念#
- 生產力的三種途徑:要提升軟體開發產出,可以找更快的人、找更多的人、或自動化工作。前兩者都有明顯的局限性。
- 自動化的數學優勢:作者用簡單的公式說明——3 個高薪程式設計師完成 5 個專案,與 20 個低薪程式設計師完成同樣的工作,生產力相同。但 1 個程式設計師加上自動化工具完成同樣的工作,生產力提升了三倍。

Figure 1.1: Productivity 公式

Figure 1.2: Productivity comparisons
- 自動化是產業的 DNA:軟體業本質上就是自動化的產業,但我們卻很少把這個原則應用在自己的工作上。
- 創造機器人的人不會被取代:當製造業工人因機器人失去工作時,創造機器人的人反而更有價值。
如何可驗證地做出比離岸競爭者更好、更便宜的軟體?打造機器人。把自己自動化成一份工作。
行動建議#
- 挑選一項你經常重複做的任務,為它寫一個 code generator。從簡單開始,不用擔心可重用性,只要確保它能節省你的時間。思考如何提升你正在生成的東西的抽象層次。
- 研究 Model-Driven Architecture(MDA),嘗試一些可用的工具,在你的工作中尋找可以應用 MDA 概念的地方。