建立暢通的溝通渠道和溝通策略。
需求的不確定性風險很大程度上是由溝通不暢引起的。因此,在需求調研階段,要多和應用部門溝通,了解他們真正的需求,最好能將目標系統的模型向應用部門演示,并得到反饋意見,直到雙方都達成共識;形成雙方認可的驗收方案和驗收標準,并做好變更控制和配置管理,盡量降低需求不確定性風險。
配備高素質的項目管理人員。
最好是具有豐富的項目管理經驗,或是經過系統的項目管理知識的人員來擔任項目經理,通過制定有效的項目管理計劃,并認真執行落實,提高項目的可控性。同時,風險不是靜止的、一成不變的,它會隨著項目狀況的變化而變化,因此,風險管理必須被作為一個日常的正式活動列入項目工作計劃,成為項目管理人員的一個重要工作。
建立一支協作高效的項目團隊。
技術部門有技術,業務部門有需求,因此,項目組中不僅要有開發商、技術部門的參與,更要有應用部門的參與,形成一個合作的項目工作團隊,共同理解企業的戰略規劃和業務發展,從整體全局的角度,提出有效的信息化需求,共同研討項目進展中出現的問題,共同控制項目進度,共同為項目質量把關。
制定科學的風險管理計劃。
從風險管理的角度對項目規劃或計劃進行審核,建立“風險清單”,對每個可能存在風險的表現、范圍、時間做出盡量準確的判斷并對風險進行監控,提前做好應對準備。如針對需求風險,要制定相應的需求變更控制;針對技術鎖定風險,要安排的核心技術人員全程參與開發等等。
選擇合適的開發技術。
雖然在系統設計時需要考慮新技術的發展和技術的先進性問題,但“最好的不一定是最合適的,最合適的才是最好的”,如果項目組的人員對所需開發技術不熟,在滿足業務需求的前提下,盡可能采用熟悉的技術來減輕項目在成本或進度方面的影響,也可以事先進行培訓來減輕對項目的影響,以避免因技術瓶頸導致的項目失敗。
采用快速原型和迭代模型進行開發。
盡管前期會對應用部門進行需求調研和需求分析,但應用部門的需求往往會隨著時間的推移、業務發展的變化而有所變化,因此,技術部門要強調敏捷開發,縮短軟件第一版本的上線周期,盡快給用戶一個快速原型啟發用戶的需求,并持續為用戶提供有價值的軟件。同時,以迭代法取代傳統的瀑布法開發過程,加強各階段與用戶的溝通,對各個功能逐步完善,可以降低各種不確定因素帶來的實現風險,每個迭代過后,軟件都向目標接近一步,即使目標發生改變,迭代模型也比其他篩選和建立目標的開發模型,更便于轉向新目標。
軟件項目風險管理是一種特殊的規劃方式,對任何一個軟件項目,我們可以有最佳的期望值,但更應該要有最壞的準備——只有正視風險,我們才能更好地管理風險,規避風險,直至消除風險,獲得項目的成功。