您的位置:軟件測試 > 軟件項目管理 > 項目管理綜合 >
項目變更管理??決戰(zhàn)項目成敗
作者:網絡轉載 發(fā)布時間:[ 2013/6/18 14:49:39 ] 推薦標簽:

變更控制的目的并不是控制變更的發(fā)生,而是對變更進行管理,確保變更有序進行。對于軟件開發(fā)項目來說,發(fā)生變更的環(huán)節(jié)比較多,因此變更控制顯得格外重要。

IT項目中引起變更的因素有兩個:一是來自外部的變更要求,如客戶要求修改工作范圍和需求等;二是開發(fā)過程內部的變更要求,如為解決測試中發(fā)現的一些錯誤而修改源碼甚至設計。比較而言,難處理的是來自外部的需求變更,因為IT項目需求變更的概率大,引發(fā)的工作量也大(特別是到項目的后期)。

變更控制不能僅在過程中靠流程控制,有效的方法是在事前明確定義。事前控制的一種方法是在項目開始前明確定義,否則“變化”也無從談起。工作范圍(以前章節(jié)談過); 另一種方法是評審,特別是對需求進行評審,這往往是項目成敗的關鍵。需求評審的目的不僅是“確認”,更重要的是找出不正確的地方并進行修改,使其盡量接近 “真實”需求。另外,需求通過正式評審后應作為重要基線,從此之后即開始對需求變更進行控制。

雖然可以事前定義好變更控制流程,但在各種壓力下真正“控制”起來其實非常困難。下面給大家分析一個變更失控的項目案例:王先生剛出任項目經理,并承接了一個中型軟件項目。上任時公司高層再三叮嚀他一定要尊重客戶,充分滿足客戶需求。項目開始比較順利,但進入到后期,客戶頻繁的需求變更帶來很多額外工作。王先生動員大家加班,保持了項目的正常進度,客戶相當滿意。

但需求變更卻越來越多。為了節(jié)省時間,客戶的業(yè)務人員不再向王先生申請變更,而是直接找程序員商量。程序員疲于應付,往往直接改程序而不做任何記錄,很多相關文檔也忘記修改。很快王先生發(fā)現:需求、設計和代碼無法保持一致,甚至沒有人能說清楚現在系統(tǒng)“到底改成什么樣了”。版本管理也出現了混亂,很多人違反配置管理規(guī)定,直接在測試環(huán)境中修改和編譯程序。但在進度壓力下,他也只能佯裝不知此事。但因頻繁出現“改好的錯誤又重新出現”的問題,客戶已經明確表示“失去了耐心”。

而這還只是噩夢的開始。一個程序員未經許可擅自修改了核心模塊,造成系統(tǒng)運行異常緩慢,大量應用程序超時退出。雖然終花費了整整3天的時間解決了這個問題,但客戶卻投訴了,表示“無法容忍這種低下的項目管理水平”。更糟糕的是,因為擔心系統(tǒng)中還隱含著其他類似的錯誤,客戶高層對項目的質量也疑慮重重。

隨后發(fā)生的事情讓王先生更加為難:客戶的兩個負責人對界面風格的看法不一致,并為此發(fā)生了激烈爭執(zhí)。王先生知道如果發(fā)表意見可能會得罪其中一方,于是保持了沉默。終客戶決定調整所有界面,王先生只好立刻動員大家抓緊時間修改?珊髞懋斅犝f因修改界面而造成了項目一周的延誤后,客戶方原來發(fā)生爭執(zhí)的兩人這次卻非常一致,同時氣憤地質問王先生:“為什么你不早點告訴我們要延期!早知這樣才不會讓你改呢!”王先生委屈極了,疑惑自己到底錯在哪里了。

從上面的案例中可以看到各種變更失控的現象和造成的后果,王先生主要犯了幾個錯誤:

(1) 沒有明確的授權。

事先應該明確客戶方有權提出變更申請的人員和實施方有權受理變更的人員,并要控制雙方人數。這樣做才可以對變更有整體的控制。絕不能進行“私下交易”,而沒有人能完整地知道到底改了些什么。另外,授權雙方接口人的好處是可以屏蔽客戶內部的矛盾,如果只有一個接口人,內部尚未達成一致時變更是無法提出來的。從實際經驗看,授權可以顯著減少變更,特別是那些因內部看法不同而導致的反復變更。

(2) 對變更沒有進行必要的審核。

并不是所有的變更都要修改,也不是所有變更都要立刻修改,審核的目的是為了決定是否需要修改和什么時候修改。比如案例中提到的界面風格問題,可以先不修改,或者規(guī)劃一下修改的時間待到以后進行優(yōu)化。另外,對于核心模塊的修改要嚴格審核把關,否則會引起全局問題,案例中提到的“擅自修改核心模塊”造成的事故是因為沒有審核而造成的。

(3) 對變更的影響沒有評估。

變更都是有代價的,應該評估一下變更的代價和對項目的影響,要讓客戶了解變更的后果,并與客戶一起做判斷。案例中客戶后的質問正是因為沒有事前告訴客戶變更的影響造成的。如果客戶不知道你為變更付出的代價,對你的辛苦便難以體會。案例中客戶剛開始對王先生加班處理變更相當滿意,但只是對工作態(tài)度滿意,后期當變更引發(fā)一系列問題時客戶并沒有感謝王先生的苦勞。

(4) 應該讓客戶確認是否接受變更的代價。

在評估代價并且與客戶討論的過程中,可以請客戶一起做判斷:“我可以修改,但您能接受后果嗎?”。案例中如果王先生評估了修改界面的工作量并請客戶確認,則有三種可能:客戶預先接受延期這一后果,也不會再質問王先生了;如果客戶認為代價太大,則王先生不必修改了;如果認為可以縮短延期時間,則王先生至少爭取到了與客戶協(xié)商的機會,讓客戶知道為此項目組需要付出加班的代價,吃個“明虧”。

上述步驟完成后,要等客戶確認變更再組織實施變更的相關工作。變更要按配置管理(讀者可以查閱相關的資料)的規(guī)定執(zhí)行,確保所有交付物的一致性和完整性。同時,對所有的變更要跟蹤和驗證,確保都按要求完成了。

后,要特別提醒的是:要在項目開始對項目組和客戶進行宣傳和培訓,讓所有成員都理解變更控制的重要意義;在項目過程中要對變更控制的執(zhí)行情況進行審計,發(fā)現違反規(guī)定的事件要嚴肅處理,否則過程很快會失效。

綜上所述,變更控制的目的是管理變化。變更控制對項目成敗有重要影響,事前要明確定義,事中要嚴格執(zhí)行。實施變更之前有四個重要控制點:授權、審核、評估和確認;在實施過程要進行跟蹤和驗證,確保變更被正確執(zhí)行。

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd