我認識的許多軟體工程師,跟我一樣,對於管理『人』這件事,總是有點抗拒。另一方面, 就我個人的經驗中,軟體工程師的開發工作之中,也含有許多管理的哲學。換言之,軟體工程師往往也身為經理人而不自知,只是他們管理的不是『活生生的人』,而是『軟體開發的知識』。以下可以舉幾個例子來說明:函數命名原則與功能性分權Common Lisp 裡,很常見的兩個函數,一個是 CAR ,一個是 CDR 。CAR 是 copy address register 的縮寫。 CDR 是 copy decrement register 的縮寫。這兩個函數,在 Clojure 裡,被改成了 first 和 rest 。哪一個命名比較好呢?我想大家心裡的答案應該都跟我一樣,是 first 和 rest 比較好。CAR 與 CDR 的命名,它描述的是「實作」(implementa