1 需求評審的重要性
在軟件項目中,需求分析是最開始的工作,同時也是最重要的工作。需求分析如果做得不夠詳細(xì)或者是偏離用戶需求或者是存在缺陷的話,往往會給項目帶來滅絕性的災(zāi)難,不重視需求過程的項目團隊將自食其果。因此,如何保證需求分析的正確、準(zhǔn)確性,成了決定軟件項目成敗的關(guān)鍵因素。在實際的項目過程中,需求階段往往是由一兩位需求分析人員與用戶溝通用戶需求,然后根據(jù)自己的理解輸出軟件需求說明書及軟件原型。
接下來的項目計劃、軟件設(shè)計、編碼、測試等各個環(huán)節(jié)都以此為基準(zhǔn)。俗話說,當(dāng)局者迷,旁觀者清,經(jīng)驗再豐富的需求分析人員也可能犯錯,所謂智者千慮,必有一失,這是永遠(yuǎn)不變的客觀規(guī)律。另外,受需求分析人員的理解及用戶的表達(dá)等因素的影響,需求在傳遞過程中往往存在很大偏差。
需求分析人員輸出的需求分析說明書,到設(shè)計人員、編碼人員、測試人員那里往往又會有不同的理解。因此,軟件需求分析說明書的正確性必須得到徹底的驗證,利益相關(guān)方必須徹底理解需求,并達(dá)成一致。要達(dá)成這一目標(biāo)、降低需求風(fēng)險,需求評審是一個行之有效的方法。
目前,很多小型軟件企業(yè)在需求階段,往往是需求人員寫完需求后再跟用戶溝通一下,就直接進(jìn)入設(shè)計開發(fā)階段了,設(shè)計、編碼、測試人員前期沒有參與進(jìn)來,根本沒有進(jìn)行需求評審。也有不少企業(yè)的需求評審存在“走過場”的情況,其他人員根本不關(guān)心軟件需求,認(rèn)為軟件需求就是需求分析人員的事情,他們怎么寫大家怎么做就可以了,在提需求異常時簡單找?guī)讉€錯別字提一下應(yīng)付了事,沒有提出有效的需求異常。也有的時候,在需求評審會議中,大家的關(guān)注點常常會不知不覺的轉(zhuǎn)向設(shè)計,結(jié)果需求評審會議成了設(shè)計討論會議,大家想得最多的是需求如何實現(xiàn),而不是需求文檔本身有無問題。
或者是因為沒有做好前期準(zhǔn)備工作,導(dǎo)致評審時間長、效率低,結(jié)果很多問題不了了之。這樣的評審,最終效果可想而知。
2 需求評審的關(guān)鍵
下文根據(jù)筆者多年參與軟件項目管理的切身體會及經(jīng)驗,從不同角度對需求評審方法進(jìn)行論述。
2·1 充分準(zhǔn)備評審
好的軟件需求說明書,是進(jìn)行有效需求評審的前提。
首先,需求人員在與用戶確認(rèn)需求的過程中,一定不要放過任何一個細(xì)節(jié),仔細(xì)體會用戶的每一個要求。對于用戶的要求,需求人員需要對其加以梳理:哪些是合理的需求,哪些是不合理的需求,還有一些可能是必要的但是用戶沒想到的需求。
軟件需求說明書不應(yīng)該只是用戶意愿的表達(dá),而應(yīng)該是從軟件層面上對用戶需求的總結(jié)。
軟件需求說明書對需求用例的描述一般分為基本流和擴展流,基本流是大家很容易想到的主要業(yè)務(wù)流程,而實際設(shè)計開發(fā)及測試過程中,最耗費時間的是實現(xiàn)擴展流的過程。因此不能只注重基本流,好的軟件需求說明書,擴展流一定遠(yuǎn)遠(yuǎn)多于基本流,擴展流寫得越完善,說明需求人員考慮得越周全。
而實質(zhì)上,如果擴展流寫得不完善,后期的設(shè)計、開發(fā)及測試人員往往在相應(yīng)的細(xì)節(jié)處理上無所適從。
2·2分層次評審
用戶的需求是可以分層次的,一般而言分成以下層次:
?、倌繕?biāo)性需求,定義整個系統(tǒng)需要達(dá)到的目標(biāo);
②功能性需求,定義了整個系統(tǒng)必須完成的任務(wù);
?、鄄僮餍孕枨?定義了完成每個任務(wù)的具體的人機交互;目標(biāo)性需求是企業(yè)的高層管理人員所關(guān)注的,功能性需求是企業(yè)的中層管理人員所關(guān)注的,操作性需求是企業(yè)的具體操作人員所關(guān)注的。
對不同層次的需求,其描述形式是有區(qū)別的,參與評審的人員也是不同的。如果讓具體的操作人員去評審目標(biāo)性需求,可能會很容易地導(dǎo)致“