網上從來都不缺少“做技術還是做管理”的爭論,人們從各種角度來討論這個問題。在我看來,二者并沒有本質的區別。技術和管理,根本就是一回事。
網上有很多管理“做技術還是做管理”的爭論。這里不討論其外在的影響(比如“錢途”,機會,或者面子),而是試圖說明,在本質上,技術和管理是一碼事。能搞好技術就能做好管理。注意,這里說的是開發技術,不是項目管理。
按照現代管理的理論,管理要做的就是:計劃,組織,協調和控制。對于一個給定的目標,先“計劃”怎么樣實現這個目標;然后“組織”一批人按照計劃去做這個事情;在做事情的過程中,會有一些沖突和事先沒有預料到的情況,這是需要進行“協調”;同樣,要“控制”事物的發展方向是向著既定目標前進的。
同樣的,一個開發人員的工作是:拿到需求(目標),對需求進行分析,由哪些需求點組成,怎么樣滿足需求(計劃);然后設計一堆“類”和“對象”,通過這些類和對象實行需求(組織);在運行時,對象可能會發生一些意外情況,要通過“動態模型”,“異常處理”等手段解決(協調);為了保證代碼真的能夠滿足需求,還要進行測試,并根據測試結果對代碼進行修改(控制)。
還有更多的,細節上的相同之處,這里就不一一分析了??梢?,技術和管理其實是一回事。其實,技術比管理更難一些,因為:
對技術人員來說,目標是不斷變化的(需求變更);
對技術人員來說,協調工作要在系統運行前就充分考慮,而系統一旦運行,就要能夠自動處理意外情況。
而管理比技術難的地方在于:
類和對象的行為是可以預期的,而人的行為是不可預期的。
本人的最新博客遷移到http://thinkinside.tk,使用GitHub Pages建立。我會陸續將所寫的文章遷移過去,并進行補充和修正,
歡迎過來圍觀。