軟件項目經理肩負兩個使命:一是確保項目目標達成,交付用戶滿意的產品;二是建設軟件開發團隊,提高團隊成員能力水平。交付用戶滿意的產品是對軟件項目經理的基本要求,而軟件開發團隊的建設,是對項目經理的更高要求。只有做好項目團隊的建設,不斷提高團隊成員的能力,軟件項目經理才可以帶領團隊更好地完成一個又一個項目。
軟件項目經理要搞好項目團隊建設,就要注重對項目團隊成員的九項要求。
- 團隊協作精神的訓練和要求
一旦組建了軟件項目團隊,就意味著所有的團隊成員,都應該為了同一個目標而努力,所以每個團隊成員不再是單打獨斗的工作模式,而是相互信任,相互支持,相互協作,依靠團隊的力量來完成項目任務,達成項目目標。
團隊里不歡迎那種只顧自己不顧項目全局的“獨狼”。軟件項目經理,對于團隊的管理,最重要的一點就是要向團隊成員灌輸團隊協作的精神。因為只有團隊成員發生“核聚變”,它爆發出的力量會遠遠高于松散的個人力量的疊加。所以軟件項目經理,在處理項目問題時,也應以是否影響項目目標的達成為唯一標準,而不應考慮個人利益。
- 數據庫和數據結構分析與設計能力的訓練和要求
每個軟件的處理對象最終都是數據。對于軟件開發人員來說,數據流的分析和設計的能力尤為重要。所以,軟件項目經理,應當把開發人員的數據庫和數據結構分析與設計的能力作為首要關注的技術能力。
- 文檔習慣的訓練和要求
軟件開發過程中,文檔是非常重要的。比如,如果沒有需求規格文檔,軟件設計就缺乏有效的依據。而且,軟件文檔對于軟件的驗證和維護活動也是至關重要的。沒有軟件需求、設計、測試文檔,軟件的維護就不可能是結構化的維護,維護的代價會變得非常高。
一些開發人員對寫文檔抱有抵觸的情緒,他們寧愿把時間花在編碼、調試上面,也不愿寫好一篇文檔。他們編寫的文檔經常出現前后不一致,表述不清晰的問題,這給評審帶來很大的障礙。而評審一旦受了影響,就會使得團隊對他工作的幫助降低,就有可能使得他的工作出現的錯誤增多,加大他更改的代價,以至于拖累整個項目。
軟件項目經理,應當要求團隊成員按照一定的規范編寫軟件文檔,這樣不僅使得軟件的驗證和確認比較順利,而且將來的維護活動也會比較容易。
- 規范化代碼編寫能力的訓練和要求
遵循編碼規范書寫代碼是對軟件開發人員的基本要求。規范的代碼可以使得軟件具有好的可讀性,可維護性。項目團隊成員遵循同一編碼規范也會更有利于團隊協作。
軟件項目經理,應當組織建立統一的編碼規范,并要求項目團隊成員的編碼都應遵循這一規范。
- 復用性能力的訓練和要求
軟件復用,是提高軟件開發效率,降低軟件缺陷的有效手段。軟件項目經理應當培養項目團隊成員進行軟件復用的意識,在團隊內部進推廣代碼復用、構件復用、函數庫復用。
- 寫構件能力的訓練和要求
軟件要進行構件復用的前提是建立起一個豐富的構件庫。正如“羅馬不是一天建成的”,構件庫也不是一天就能建成的。軟件項目經理,應當鼓勵項目團隊成員編寫通用的構件,以豐富組織的軟件構件庫,推進構件復用開發。同時編寫通用構件,提煉共性需求,進行函數封裝,也有利于軟件開發人員提高編程的技術能力。
- 測試習慣的訓練和要求
軟件測試對于軟件的重要性是毋庸置疑的。測試能力,不僅測試人員應當具備;對于其他的開發人員也同樣重要。因為軟件開發人員要確保軟件的可測試性,就一定要具有測試的能力和意識。開發人員在需求定義的時候就要確保需求是可測試的,在編寫代碼的時候也要遵循編碼規范,使得代碼具有良好的可讀性、可測試性。
而且軟件測試不僅有系統測試還有單元測試,系統測試是由測試人員來完成的,而單元測試則應由開發人員本人完成。因為只有開發人員才能最了解自己的代碼結構,才能更好地完成單元測試中復雜的路徑測試。
軟件項目經理通過對項目團隊成員的測試能力的要求可以使得軟件的缺陷去除率達到較高水平。
- 學習和總結能力的訓練和要求
團隊成員個人能力的提高就是整個項目組能力的提高,所以軟件項目經理要在項目團隊中,營造一種學習的氛圍,鼓勵團隊成員通過相互交流,認識自己的不足,學習別人的長處,以不斷提高自己的能力。
軟件項目經理還可以利用階段總結的時機,在總結項目的進展情況之外,進行個人的工作能力的總結。因為通過不斷的總結經驗和教訓,使團隊成員認識到自己的不足,促進團隊和個人的成長。
- 引導程序員由丑小鴨變成白天鵝
軟件項目經理富負有幫助團隊成長的職責。所以他應當通過在技術能力,學習能力,工作標準和規范等方面對團隊成員的嚴格要求,促使其快速成長,從程序員變成軟件大師。