即使在最完美的條件下,管理一個軟件項目也是很困難的。不幸的是,許多新項目經(jīng)理實質(zhì)上沒有受到任何就職培訓(xùn)。這里有20個成功的管理經(jīng)驗供項目經(jīng)理參考。不過,只依靠某一兩條“妙計”,是無法順利完成項目的。
1.定義項目成功的標(biāo)準(zhǔn)
在項目的開始,要保證各方對于判斷項目是否成功有統(tǒng)一的認識。通常,跟緊預(yù)定的進度是唯一明顯的成功要素,但是肯定還有其他的因素存在,比如,增加市場占有率、獲得指定的銷售量或銷售額、取得特定用戶滿意程度、淘汰一個高維護需求的遺留系統(tǒng)等。
2.把握各種要求之間的平衡
每個項目都需要平衡它的功能、人員、預(yù)算、進度和質(zhì)量目標(biāo)。我們把以上五個項目方面中的每一個方面,綜合成一個約束條件,你必須在這個約束中進行操作;你也可以定義成與項目成功對應(yīng)的驅(qū)動力,或者定義成通向成功的自由程度。可以在一個規(guī)定的范圍內(nèi)調(diào)整。
3.定義產(chǎn)品發(fā)布標(biāo)準(zhǔn)
在項目早期,要決定用什么標(biāo)準(zhǔn)來確定產(chǎn)品是否準(zhǔn)備好發(fā)布了。你可以將發(fā)布標(biāo)準(zhǔn)基于:還存在有多少個高優(yōu)先級的缺陷,性能度量,特定功能完全可操作,或其他方面表明項目已經(jīng)達到了它的目的。不管你選擇了什么標(biāo)準(zhǔn),都應(yīng)該是可實現(xiàn)的、可測量的、文檔化的,并且與客戶所指的“質(zhì)量”一致。
4. 溝通承諾
盡管可能無意中承諾了不可能的事件,但不要做一個明知不能保證的承諾。坦誠地和客戶和管理人員溝通那些實際成果。任何以前項目的數(shù)據(jù)會幫助你做說服他們的論據(jù),雖然這對于不講道理的人來說沒有真正的作用。
5.寫一個計劃
有些人認為,花時間寫計劃還不如花時間寫代碼,但是我不這么認為。困難的部分不是寫計劃,困難的部分是做這個計劃——思考,溝通,權(quán)衡,交流,提問并且傾聽。你用來分析解決問題需要花費的時間,會減少項目以后會帶給你的意外。
6.把任務(wù)分解成“英寸大小的小圓石”
“英寸大小的小圓石”是縮小了的里程碑。把大任務(wù)分解成多個小任務(wù),幫助你更加精確地估計它們,暴露出在其他情況下你可能沒有想到的工作活動,并且保證更加精確、細密的狀態(tài)跟蹤。
7.為大任務(wù)制定計劃工作表
如果你的組經(jīng)常承擔(dān)某種特定的通用任務(wù),你需要為這些任務(wù)開發(fā)一個活動檢查列表和計劃工作表。每個檢查列表應(yīng)該包括這個大任務(wù)可能需要的所有步驟。這些檢查列表和工作表將幫助小組成員確定和評估與他必須處理的大任務(wù)相關(guān)的工作量。
8.計劃中,在質(zhì)量控制活動后應(yīng)該有修改工作
幾乎所有的質(zhì)量控制活動,如測試和技術(shù)評審,都會發(fā)現(xiàn)缺陷或其他提高的可能。你的項目進度或工作細分結(jié)構(gòu),應(yīng)該把每次質(zhì)量控制活動后的修改,作為一個單獨的任務(wù)包括進去。如果你事實上不用做任何的修改,很好,你已經(jīng)走在了計劃的前面。
9.為“過程改進”安排時間
你的小組成員已經(jīng)淹沒在他們當(dāng)前的項目中,但是如果你想把你的組提升到一個更高的軟件工程能力水平,你就必須投一些時間在“過程改進”上。從你的項目進度中留出一些時間,因為軟件項目活動應(yīng)該包括做能夠幫助你下一個項目更加成功的過程改進。不要把你項目成員可以利用的時間100%的投入到項目任務(wù)中,然后驚訝于為什么他們在主動提高方面沒有任何進展。
10.管理項目的風(fēng)險
如果你不去識別和控制風(fēng)險,那么它們會控制你。在項目計劃時花一些時間集體討論可能的風(fēng)險因素,評估它們的潛在危害,并且決定你如何減輕或預(yù)防它們。
11.根據(jù)工作計劃而不是日歷來估計