軟件需求變更如何應對?
2015-06-23 15:35:08 訪問:
在軟件開發(fā)過程中軟件開發(fā)需求的變更會給軟件開發(fā)帶來不確定性,但只要把軟件開發(fā)需求變更作為重點、難點小心加以控制,軟件開發(fā)的進度、成本和質(zhì)量也就有了"安全"的基礎。
根據(jù)軟件工程思想,軟件開發(fā)需求說明書一般要經(jīng)過論證,如果在軟件開發(fā)需求說明書經(jīng)過論證以后,需要在原有軟件開發(fā)需求基礎上追加和補充新的軟件開發(fā)需求或?qū)υ熊浖_發(fā)需求進行修改和削減,均屬于軟件開發(fā)需求變更。
軟件開發(fā)需求變更的出現(xiàn)主要是因為在項目的軟件開發(fā)需求確定階段,用戶往往不能確切地定義自己需要什么。用戶常常以為自己清楚,但實際上他們提出的軟件開發(fā)需求只是依據(jù)當前的工作所需,而采用的新設備、新技術通常會改變他們的工作方式;或者要軟件開發(fā)的系統(tǒng)對用戶來說也是個未知數(shù),他們以前沒有過相關的使用經(jīng)驗。隨著軟件開發(fā)工作的不斷進展,系統(tǒng)開始展現(xiàn)功能的雛形,用戶對系統(tǒng)的了解也逐步深入。于是,他們可能會想到各種新的功能和特色,或?qū)σ郧疤岢龅囊筮M行改動。他們了解得越多,新的要求也就越多,軟件開發(fā)需求變更因此不可避免地一次又一次出現(xiàn)。
軟件開發(fā)需求變更控制一般要經(jīng)過變更申請、變更評估、決策、回復這四大步驟。如果變更被接受,還要增加實施變更和驗證兩個步驟,有時還會有取消變更的步驟。變更控制流程如圖所示。針對變更控制流程,筆者在實際工作中總結出了軟件開發(fā)人員在軟件開發(fā)需求變更管理實踐中的幾點對策:
相互協(xié)作 很難想像遭到用戶抵制的項目能夠成功。在討論軟件開發(fā)需求時,軟件開發(fā)人員與用戶應該盡量采取相互理解、相互協(xié)作的態(tài)度,對能解決的問題盡量解決。即使用戶提出了在軟件開發(fā)人員看來"過分"的要求,也應該仔細分析原因,積極提出可行的替代方案。
充分交流 軟件開發(fā)需求變更管理的過程很大程度上就是用戶與軟件開發(fā)人員的交流過程。軟件開發(fā)人員必須學會認真聽取用戶的要求、考慮和設想,并加以分析和整理。同時,軟件開發(fā)人員應該向用戶說明,進入設計階段以后,再提出軟件開發(fā)需求變更會給整個軟件開發(fā)工作帶來什么樣的沖擊和不良后果。
安排專職人員負責軟件開發(fā)需求變更管理 有時軟件開發(fā)任務較重,軟件開發(fā)人員容易陷入軟件開發(fā)工作中而忽略了與用戶的隨時溝通,因此需要一名專職的軟件開發(fā)需求變更管理人員負責與用戶及時交流。
合同約束 軟件開發(fā)需求變更給軟件開發(fā)帶來的影響有目共睹,所以在與用戶簽訂合同時,可以增加一些相關條款,如限定用戶提出軟件開發(fā)需求變更的時間,規(guī)定何種情況的變更可以接受、拒絕接受或部分接受,還可以規(guī)定發(fā)生軟件開發(fā)需求變更時必須執(zhí)行變更控制流程。
區(qū)別對待 隨著軟件開發(fā)進展,有些用戶會不斷提出一些在項目組看來確實無法實現(xiàn)或工作量比較大、對項目進度有重大影響的軟件開發(fā)需求。遇到這種情況,軟件開發(fā)人員可以向用戶說明,項目的啟動是以最初的基本軟件開發(fā)需求作為軟件開發(fā)前提的,如果大量增加新的軟件開發(fā)需求(雖然用戶認為是細化軟件開發(fā)需求,但實際上是增加了工作量的新軟件開發(fā)需求),會使項目不能按時完成。如果用戶堅持實施新軟件開發(fā)需求,可以建議用戶將新軟件開發(fā)需求按重要和緊迫程度劃分檔次,作為軟件開發(fā)需求變更評估的一項依據(jù)。同時,還要注意控制新軟件開發(fā)需求提出的頻率。
選用適當?shù)能浖_發(fā)模型 采用建立原型的軟件開發(fā)模型比較適合軟件開發(fā)需求不明確的軟件開發(fā)項目。軟件開發(fā)人員先根據(jù)用戶對軟件開發(fā)需求的說明建立一個系統(tǒng)原型,再與用戶溝通。一般用戶看到一些實際的東西后,對軟件開發(fā)需求會有更為詳細的解釋,軟件開發(fā)人員可根據(jù)用戶的說明進一步完善系統(tǒng)原型。這個過程重復幾次后,系統(tǒng)原型逐漸向最終的用戶軟件開發(fā)需求靠攏,從根本上減少軟件開發(fā)需求變更的出現(xiàn)。目前業(yè)界較為流行的疊代式軟件開發(fā)方法對工期緊迫的項目的軟件開發(fā)需求變更控制很有成效。
用戶參與軟件開發(fā)需求評審 作為軟件開發(fā)需求的提出者,用戶理所當然是最具權威的發(fā)言人之一。實際上,在軟件開發(fā)需求評審過程中,用戶往往能提出許多有價值的意見。同時,這也是由用戶對軟件開發(fā)需求進行最后確認的機會,可以有效減少軟件開發(fā)需求變更的發(fā)生。