事實(shí)上,項(xiàng)目總結(jié)工作應(yīng)作為現(xiàn)有項(xiàng)目或?qū)眄?xiàng)目持續(xù)改進(jìn)工作的一項(xiàng)重要內(nèi)容,同時(shí)也可以作為對(duì)項(xiàng)目合同、設(shè)計(jì)方案內(nèi)容與目標(biāo)的確認(rèn)和驗(yàn)證。項(xiàng)目總結(jié)工作包括項(xiàng)目中事先識(shí)別的風(fēng)險(xiǎn)和沒有預(yù)料到而發(fā)生的變更等風(fēng)險(xiǎn)的應(yīng)對(duì)措施的分析和總結(jié),也包括項(xiàng)目中發(fā)生的變更和項(xiàng)目中發(fā)生問題的分析統(tǒng)計(jì)的總結(jié)。
一、需求變更的管理
需求變更是因?yàn)樾枨蟀l(fā)生變化。根據(jù)軟件工程思想,需求說明書一般要經(jīng)過論證,如果在需求說明書經(jīng)過論證以后,需要在原有需求基礎(chǔ)上追加和補(bǔ)充新的需求或?qū)υ行枨筮M(jìn)行修改和削減,均屬于需求變更。需求變更的出現(xiàn)主要是因?yàn)樵陧?xiàng)目的需求確定階段,用戶往往不能確切地定義自己需要什么。
用戶常常以為自己清楚,但實(shí)際上他們提出的需求只是依據(jù)當(dāng)前的工作所需,而采用的新設(shè)備、新技術(shù)通常會(huì)改變他們的工作方式;或者要開發(fā)的系統(tǒng)對(duì)用戶來說也是個(gè)未知數(shù),他們以前沒有過相關(guān)的使用經(jīng)驗(yàn)。隨著開發(fā)工作的不斷進(jìn)展,系統(tǒng)開始展現(xiàn)功能的雛形,用戶對(duì)系統(tǒng)的了解也逐步深入。于是,他們可能會(huì)想到各種新的功能和特色,或?qū)σ郧疤岢龅囊筮M(jìn)行改動(dòng)。他們了解得越多,新的要求也就越多,需求變更因此不可避免地一次又一次出現(xiàn)。
這時(shí),如果開發(fā)團(tuán)隊(duì)缺少明確的需求變更控制過程或采用的變更控制機(jī)制無效,抑或不按變更控制流程來管理需求變更,那么很可能造成項(xiàng)目進(jìn)度拖延、成本不足、人力緊缺,甚至導(dǎo)致整個(gè)項(xiàng)目失敗。當(dāng)然,即使按照需求變更控制流程進(jìn)行管理,由于受進(jìn)度、成本等因素的制約,軟件質(zhì)量還是會(huì)受到不同程度的影響。但實(shí)施嚴(yán)格的軟件需求管理會(huì)最大限度地控制需求變更給軟件質(zhì)量造成的負(fù)面影響,這也正是我們進(jìn)行需求變更管理的目的所在。
實(shí)施需求變更管理需要遵循以下六大原則
?。?)建立需求基線
需求基線是需求變更的依據(jù)。在開發(fā)過程中,需求確定并經(jīng)過評(píng)審后(用戶參與評(píng)審),可以建立第一個(gè)需求基線。此后每次變更并經(jīng)過評(píng)審后,都要重新確定新的需求基線。
(2)制訂簡(jiǎn)單、有效的變更控制流程,并形成文檔
在建立了需求基線后提出的所有變更都必須遵循這個(gè)控制流程進(jìn)行控制。同時(shí),這個(gè)流程具有一定的普遍性,對(duì)以后的項(xiàng)目開發(fā)和其他項(xiàng)目都有借鑒作用。
(3)成立項(xiàng)目變更控制委員會(huì)(CCB)或相關(guān)職能的類似組織,負(fù)責(zé)裁定接受哪些變更。CCB由項(xiàng)目所涉及的多方人員共同組成,應(yīng)該包括用戶方和開發(fā)方的決策人員在內(nèi)。
?。?)需求變更一定要先申請(qǐng)然后再評(píng)估,最后經(jīng)過與變更大小相當(dāng)級(jí)別的評(píng)審確認(rèn)。
(5)需求變更后,受影響的軟件計(jì)劃、產(chǎn)品、活動(dòng)都要進(jìn)行相應(yīng)的變更,以保持和更新的需求一致。
?。?)妥善保存變更產(chǎn)生的相關(guān)文檔。
二、應(yīng)對(duì)之道
需求變更控制一般要經(jīng)過變更申請(qǐng)、變更評(píng)估、決策、回復(fù)這四大步驟。如果變更被接受,還要增加實(shí)施變更和驗(yàn)證兩個(gè)步驟,有時(shí)還會(huì)有取消變更的步驟。針對(duì)變更控制流程,在實(shí)際工作中總結(jié)出了軟件開發(fā)人員在需求變更管理實(shí)踐中的幾點(diǎn)對(duì)策:
1、優(yōu)先排序,分批實(shí)現(xiàn)
每個(gè)需求的重要性是不同的。由于資源或技術(shù)條件的限制,會(huì)顯得“僧多粥少”,因此不可能把所有的需求一次完成。怎么辦?把每個(gè)需求按照對(duì)效益的貢獻(xiàn)打個(gè)分,排出個(gè)優(yōu)先級(jí)來,優(yōu)先級(jí)高的需求先實(shí)現(xiàn),低的到一下版式本實(shí)現(xiàn)。
由于不斷有新的需求進(jìn)來,有的需求可能永遠(yuǎn)沒有機(jī)會(huì)被子實(shí)現(xiàn),但不緊,還是要記錄下來,并一起參加排序,保證在每個(gè)版本發(fā)布時(shí)重要的需求先得到滿足。每個(gè)需求的實(shí)現(xiàn)是需要花時(shí)