天天看點

項目管理的20條錦囊妙計

作者: Karl E. Wiegers 來源: 系統分析之窗  

  即使在最完美的條件下,管理一個軟體項目也是很困難的。不幸的是,許多新項目經理實質上沒有受到任何就職教育訓練。這裡有20個成功的管理經驗供項目經理參考。不過,隻依靠某一兩條“妙計”,是無法順利完成項目的。 

  1.定義項目成功的标準 

  在項目的開始,要保證各方對于判斷項目是否成功有統一的認識。通常,跟緊預定的進度是唯一明顯的成功要素,但是肯定還有其他的因素存在,比如,增加市場占有率、獲得指定的銷售量或銷售額、取得特定使用者滿意程度、淘汰一個高維護需求的遺留系統等。 

  2.把握各種要求之間的平衡 

  每個項目都需要平衡它的功能、人員、預算、進度和品質目标。我們把以上五個項目方面中的每一個方面,綜合成一個限制條件,你必須在這個限制中進行操作;你也可以定義成與項目成功對應的驅動力,或者定義成通向成功的自由程度。可以在一個規定的範圍内調整。 

  3.定義産品釋出标準 

  在項目早期,要決定用什麼标準來确定産品是否準備好釋出了。你可以将釋出标準基于:還存在有多少個高優先級的缺陷,性能度量,特定功能完全可操作,或其他方面表明項目已經達到了它的目的。不管你選擇了什麼标準,都應該是可實作的、可測量的、文檔化的,并且與客戶所指的“品質”一緻。 

  4. 溝通承諾 

  盡管可能無意中承諾了不可能的事件,但不要做一個明知不能保證的承諾。坦誠地和客戶和管理人員溝通那些實際成果。任何以前項目的資料會幫助你做說服他們的論據,雖然這對于不講道理的人來說沒有真正的作用。 

  5.寫一個計劃 

  有些人認為,花時間寫計劃還不如花時間寫代碼,但是我不這麼認為。困難的部分不是寫計劃,困難的部分是做這個計劃——思考,溝通,權衡,交流,提問并且傾聽。你用來分析解決問題需要花費的時間,會減少項目以後會帶給你的意外。 

  6.把任務分解成“英寸大小的小圓石” 

  “英寸大小的小圓石”是縮小了的裡程碑。把大任務分解成多個小任務,幫助你更加精确地估計它們,暴露出在其他情況下你可能沒有想到的工作活動,并且保證更加精确、細密的狀态跟蹤。 

  7.為大任務制定計劃工作表 

  如果你的組經常承擔某種特定的通用任務,你需要為這些任務開發一個活動檢查清單和計劃工作表。每個檢查清單應該包括這個大任務可能需要的所有步驟。這些檢查清單和工作表将幫助小組成員确定和評估與他必須處理的大任務相關的工作量。 

  8.計劃中,在品質控制活動後應該有修改工作 

  幾乎所有的品質控制活動,如測試和技術評審,都會發現缺陷或其他提高的可能。你的項目進度或工作細分結構,應該把每次品質控制活動後的修改,作為一個單獨的任務包括進去。如果你事實上不用做任何的修改,很好,你已經走在了計劃的前面。 

  9.為“過程改進”安排時間 

  你的小組成員已經淹沒在他們目前的項目中,但是如果你想把你的組提升到一個更高的軟體工程能力水準,你就必須投一些時間在“過程改進”上。從你的項目進度中留出一些時間,因為軟體項目活動應該包括做能夠幫助你下一個項目更加成功的過程改進。不要把你項目成員可以利用的時間100%的投入到項目任務中,然後驚訝于為什麼他們在主動提高方面沒有任何進展。 

  10.管理項目的風險 

  如果你不去識别和控制風險,那麼它們會控制你。在項目計劃時花一些時間集體讨論可能的風險因素,評估它們的潛在危害,并且決定你如何減輕或預防它們。 

  11.根據工作計劃而不是月曆來估計 

  人們通常以月曆時間做估計,但是我傾向于估計與任務相關聯的工作計劃(以“人時”為機關)的數量,然後把工作計劃轉換為月曆時間的估計。這個轉換基于每天我有多少有效的小時花費在項目任務上,我可能碰到的任何打斷或突發調整請求、會議,和所有其他會讓耗費時間的地方。 

  12.不要為人員安排超過工作時間80%的任務量 

  跟蹤你的組員每周實際花費在項目指定工作上的平均小時數,實在會讓人吃驚。與我們被要求做的許多活動相關的任務切換的開銷,顯著地降低了我們的工作效率。一個員工一周理論上工作40小時,但不要隻是因為有人在一項特定工作上每周花費10小時,就去假設他或她可以馬上做4個這種任務,如果他或她能夠處理完3個任務,你就很幸運了。 

  13.将教育訓練時間放到計劃中 

  确定你的組員每年在教育訓練上花費多少時間,并把它從組員工作在指定項目任務上的可用時間中減去。你可能在平均值中早已經減去了休假時間、生病時間和其他的時間,對于教育訓練時間也要同樣的處理。 

  14.記錄你的估算和你是如何達到估算的 

  當你準備估算你的工作時,把它們記錄下來,并且記錄你是如何完成每個任務的。了解建立估算所用的假設和方法,能夠使它們在必要的時候更容易防護和調整,而且它将幫助你改善你的估算過程。 

  15.記錄估算并且使用估算工具 

  有很多商業工具可以幫助你估算整個項目。根據它們真實項目經驗的巨大資料庫,這些工具可以給你一個可能的進度和人員配置設定安排選擇。它們同樣能夠幫助你避免進入“不可能區域”,即将任務量、小組勞動力和進度安排組合起來一看,根本不可能成功。 

  16.遵守學習曲線 

  如果你在項目中第一次嘗試新的過程、工具或技術,你必須承受短期内生産力降低的代價。不要期望在新軟體工程方法的第一次嘗試中就獲得驚人的效益,在進度安排中考慮不可避免的學習曲線。 

  17. 考慮意外緩沖 

  事情不會像你項目計劃的一樣準确地進行,是以你的預算和進度安排應該在主要階段後面包括一些意外的緩沖,以适應無法預料的事件。不幸的是,你的管理者或客戶可能把這些緩沖作為你的托辭,而不是明智地承認事實确實如此。向他們指明一些以前項目不愉快的意外,來說明你的深謀遠慮。 

  18. 記錄實際情況與估算情況 

  如果你不記錄花費在每項任務上的實際工作時間,并和你的估算做比較,你将永遠不能提高你的估算能力,你的估算将永遠是猜測。 

  19. 隻有當任務100%完成時,才認為該任務完成 

  使用英寸大小的小圓石的一個好處是:你可以區分每個小任務要麼完成了,要麼沒有完成。這比估計一個大任務在某個時候完成了多少百分比要實在得多。使用明确的标準來判斷一個步驟是否真正的完成了。 

  20. 公開、公正地跟蹤項目狀态 

  建立一個良好的風氣,讓項目成員對準确地報告項目的狀态感到安全。努力讓項目在準确的、基于資料的事實基礎上運作,而不是從因為害怕報告壞消息而産生的令人誤解的樂觀主義。使用項目狀态資訊在必要的時候進行糾正操作,并且在條件允許時進行表揚。

繼續閱讀