專案經理面對專案陷困境該這樣採取措施

iteye_9089發表於2020-04-07
陳江是一家軟體公司的開發經理,這幾天他一直在痛苦的思考,當軟體開發專案陷入絕境時,作為專案經理該怎麼辦?是丟盔棄甲的中止這個軟體專案還是努力使專案鳳凰涅磐、浴火重生?的確,做出一個終止開發專案的決定要比爭取一個專案要更具魄力。中止開發專案就意味著否定自己之前所有的努力,做這樣的決定需要很大的勇氣,這一直也是讓許多軟體開發管理人員難以抉擇的難題之一。

一般來說,讓專案經理頭痛不已的困境專案通常狀況是專案計劃執行不下去,進度比預計的長,成本比預計的高,質量比預計的差,問題能出到什麼程度就出到什麼程度。大家都說“堅持就是勝利”,但是對於軟體開發專案而言,硬著頭皮不顧成本和現實情況走下去,就一定能成功完成一個專案嗎?

專案染病陷困境

隨著專案研發的深入進展,驀然回首陳江發現許多問題逐步開始暴露。經過大半年反反覆覆的開發,不但沒有順利的完成預期任務,反而使專案陷入困境變成了一個爛攤子。是承認專案失敗,丟盔棄甲的落荒而逃中止這個陷入困境的開發專案,還是痛下決心使專案浴火重生呢?讓作為專案經理的陳江一夜間添了許多白髮。

常言道:成功的專案是一樣的,失敗的專案各有不同。要總結軟體開發失敗的原因,有一定的難度。曾有一個研究顯示,大多數軟體開發陷入困境主要是在這幾個方面:專案因資源配置問題導致逾期和超支的有60%;因專案需求混亂造成專案範圍頻繁更改的為60%;因專案缺乏監督導致計劃執行差的為63%;因溝通不暢導致的概率為48%;而因專案經理的能力差導致的則為37%.

(1)資源配置不善導致進度和成本陷入困境

軟體開發管理的一個重要內容是資源配置和成本管理。在專案中有兩種相互矛盾的因素約束專案經理的作為,一個是專案進度和質量,另一個是專案成本,任何一種約束的缺失都可能造成專案陷入困境。例如,當資源配置管理不善時,通常都會導致成本失去控制。非常遺憾的是在軟體開發過程中,我們更多的強調進度的約束而忽視成本的約束,反而最終導致進度失控。陳江在後來每每談起此事時,因為沒有平衡好進度和成本的關係,造成專案進度延誤和成本超支都讓他感到非常的心痛。

(2)專案需求混亂造成專案範圍蔓延

專案需求混亂不清,專案範圍不斷蔓延,專案績效無法衡量,這是我們在失控的專案經常看到的例子。因此,這個時候處於矛盾漩渦中的專案經理就會多頭受氣,既處理不好上級領導、專案成員等各方的關係,也平衡不了各方利益,專案走向扯皮的現象就越多。實際上,如果專案範圍一直不斷蔓延和頻繁變更,專案將毫無成功的機會。因為經常範圍變更,那麼任務很有可能要滯後完成,這就會危害到整個專案的進度。

(3)缺乏專案監控導致的問題

軟體開發管理的基礎是專案執行和監控。高效的專案執行要求有量化的指標,沒有量化的指標就只能是粗放的管理,結果就會導致連鎖影響,只能走進專案失敗的死衚衕。

(4)溝通不暢導致的問題

軟體開發出現問題時絕大部分都與溝通不暢有關,而不是技術問題。思科總裁錢伯斯有一個著名的理念:“使專案陷入困境的有兩大原因:一是遠離你的客戶,二是遠離你的員工。”遠離導致的唯一後果就是:缺乏交流,一般來說當專案陷入困境時會導致人心鬆散、疲憊不堪、摩擦不斷,專案組成員看不到希望,如果這時溝通不暢就會使專案人員士氣低落。因此,溝通不暢正是導致專案失敗的主要原因之一。

(5)專案經理能力有限無法主導專案

專案經理是軟體開發專案的主導者和領導者,他的能力完全直接影響到開發專案能否順利進行。古語有云:兵熊熊一個,將熊熊一窩兒。一頭獅子帶領一群羊,這群羊就會變成一群獅子。所以,專案主導者的品格往往決定了團隊的品格與成敗的走向。因此,陷入困境的開發專案能否浴火重生關鍵之一在於選擇能力強的專案主導者。否則,無論其它環節做得更好也是白搭。

中止專案還是浴火重生?

對於陳江來說,中止一個親自爭取來的專案是一件痛苦的事情。中止還是繼續這兩條路在公司高層都有不同的支持者,以 CFO為主提出中止的理由是:將“死馬當活馬醫”的想法是因為害怕已經投資的那些錢都打水漂了,可是繼續一個陷入困境的專案對公司財務來說會有長遠的不良財政影響。另一條路是以CIO技術總監為主的支援觀點是:如果問題能夠被克服,為什麼不重新評估和重新計劃呢?

爭論到最後,原先支援中止專案的CFO放鬆了態度。但他強調一點,在討論中止還是繼續專案之前,一定要弄清正在開發的專案出現了什麼問題,有沒有走出失敗浴火重生可能,一定要避免投入更多資金之後才發現專案還是要中止。經過幾個通宵的會議討論,陳江提出從這幾個方面來判斷專案是否能走出失敗的泥潭,浴火重生。

