其實大家都應該清楚知道,一個專案,通常由三方面來決定其成敗,Quality,Schedule,Effort,老闆們也通常都會強調說,我們這個Project,我要求這三個方面都得meet到,meet不到也得OT給我meet到。但我覺得,通常往往這樣強調的PM們,其實根本就不瞭解一個Project開發的具體情況,根本沒有從Project Team的成員的角度考慮問題,沒有做到以人為本,根本不是一個好的PM,也可以這麼說,這個PM是沒有開發經驗,不是從第一戰線打拼出來的。
 
為什麼這麼說?我個人覺得,在中國,符合中國國情的情況,大多數PM都是從第一戰線升上去的。沒有開發經驗的PM,除非你是大型的公司,否則根本沒有能力做好一個稱職的PM。為什麼,只有大型的公司,才能afford得起“管理與開發分離”。但更多的情況是,一個稱職的PM,得考慮到所有的情況,包括Effort的估計,Resource的選定,Schedule的制定,Effort的控制,還有考慮Resource的培養,如果出現問題,能夠給出正確的指令,得準確高效的指定分析解決人員,和User進行溝通協商,要做到所有這些,如果一個PM沒有相當的技術基礎和開發經驗,根本做不到這些要求,而這些要求,往往又是中國的大多數IT公司理想的PM們。
 
我現在所在的公司的情況是,PL們做得往往比PM還多,上面提到的PL們都需要考慮,而PM們更多的情況是,只管PL一個人,PL去管下面所有的人。也不知道是幸運還是不幸運,我恰巧也是這麼一個PL,從Project的立項開始,做TSR要參與,給出大的設計思路和解決方案,SDD要參與,給出系統級的設計,PS要Review,Code要Review,Resource的選定要考慮,Resource做完Project後有沒有收穫,Team Member有沒有buildup起來要考慮,Effort要估計,Schedule要制定,還得和User討價還價,還經常被User砍Effort。
 
我就遇到過被User砍掉一半Effort,而我的PM一句話不說,要我認了。最後結果證明我的估計是正確的,最終還是花掉了當初估計的Effort才能做完整個Project。這裡我要強調的一點就是,作為一個PM,你得懂得疑人不用,用人不疑。如果你懷疑屬下估計的Effort不準,那OK,你來估看看,我告訴你我手上的Resource情況,每個人的專長,他們的生產率有多高,你要是估得比我準,我馬上辭職,你要是估得不準,你以後就給我閉嘴,OK?
 
我個人認為,Quality Priority最高,不管你是提前完成,還是delay了才完成,Quality我是最看重的,質量高於一切。Schedule的制定需要技巧,在制定Schedule的時候,你得留點Buffer,得考慮突發情況的時候,對Schedule的Impact,我往往的做法是對下屬有個明確的Deadline,這個Deadline比真正互動的時間有個時間差,從而可以cover一些突發事件,例如,某某請病假。Effort往往就是Budget的直接體現,這個也是需要技巧的,但是這個是需要和User談的時候要明明白白說清楚的,我們的Effort通常有一個contigency,也是用來handle一些突發事件的,在做planning的時候,這部分contigency是不能plan在裡面的,通常的做法就是Schedule比實際的人月的工作duration要長。OT是最不可取的,出現OT,就證明了Project出現了預期外的問題了。而OT往往又會對員工的士氣造成直接的打擊。我這裡想強調一點,在做估計的時候,一定要以員工的角度考慮問題,以現有Resource的Productivity來估計一個專案的進度和預算。
 
在管理一個專案的時候,除了要實時監控整個專案的情況,也要對Resource的情況進行監測,賞罰分明,例如某某表現好,就要公開表揚,某某表現差,就要私底下批評,整個專案做完後要明確知道每個人的所得,開個closure meeting,分享大家的經驗,做好記錄。看看哪些方面需要做improvement的,適當安排training來提升,從而提升下一個專案的時候team member的生產率。而且,resource的buildup情況一定要讓resource本身瞭解到,只有當員工自己知道自己還存在哪些不足,他才能進步,也只有這樣,員工才會對公司有更強的歸屬感。
 
其實這些cmmi的process都有提及,只是怎麼結合真正的專案實施需要考慮的問題很多。cmmi是死的,人是活的,我覺得管理的核心就在於以人為本,只有人才是一個公司的命脈所在,人才build起來了,公司的企業文化深化了,就能留得住人才,公司的發展才有希望。