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