(1)專案是否有一個可衡量的目標和範圍

目標不明確或者目標過於理想化都會導致專案的失敗。當初陳江在專案規劃時為了爭取高層對專案的支援,故意誇大專案投資回報率而避談了專案的風險。當專案進行了一多半時,種種問題出現了,由於期望值過高造成實際效果的極度反差,大家對專案的信心倍受打擊,也沒有看到期望的結果,從而大家的熱情一下子降到冰點。因此,是否有可衡量的明確目標和清晰的專案範圍,是專案重啟後能否成功的第一個關鍵所在。

(2)專案進度計劃是否可測量和控制

做過開發專案的人都有這樣的體驗:一是開發工期一拖再拖,總是有不斷冒出的工作需要完成,但似乎沒有人知道開發專案能夠什麼時候完成;二是專案計劃定了一個又一個,卻又總是在不停的修改這個計劃。

後來,陳江在回憶時無奈的說,不是不想制定詳細的計劃,而是我們對制定計劃的依據沒有把握。同時,我們對專案的進度也沒有很好測量,難以把握專案真實完成的情況。因此,只能走一步算一步,專案質量只能依賴於開發人員個人的能力和責任心,但由於全過程缺乏有效的監控,最終的質量還是很難保證。在軟體開發有一句俗語是:人們常常不是計劃失敗,而失敗於計劃。因此,進度是否能測量,計劃是否受控是軟體開發能否成功的重要因素之一。

(3)專案內是否人浮於事

開發專案成員的工作有的完成的好,有的完成的差,有的多有的少。陳江在談到因為對專案成員完成的工作量缺乏準確估算,使到一些人鑽了空子,總是宣揚自己的工作很難,總是在加班但卻沒有真正幹事情。造成的結果是“劣幣驅逐良幣”,大家都人浮於事。當開發成員沒有全力參與時,團隊力量就無法發揮,開發專案也就談不上有成功的機會了。

(4)專案的人員配置是否合理

專案負責人是一個專案的領頭人,專案主導者是否稱職對專案成功與否起著至關重要的影響。一個合格的專案負責人不僅需要有良好的技術技能,同時也需要擁有良好的業務和領導技能,這樣才能與各方人員溝通以及在專案控制中游刃有餘。另外,陳江發現專案的失敗還在於核心開發人員的流失。一般來說,核心人員的穩定關係到專案的生死,但公司在沒有辦法控制人員流失的時候,也沒有建立起完備的後備人選機制。
五措施力保專案新生

經過多次反覆的討論,公司決定專案重新啟動。為了保證重新啟動的專案能順利進行,陳江決定通過以下幾個方面開展工作:

(1)重組開發團隊,提高團隊士氣

陷入困境的開發團隊都會有一個明顯的特點,就是人心渙散。因此在重組開發團隊時,第一步就是明確各成員的工作職責,建立起順暢的溝通通道。如果專案團隊士氣低落,專案經理應要花較多的精力去關心處於疲憊狀態的開發人員,注意人員流失,最好能主動緩解專案成員的壓力。在重組團隊時,還應考慮專案原有的人員配置是否合理,瞭解各成員的作用,哪些成員是對專案是有利的,哪些成員是“雞肋”。必要時應注入新的力量,以提高團隊的活力。

(2)制定切實的目標,控制專案需求變更

需求管理始於範圍定義,當專案經理未能在專案範圍上做到先發制人,問題就會接踵而至,因為範圍變更常常會涉及到成本上升和延長時間。所以,陳江決定要吸取教訓,從實際需求出發做好專案規劃,明確專案目標,不再輕易修改需求範圍,以避免頻繁的修改影響開發進度。

(3)制定嚴密的實施計劃

“凡事預則立,不預則廢”。陳江認為關鍵之一是:根據實際情況權衡客觀需要和主觀可能,制定新的可執行的計劃,拋棄一切不切實際的幻想。同時,他還強調這個開發計劃應該真正地被各方人員接受,要把它樹為今後開發活動的標杆,嚴格執行而不只是形式上寫寫。

(4)加強開發里程碑的稽核和控制

開發里程碑方法是將軟體開發分成若干個子階段的專案管理方式,其中一個重要功用是在各子階段之間預留緩衝時間。使用緩衝時間可以在專案實際執行進度和預計進度之間取得平衡,有助於開發專案適應意料之外的事件。例如緩衝時間可以用於彌補進度延誤,使進度計劃不至於長期失效。因此,在專案每個關鍵點設立里程碑,對前一階段的工作進行嚴格的稽核和評審,能保證前一階段出現的問題不會被傳遞到下一階段,同時通過對里程碑進行有效的控制也可以保證專案質量和專案進度。

(5)評估潛在風險並制定預防措施

在專案重啟後,要對專案中可能存在的風險進行仔細分析,制定比較周密的風險防範機制,大力降低專案過程中出現的風險。通過對陷入困境專案的總結和吸取深刻的教訓,陳江明白到軟體開發專案管理不只是一種技術,還涉及到許多方面的因素,只有齊心協力,專案才能浴火重生。

相關文章