1.前言
參與過大型軟件項目的人都會認(rèn)識到許多事情都可能出錯,一但出錯就可能給項目帶來危害、損失或其它不利影響。風(fēng)險是在項目中發(fā)生的一系列事件或不利結(jié)果的可能性。軟件開發(fā)是一項高風(fēng)險的活動,在項目開發(fā)過程的任何一個階段都可能存在風(fēng)險。采取積極的風(fēng)險管理方式,可以使項目進程更加平穩(wěn),可以獲得很高的跟蹤和控制項目的能力,可以規(guī)避、轉(zhuǎn)移風(fēng)險,或緩解風(fēng)險帶來的不利影響。風(fēng)險管理是對項目風(fēng)險進行識別、分析、應(yīng)對和監(jiān)控的過程,是項目管理中很重要的管理活動,有效的實施軟件風(fēng)險管理是軟件項目開發(fā)工作順利完成的保證。風(fēng)險管理的達成必須包括三個要素:首先,在項目開發(fā)計劃中必須制定風(fēng)險管理計劃;第二,在項目預(yù)算中必須包含解決風(fēng)險所需的經(jīng)費;第三,評估風(fēng)險時,風(fēng)險的影響也必須納入項目計劃中。
下面就軟件開發(fā)過程中經(jīng)常發(fā)生的風(fēng)險,談?wù)勎覀儾扇〉念A(yù)防措施。
2.需求不明確
需求不明確是軟件開發(fā)過程中經(jīng)??赡苡龅降膯栴},這類問題往往表現(xiàn)在需求范圍未界定、需求未細化、需求描述不清楚、需求遺漏、需求互相矛盾等多個方面。在軟件開發(fā)過程的生命周期各階段中,需求不明確所造成的浪費是最大的,必須盡早盡可能解決。確定用戶需求是件非常困難的事情,我們常常從以下幾個方面著手處理需求不明確問題:
(1) 讓用戶參與開發(fā)
提供一個協(xié)作開發(fā)環(huán)境,讓用戶參與開發(fā)過程。如果條件不允許,至少應(yīng)該在每次迭代的需求分析和系統(tǒng)測試階段,讓客戶能夠參與開發(fā)。
在選擇參與開發(fā)過程的用戶時,一方面,要盡可能爭取精通業(yè)務(wù)或計算機技術(shù)的用戶參與。另一方面,如果開發(fā)的產(chǎn)品要在不同規(guī)模、不同類型的企業(yè)應(yīng)用,應(yīng)該選擇具有代表性的用戶參與。 僅僅讓用戶參與是不夠的,應(yīng)該采取一定的激勵措施,提高用戶參與的積極性。
(2) 開發(fā)用戶界面原型
用戶通常不善于精確描述自己的業(yè)務(wù)需求,系統(tǒng)分析員需要借助白板、白紙等溝通方式,幫助用戶清楚表述需求。然后,開發(fā)一個用戶界面原型,以便用戶確認(rèn)需求。用戶界面原型的作用僅僅是收集用戶需求,不應(yīng)該再作它用,也不要給用戶造成系統(tǒng)快要實現(xiàn)的錯覺。
(3) 需求討論會議
對于用戶分布廣、用戶量大的項目,要全面收集用戶需求,往往很困難,通常采取需求研計會議方式進行需求確認(rèn)。通過在會議前幾周調(diào)查各地、各部門用戶需求意見,然后集中各地或各部門的用戶代表,舉辦一次需求研討會,通過會議方式收集需求。本方法適合于具有一定信息系統(tǒng)使用經(jīng)驗的用戶。
(4) 強化需求分析與評審
首先,需求分析是項目成功的基礎(chǔ),需要引起足夠的重視,并分配充足的時間和人力,要讓有經(jīng)驗的系統(tǒng)分析員負責(zé),切忌讓項目新手或程序員負責(zé)。其次,要進行需求評審,盡可能讓用戶參與需求評審,不要讓需求評審流于行式。第三,也是最重要的一點,通過評審的需求規(guī)格說明書,要讓用戶方簽字,并作為項目合同的附件,對雙方都具有約束力。在公司內(nèi)部要將通過評審的需求規(guī)格說明書,納入配置管理。
3.項目缺少可見性
當(dāng)一個項目經(jīng)理或一名開發(fā)者說已經(jīng)完成了80%的任務(wù),您必須保持審慎的態(tài)度。因為剩下的20%可能還需要80%的時間,甚至永遠都不能完成[1]。軟件開發(fā)項目,往往在項目進度和軟件質(zhì)量方面缺少可見性,項目越缺少可見性,項目就越難以控制,項目就越有可能失敗。我們可以通過迭代開發(fā)、技術(shù)評審、持續(xù)集成來增強項目的可見性。
(1) 迭代開發(fā)
采用迭代的開發(fā)模型,將產(chǎn)品的交付過程分為多個階段,按照功能遞增式交付。以下是一些典型的迭代:
項目經(jīng)理勝任力免費測評PMQ上線啦!快來測測你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html