變化并不是人們最害怕的,最怕的是跟不上變化的步伐。同樣,在軟件開發(fā)過程中需求的變更會給開發(fā)帶來不確定性,但只要把需求變更作為重點、難點小心加以控制,軟件開發(fā)的進度、成本和質(zhì)量也就有了"安全"的基礎(chǔ)。
需求變更管理的需求
需求變更是因為需求發(fā)生變化。根據(jù)軟件工程思想,需求說明書一般要經(jīng)過論證,如果在需求說明書經(jīng)過論證以后,需要在原有需求基礎(chǔ)上追加和補充新的需求或?qū)υ行枨筮M行修改和削減,均屬于需求變更。
需求變更的出現(xiàn)主要是因為在項目的需求確定階段,用戶往往不能確切地定義自己需要什么。用戶常常以為自己清楚,但實際上他們提出的需求只是依據(jù)當前的工作所需,而采用的新設(shè)備、新技術(shù)通常會改變他們的工作方式;或者要開發(fā)的系統(tǒng)對用戶來說也是個未知數(shù),他們以前沒有過相關(guān)的使用經(jīng)驗。隨著開發(fā)工作的不斷進展,系統(tǒng)開始展現(xiàn)功能的雛形,用戶對系統(tǒng)的了解也逐步深入。于是,他們可能會想到各種新的功能和特色,或?qū)σ郧疤岢龅囊筮M行改動。他們了解得越多,新的要求也就越多,需求變更因此不可避免地一次又一次出現(xiàn)。
這時,如果開發(fā)團隊缺少明確的需求變更控制過程或采用的變更控制機制無效,抑或不按變更控制流程來管理需求變更,那么很可能造成項目進度拖延、成本不足、人力緊缺,甚至導致整個項目失敗。當然,即使按照需求變更控制流程進行管理,由于受進度、成本等因素的制約,軟件質(zhì)量還是會受到不同程度的影響。但實施嚴格的軟件需求管理會最大限度地控制需求變更給軟件質(zhì)量造成的負面影響,這也正是我們進行需求變更管理的目的所在。
六大原則
實施需求變更管理需要遵循如下原則:
1.建立需求基線。需求基線是需求變更的依據(jù)。在開發(fā)過程中,需求確定并經(jīng)過評審后(用戶參與評審),可以建立第一個需求基線。此后每次變更并經(jīng)過評審后,都要重新確定新的需求基線。
2.制訂簡單、有效的變更控制流程,并形成文檔。在建立了需求基線后提出的所有變更都必須遵循這個控制流程進行控制。同時,這個流程具有一定的普遍性,對以后的項目開發(fā)和其他項目都有借鑒作用。
3.成立項目變更控制委員會(CCB)或相關(guān)職能的類似組織,負責裁定接受哪些變更。CCB由項目所涉及的多方人員共同組成,應(yīng)該包括用戶方和開發(fā)方的決策人員在內(nèi)。
4.需求變更一定要先申請然后再評估,最后經(jīng)過與變更大小相當級別的評審確認。
5.需求變更后,受影響的軟件計劃、產(chǎn)品、活動都要進行相應(yīng)的變更,以保持和更新的需求一致。
6.妥善保存變更產(chǎn)生的相關(guān)文檔。
應(yīng)對之道
需求變更控制一般要經(jīng)過變更申請、變更評估、決策、回復(fù)這四大步驟。如果變更被接受,還要增加實施變更和驗證兩個步驟,有時還會有取消變更的步驟。變更控制流程如圖所示。針對變更控制流程,筆者在實際工作中總結(jié)出了軟件開發(fā)人員在需求變更管理實踐中的幾點對策:
相互協(xié)作 很難想像遭到用戶抵制的項目能夠成功。在討論需求時,開發(fā)人員與用戶應(yīng)該盡量采取相互理解、相互協(xié)作的態(tài)度,對能解決的問題盡量解決。即使用戶提出了在開發(fā)人員看來"過分"的要求,也應(yīng)該仔細分析原因,積極提出可行的替代方案。
充分交流 需求變更管理的過程很大程度上就是用戶與開發(fā)人員的交流過程。軟件開發(fā)人員必須學會認真聽取用戶的要求、考慮和設(shè)想,并加以分析和整理。同時,軟件開發(fā)人員應(yīng)該向用戶說明,進入設(shè)計階段以后,再提出需求變更會給整個開發(fā)工作帶來什么樣的沖擊和不良后果。
安排專職人員負責需求變更管理 有時開發(fā)任務(wù)較重,開發(fā)人員容易陷入開發(fā)工作中而忽略了與用戶的隨時溝通,因此需要一名專職的需求變更管理人員負責與用戶及時交流。
合同約束 需求變
項目經(jīng)理勝任力免費測評PMQ上線啦!快來測測你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html