點題:是誰動了程式員的尊嚴? 其實質是對一些遭受挫折的程式員的勉勵,對熱愛技術的肯定,以及小部分對以前瘋狂追求技術狀態的緬懷。和管理一毛錢關係都沒有。居然在回複裡有小部分人拿管理手段和管理藝術說事,弦哥想說的是本質上無所謂有什麼管理,核心或中層人員往往目標明確,很大程度上是自我管理,底層人員其實只需要扔幾個管理工具即可,不起決定性作用。打個比方:你第一個次和MM開房,裝13的人會告訴你那是藝術,需要很多技巧和花招,弦哥只會笑而不語,臨走前告訴你:“跟隨你的心...”。結果是明顯的,如果你聽信前者,必然導致你心中雜念太多,手忙腳亂,折騰一個小時之後一事無成,最後被MM一巴掌扇下床...管理就像獨孤九劍,一旦你有“招”就會被識破,一開始就輸了...
是誰動了程式員的尊嚴? 裡談了作為程式員和技術人員應該積極的去面對一些挫折。相應的這篇是談作為技術團隊管理者應該思考的一些問題。 首先我是比較不喜歡“管理”這個詞的,因為沒有誰會喜歡被“管理”,開始我以為是我放蕩不羈的性格和無知者無畏的草根情懷所導致的...後來接受了一些關於所謂管理的正規訓練後,這種感覺反而更加強烈。
對於所謂專案管理,我大概有這些學習背景,公司培訓的:MBA全景教程,歐洲商學院系列,進階專案經理考試,PMP考試,還有時代光華的那些諸如領導藝術之類的,世界500強流行的什麼MOT之類的培訓(也可以說是洗腦...)這些雖然我都不是太感興趣,感覺這些都是西學中的術,個人比較推崇國學中的道,但也不是很排斥,基本都過了一遍;自己看的:《人月神話》,《軟體工程》,《敏捷開發》,《代碼大全》,《軟體開發隨想錄》,還有些不入流的等等,JavaEye的軟體開發和專案管理版也愛沒事看看;人文方面的:各種中國正史野史不全的(明史正兒八經的看過正史,主要高中的時候受韓寒和《萬曆十五年》的影響),雜七雜八的各種儒釋道粗略的,諸子百家中顯學大概的,西方哲學簡要的...所以可以看出我應該不只是一個會寫代碼和好色的偏激狂....-_-b,下面言歸正傳,來談談“管理”:
1.首先對於軟體Team Dev來說根本不存在嚴格意義上的“管理”。你從敏捷開發就可以看出來,敏捷只允許你團隊中有1個,不超過2個的新手。對其他的團隊成員的要求基本是從技術到職業素養的全才。很多人在研究敏捷,什麼結對,扁平結構,站立會議....那些都是術,都是花招...。比如你10人的團隊 沒有8個神一樣的程式員那都是白瞎...。而神一樣的程式員還需要管理嗎?我承認敏捷裡有非常多優秀的思想和實踐,但若放到你自己的團隊裡玩,我覺得更多的結果是悲劇,喜劇是因為你真的非常幸運,你的團隊成員足夠強大,和你管理水平和敏捷真的一點關係都沒有...
2.而現實的情況是,一個10人的團隊中只有2-3個骨幹程式員。他們解決了整個項目80%的問題,剩下的7-8個程式員無關痛癢,他們機械的去寫一些有完整技術解決方案的模組,最壞的情況是這7-8個人解決不了任何問題,還會在原本成熟的解決方案下製造一些問題。這段可能很多人不愛聽,但不能否則這是事實,同時也自問自己在團隊中的價值。其實你看很多牛X的大產品其實都是由個別的幾個牛X的技術人員寫的,團隊其他人基本都是打雜的,國內外都一樣。
3.談到這裡,作為一個團隊Leader你應該清醒的意識到你要做的事情首先是對於骨幹程式員來說的: 最次的讓2-3個骨幹程式員不會認為你是個不懂技術的蠢貨,較好的是讓他們覺得你在技術上是有建樹的,最好的是用你的人格魅力感染他們。
4.對於其他的7-8個程式員,適當的技術培訓是必要的,但不應該對他們抱有太大希望,這樣大家都會很累。既然他們想成為碼農就讓他們當好了,個別能脫穎而出的可以重點培養。
5.管理工具和管理技巧:不要讓大家覺得在被管理,沒有人喜歡被管理。你可以先給大家介紹一個比較前衛的管理工具,然後說我們大家來玩玩這個管理工具,看看咋樣。如果效果不好,大家不會覺得你的管理水平垃圾,只會覺得這個管理工具不好玩而已;如果效果好,那大家就Happy的玩下去,最後你會發現 你的團隊成員完全沒有感覺在被管理,但其實你團隊裡的管理工具和管理方法真的是一大堆,有時候你自己都會覺得比較煩,但大家還樂滋不疲....人力資源部的來評估你部門管理水平的時候會著實嚇一跳...
6.對於一個團隊Leader或公司技術總監是否應該深入瞭解技術的問題,我想是沒有什麼必要討論的,這是必須的!對於公司來說,你決定的技術方向決定了公司未來幾年的產品和戰略,如果你對技術一知半解,那是不可想象的,足以搞死整個團隊甚至是公司。比如讓一個技術水平一般的技術團隊使用MOSS作為平台進行開發,比如老闆被微軟,IBM那幫所謂首席科學家忽悠的頭腦發熱想大搞雲端運算中心等等...往小了說,你不懂技術就意味著你無法真正掌握項目的進度,那些所謂的專案管理工具都是浮雲....連項目進度都掌握不了的專案經理?還是專案經理嗎?
7.你想說我有一攬子的管理工具,但我只需要一個問題就可以破解你那不需要技術的管理神話,項目做到一半,遇到一個技術問題,所有的技術人員都告訴你不能解決,你怎麼辦?怎麼保證工期?外包?外援?那隻會使你的項目風險更大,更加不可控 我們都學過的是吧? 問題在於由於你技術的缺乏導致你的技術風險預知能力下降,技術解決能力基本為零,你在大家面前是個十足的蠢貨....
8.我們經常看到一些團隊的專案經理的很多問題和抱怨,我說解決問題的方法和簡單,你把代碼實現就可以了嘛.......你會實現而不去實現,和你壓根兒不懂實現是有本質區別的。就像流行的“技術不重要,思想才重要”,這句話是給懂技術的過來人說的....代碼都沒寫過10萬行就拿這話來說事是可笑的。
9.在公司裡,沒有帶團隊做3個以上真正成功的項目之前,先把你的任何關於公司和團隊的想法意見保留起來。就算你在那個職位,也不會有太多人聽的進去,實力和尊重是靠事實證明的。
10.真正給公司賺到錢,也讓大家看到你的人品和實力之後:對非技術的領導強調技術,對團隊技術人員強調需求。
總結:大道至簡! 不要過於迷信西學的那些管理工具和管理技巧,除非你把西方哲學和文化的曆史好好學一遍,否則你只會邯鄲學步,不得要領。也許你回過頭來看看咱老祖宗的那些東西,反而會豁然開朗呢?
舉個例子:軟體開發中的物件導向和面向過程的兩種開發方式最早可以追溯到亞裡士多德(貌似在我們的教科書中他就是個該打倒的學術權威..)的分類和邏輯兩種認識世界的工具...其實這也是西方科學的根本,想當年我們學編程的時候那個雲裡霧裡啊...點破之後其實很簡單是不是?什麼一切皆為對象,什麼至上而下...說白了就是分類和邏輯。有時候我們會標榜物件導向而鄙視面向過程,其實很愚蠢是不?
再比如現在量子物理學算是走進了唯心主義的死胡同(當然也有平行宇宙的說法..)...居然觀察會影響客觀結果!但其實孔子對於占卜早說過,你不要算,在你算的一瞬間其實結果就已經變了(不佔而已矣)。真的是和電子的波粒二相性一樣一樣兒的啊...
當然!這些“思想”固然重要,但請不要忘記踏踏實實寫好你的10W行代碼先...
也許有朋友會問,你上篇說的那種有亮劍精神的團隊呢?比較遺憾現在在一個比較大的公司,在一切都需要看財務報表的公司文化裡不允許我那樣搞,大公司很多事情也更複雜需要考慮更多。而且那種需要我投入極大理想主義精神,精力和感情的團隊貌似也不太適合我這個快當孩子他爹的人。謹以文送給我那牛B的亮劍團隊和團隊裡的兄弟們。