在我們的各個(gè)軟件項(xiàng)目中,出現(xiàn)的大部分問(wèn)題都是和需求有關(guān)。可以毫不夸張的說(shuō),把需求工作做好,一個(gè)軟件項(xiàng)目就成功了80%。
需求工作涉及到客戶方、開(kāi)發(fā)方,雙方的人員需要進(jìn)行溝通、討論、分析、確認(rèn)。由此可見(jiàn),需求工作唯有在雙方人員的共同努力之下才能做好。
1. 客戶方人員忙,沒(méi)有足夠的精力參與需求工作。這個(gè)問(wèn)題表現(xiàn)出了需求過(guò)程中缺乏用戶的參與,這樣的需求必定是會(huì)出問(wèn)題的。
2. 客戶看到系統(tǒng)后說(shuō)不是他們想要的。這個(gè)問(wèn)題對(duì)于開(kāi)發(fā)方是否真正了解了客戶的需求提出了疑問(wèn)。
3. 客戶的需求又變了。這個(gè)問(wèn)題對(duì)于如何確保客戶不能輕易改變需求提出了挑戰(zhàn)。
4. ……
由此,我們可以看出,這其中關(guān)系到需求工作中的幾個(gè)問(wèn)題:What -> How -> Why。我們往往能做到What,但很少能做到How、甚至Why。
1. 需求的層次理論
業(yè)務(wù)需求:描述項(xiàng)目的目標(biāo)與范圍;
用戶需求:通過(guò)用例、場(chǎng)景、事件來(lái)描述用戶希望通過(guò)軟件實(shí)現(xiàn)的內(nèi)容;
功能需求:描述軟件為用戶提供的一系列功能,以滿足用戶的業(yè)務(wù)需要。
通過(guò)對(duì)于業(yè)務(wù)需求、用戶需求、功能需求的獲取、分析、整理和確認(rèn)工作,并加入系統(tǒng)的非功能需求及相關(guān)的約束條件,最終形成系統(tǒng)的軟件需求規(guī)格說(shuō)明文檔。該文檔在項(xiàng)目中具有重要的意義,將為設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、驗(yàn)收起到指導(dǎo)性的作用。
2. 需求工作貫穿于軟件項(xiàng)目生命周期
需求是貫穿于整個(gè)項(xiàng)目生命全周期的工作
在項(xiàng)目的前期準(zhǔn)備階段,我們需要了解客戶方的業(yè)務(wù)需求;
在項(xiàng)目啟動(dòng)后的需求工作中,要進(jìn)行用戶需求的獲取、整理工作;
在獲得用戶需求后,我們要進(jìn)行分析、討論、確認(rèn),并形成最終的軟件需求文檔;
在項(xiàng)目的設(shè)計(jì)、開(kāi)發(fā)階段,需求對(duì)于設(shè)計(jì)起到定義、指導(dǎo)的作用;
在系統(tǒng)的測(cè)試、驗(yàn)收工作中,需求文檔又起到標(biāo)準(zhǔn)、規(guī)范的作用。
由此可見(jiàn),在整個(gè)軟件項(xiàng)目的生命周期中,需求工作是貫穿項(xiàng)目始終的。需求工作的重要性及我們應(yīng)當(dāng)對(duì)于需求工作重視的必要性可見(jiàn)一斑。
3. 需求工程理論
隨著軟件工程理論的不斷發(fā)展及在實(shí)踐中的應(yīng)用和豐富,軟件的需求工作已經(jīng)采用工程化的思想來(lái)進(jìn)行開(kāi)展。具體來(lái)講,需求工程分為兩大部分:需求開(kāi)發(fā)和需求管理。
需求開(kāi)發(fā)在項(xiàng)目前期是整個(gè)項(xiàng)目中最為重要的工作;
需求管理則是在需求定下基線后重要的項(xiàng)目管理內(nèi)容,它為確保項(xiàng)目的穩(wěn)步進(jìn)行、順利開(kāi)展起到重要的作用。
我們?cè)谲浖?xiàng)目的需求工作中,一定要充分應(yīng)用需求工程理論,充分做好需求,以保證軟件項(xiàng)目的順利進(jìn)行。
三、 需求工作方法論
針對(duì)我們?cè)谛枨蠊ぷ髦杏龅降膯?wèn)題,我們?cè)谏厦嬉呀?jīng)進(jìn)行了總結(jié)與歸納。為解決在需求工作中遇到的問(wèn)題,更好的做好軟件項(xiàng)目的需求工作,我們總結(jié)的方法有:
1. 提升業(yè)務(wù)經(jīng)驗(yàn)
在我們與客戶的交流過(guò)程中,我們?nèi)绻麑?duì)于客戶方的