昨晚與好久不見的朋友餐敘,提及當年某公司有一個 "優秀" 的 RD 部門主管及另一個 "重要" 的程式設計師。那位 "優秀" 的 RD 部門主管總會用正規的方式設計,有良好的軟體架構,並且開發過程中及完成後,都會提供其設計文件、使用手冊或範例程式。
另外有一個公司所 "倚重" 的程式設計師--並不是說他不優秀,只是他對公司的重要性,大於他的優秀性。
公司裡面複雜的系統,只有他能維護。而前人所留下的程式,並沒有相關的文件說明該系統的整體架構設計跟思維。
這就產生了一個有趣的現象:對於一個程式設計師而言,把事情做到最好 (除了寫程式外,還寫了讓人看得懂的文件等等),對他本身而言並不一定是好事。當別人越了解你的系統,你的可替代性就越高,那麼你的價值不就越低?
反之,若有人能寫出他自己才看得懂的程式碼,就算上級要求寫文件,也是寫一些高深莫測、形而上學的東西(諸如,用90%的篇幅介紹物件導向的基本觀念,然後說明只要了解物件導向或設計模式的觀念,再自行 trace 程式,就能理解系統運作)。
這樣一來,後人無法維護該套系統,完全是後人資質不佳或能力不足。這樣,他就成為令人倚重的程式設計師了。
以上所言,並不代表本人立場!
PS: 即使是某公司那一位令人倚重的程式設計師,也沒有達成我上述的要求,因為他沒有寫出需要睿智才看得懂的文件。何況,那些不可維護的程式碼,他也曾經力圖改良,想讓人看懂過!
另外有一個公司所 "倚重" 的程式設計師--並不是說他不優秀,只是他對公司的重要性,大於他的優秀性。
公司裡面複雜的系統,只有他能維護。而前人所留下的程式,並沒有相關的文件說明該系統的整體架構設計跟思維。
這就產生了一個有趣的現象:對於一個程式設計師而言,把事情做到最好 (除了寫程式外,還寫了讓人看得懂的文件等等),對他本身而言並不一定是好事。當別人越了解你的系統,你的可替代性就越高,那麼你的價值不就越低?
反之,若有人能寫出他自己才看得懂的程式碼,就算上級要求寫文件,也是寫一些高深莫測、形而上學的東西(諸如,用90%的篇幅介紹物件導向的基本觀念,然後說明只要了解物件導向或設計模式的觀念,再自行 trace 程式,就能理解系統運作)。
這樣一來,後人無法維護該套系統,完全是後人資質不佳或能力不足。這樣,他就成為令人倚重的程式設計師了。
以上所言,並不代表本人立場!
PS: 即使是某公司那一位令人倚重的程式設計師,也沒有達成我上述的要求,因為他沒有寫出需要睿智才看得懂的文件。何況,那些不可維護的程式碼,他也曾經力圖改良,想讓人看懂過!
沒有留言:
張貼留言