即使在最完美的條件下,管理一個(gè)軟件項(xiàng)目也是很困難的。不幸的是,許多新項(xiàng)目經(jīng)理實(shí)質(zhì)上沒有受到任何就職培訓(xùn)。這里有20個(gè)成功的管理經(jīng)驗(yàn)供項(xiàng)目經(jīng)理參考。不過,只依靠某一兩條“妙計(jì)”,是無法順利完成項(xiàng)目的。
1.定義項(xiàng)目成功的標(biāo)準(zhǔn)
在項(xiàng)目的開始,要保證各方對于判斷項(xiàng)目是否成功有統(tǒng)一的認(rèn)識(shí)。通常,跟緊預(yù)定的進(jìn)度是唯一明顯的成功要素,但是肯定還有其他的因素存在,比如,增加市場占有率、獲得指定的銷售量或銷售額、取得特定用戶滿意程度、淘汰一個(gè)高維護(hù)需求的遺留系統(tǒng)等。
2.把握各種要求之間的平衡
每個(gè)項(xiàng)目都需要平衡它的功能、人員、預(yù)算、進(jìn)度和質(zhì)量目標(biāo)。我們把以上五個(gè)項(xiàng)目方面中的每一個(gè)方面,綜合成一個(gè)約束條件,你必須在這個(gè)約束中進(jìn)行操作;你也可以定義成與項(xiàng)目成功對應(yīng)的驅(qū)動(dòng)力,或者定義成通向成功的自由程度?梢栽谝粋(gè)規(guī)定的范圍內(nèi)調(diào)整。
3.定義產(chǎn)品發(fā)布標(biāo)準(zhǔn)
在項(xiàng)目早期,要決定用什么標(biāo)準(zhǔn)來確定產(chǎn)品是否準(zhǔn)備好發(fā)布了。你可以將發(fā)布標(biāo)準(zhǔn)基于:還存在有多少個(gè)高優(yōu)先級的缺陷,性能度量,特定功能完全可操作,或其他方面表明項(xiàng)目已經(jīng)達(dá)到了它的目的。不管你選擇了什么標(biāo)準(zhǔn),都應(yīng)該是可實(shí)現(xiàn)的、可測量的、文檔化的,并且與客戶所指的“質(zhì)量”一致。
4.溝通承諾
盡管可能無意中承諾了不可能的事件,但不要做一個(gè)明知不能保證的承諾。坦誠地和客戶和管理人員溝通那些實(shí)際成果。任何以前項(xiàng)目的數(shù)據(jù)會(huì)幫助你做說服他們的論據(jù),雖然這對于不講道理的人來說沒有真正的作用。
5.寫一個(gè)計(jì)劃
有些人認(rèn)為,花時(shí)間寫計(jì)劃還不如花時(shí)間寫代碼,但是我不這么認(rèn)為。困難的部分不是寫計(jì)劃,困難的部分是做這個(gè)計(jì)劃——思考,溝通,權(quán)衡,交流,提問并且傾聽。你用來分析解決問題需要花費(fèi)的時(shí)間,會(huì)減少項(xiàng)目以后會(huì)帶給你的意外。
6.把任務(wù)分解成“英寸大小的小圓石”
“英寸大小的小圓石”是縮小了的里程碑。把大任務(wù)分解成多個(gè)小任務(wù),幫助你更加精確地估計(jì)它們,暴露出在其他情況下你可能沒有想到的工作活動(dòng),并且保證更加精確、細(xì)密的狀態(tài)跟蹤。
7.為大任務(wù)制定計(jì)劃工作表
如果你的組經(jīng)常承擔(dān)某種特定的通用任務(wù),你需要為這些任務(wù)開發(fā)一個(gè)活動(dòng)檢查列表和計(jì)劃工作表。每個(gè)檢查列表應(yīng)該包括這個(gè)大任務(wù)可能需要的所有步驟。這些檢查列表和工作表將幫助小組成員確定和評估與他必須處理的大任務(wù)相關(guān)的工作量。
8.計(jì)劃中,在質(zhì)量控制活動(dòng)后應(yīng)該有修改工作
幾乎所有的質(zhì)量控制活動(dòng),如測試和技術(shù)評審,都會(huì)發(fā)現(xiàn)缺陷或其他提高的可能。你的項(xiàng)目進(jìn)度或工作細(xì)分結(jié)構(gòu),應(yīng)該把每次質(zhì)量控制活動(dòng)后的修改,作為一個(gè)單獨(dú)的任務(wù)包括進(jìn)去。如果你事實(shí)上不用做任何的修改,很好,你已經(jīng)走在了計(jì)劃的前面。
9.為“過程改進(jìn)”安排時(shí)間
你的小組成員已經(jīng)淹沒在他們當(dāng)前的項(xiàng)目中,但是如果你想把你的組提升到一個(gè)更高的軟件工程能力水平,你就必須投一些時(shí)間在“過程改進(jìn)”上。從你的項(xiàng)目進(jìn)度中留出一些時(shí)間,因?yàn)檐浖?xiàng)目活動(dòng)應(yīng)該包括做能夠幫助你下一個(gè)項(xiàng)目更加成功的過程改進(jìn)。不要把你項(xiàng)目成員可以利用的時(shí)間100%的投入到項(xiàng)目任務(wù)中,然后驚訝于為什么他們在主動(dòng)提高方面沒有任何進(jìn)展。
10.管理項(xiàng)目的風(fēng)險(xiǎn)
如果你不去識(shí)別和控制風(fēng)險(xiǎn),那么它們會(huì)控制你。在項(xiàng)目計(jì)劃時(shí)花一些時(shí)間集體討論可能的風(fēng)險(xiǎn)因素,評估它們的潛在危害,并且決定你如何減輕或預(yù)防它們。
11.根據(jù)工作計(jì)劃而不是日歷來估計(jì)
人們通常以日歷時(shí)間做估計(jì),但是我傾向于估計(jì)與任務(wù)相關(guān)聯(lián)的工作計(jì)劃(以“人時(shí)”為單位)的數(shù)量,然后把工作計(jì)劃轉(zhuǎn)換為日歷時(shí)間的估計(jì)。這個(gè)轉(zhuǎn)換基于每天我有多少有效的小時(shí)花費(fèi)在項(xiàng)目任務(wù)上,我可能碰到的任何打斷或突發(fā)調(diào)整請求、會(huì)議,和所有其他會(huì)讓耗費(fèi)時(shí)間的地方。
12.不要為人員安排超過工作時(shí)間80%的任務(wù)量
跟蹤你的組員每周實(shí)際花費(fèi)在項(xiàng)目指定工作上的平均小時(shí)數(shù),實(shí)在會(huì)讓人吃驚。與我們被要求做的許多活動(dòng)相關(guān)的任務(wù)切換的開銷,顯著地降低了我們的工作效率。一個(gè)員工一周理論上工作40小時(shí),但不要只是因?yàn)橛腥嗽谝豁?xiàng)特定工作上每周花費(fèi)10小時(shí),就去假設(shè)他或她可以馬上做4個(gè)這種任務(wù),如果他或她能夠處理完3個(gè)任務(wù),你就很幸運(yùn)了。
13.將培訓(xùn)時(shí)間放到計(jì)劃中
確定你的組員每年在培訓(xùn)上花費(fèi)多少時(shí)間,并把它從組員工作在指定項(xiàng)目任務(wù)上的可用時(shí)間中減去。你可能在平均值中早已經(jīng)減去了休假時(shí)間、生病時(shí)間和其他的時(shí)間,對于培訓(xùn)時(shí)間也要同樣的處理。
14.記錄你的估算和你是如何達(dá)到估算的
當(dāng)你準(zhǔn)備估算你的工作時(shí),把它們記錄下來,并且記錄你是如何完成每個(gè)任務(wù)的。理解創(chuàng)建估算所用的假設(shè)和方法,能夠使它們在必要的時(shí)候更容易防護(hù)和調(diào)整,而且它將幫助你改善你的估算過程。
15.記錄估算并且使用估算工具
有很多商業(yè)工具可以幫助你估算整個(gè)項(xiàng)目。根據(jù)它們真實(shí)項(xiàng)目經(jīng)驗(yàn)的巨大數(shù)據(jù)庫,這些工具可以給你一個(gè)可能的進(jìn)度和人員分配安排選擇。它們同樣能夠幫助你避免進(jìn)入“不可能區(qū)域”,即將任務(wù)量、小組勞動(dòng)力和進(jìn)度安排組合起來一看,根本不可能成功。
16.遵守學(xué)習(xí)曲線
如果你在項(xiàng)目中第一次嘗試新的過程、工具或技術(shù),你必須承受短期內(nèi)生產(chǎn)力降低的代價(jià)。不要期望在新軟件工程方法的第一次嘗試中就獲得驚人的效益,在進(jìn)度安排中考慮不可避免的學(xué)習(xí)曲線。
17.考慮意外緩沖
事情不會(huì)像你項(xiàng)目計(jì)劃的一樣準(zhǔn)確地進(jìn)行,所以你的預(yù)算和進(jìn)度安排應(yīng)該在主要階段后面包括一些意外的緩沖,以適應(yīng)無法預(yù)料的事件。不幸的是,你的管理者或客戶可能把這些緩沖作為你的托辭,而不是明智地承認(rèn)事實(shí)確實(shí)如此。向他們指明一些以前項(xiàng)目不愉快的意外,來說明你的深謀遠(yuǎn)慮。
18.記錄實(shí)際情況與估算情況
如果你不記錄花費(fèi)在每項(xiàng)任務(wù)上的實(shí)際工作時(shí)間,并和你的估算做比較,你將永遠(yuǎn)不能提高你的估算能力,你的估算將永遠(yuǎn)是猜測。
19.只有當(dāng)任務(wù)100%完成時(shí),才認(rèn)為該任務(wù)完成
使用英寸大小的小圓石的一個(gè)好處是:你可以區(qū)分每個(gè)小任務(wù)要么完成了,要么沒有完成。這比估計(jì)一個(gè)大任務(wù)在某個(gè)時(shí)候完成了多少百分比要實(shí)在得多。使用明確的標(biāo)準(zhǔn)來判斷一個(gè)步驟是否真正的完成了。
20.公開、公正地跟蹤項(xiàng)目狀態(tài)
創(chuàng)建一個(gè)良好的風(fēng)氣,讓項(xiàng)目成員對準(zhǔn)確地報(bào)告項(xiàng)目的狀態(tài)感到安全。努力讓項(xiàng)目在準(zhǔn)確的、基于數(shù)據(jù)的事實(shí)基礎(chǔ)上運(yùn)行,而不是從因?yàn)楹ε聢?bào)告壞消息而產(chǎn)生的令人誤解的樂觀主義。使用項(xiàng)目狀態(tài)信息在必要的時(shí)候進(jìn)行糾正操作,并且在條件允許時(shí)進(jìn)行表揚(yáng)。