軟件項(xiàng)目需求管理是指一個(gè)為系統(tǒng)的需求進(jìn)行啟發(fā)、組織、建檔的系統(tǒng)方法,一個(gè)建立和維護(hù)客戶和項(xiàng)目團(tuán)隊(duì)之間關(guān)于變更系統(tǒng)需求所達(dá)成的一致性的過程。軟件需求分析就是把軟件計(jì)劃期間建立的軟件可行性分析求精和細(xì)化,分析各種可能的解法,并且分配給各個(gè)軟件元素。需求分析是軟件定義階段中的最后一步,是確定系統(tǒng)必須完成哪些工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。那么,在實(shí)際管理工作中,會(huì)有哪些疑問呢?
1.需求工作涉及到哪些內(nèi)容
首先需求包括了產(chǎn)品需求,用戶需求,軟件需求。產(chǎn)品需求關(guān)注的是產(chǎn)品的標(biāo)準(zhǔn)化和通用化,會(huì)對(duì)收集到的用戶需求進(jìn)行分類和優(yōu)化,結(jié)合業(yè)界標(biāo)準(zhǔn)系統(tǒng)模型進(jìn)行抽象并通用化。用戶需求反映的是用戶面臨的問題域,根據(jù)問題域用戶期望的能夠達(dá)到的解決效果;而對(duì)于軟件需求則是用軟件工程的語言結(jié)構(gòu)化和文檔化的對(duì)用戶需求和產(chǎn)品需求的描述。
需求工作涉及到需求開發(fā)和需求管理。需求開發(fā)涉及到需求調(diào)研,需求收集,需求分析,需求開發(fā)等工作,其中的重點(diǎn)有業(yè)務(wù)流程,數(shù)據(jù)字典,業(yè)務(wù)規(guī)則,界面原型。對(duì)于基于面向?qū)ο蟮拈_發(fā)方法則涉及到業(yè)務(wù)用例,系統(tǒng)用例(涉眾,基本流,擴(kuò)展流,業(yè)務(wù)規(guī)則,界面,操作)等諸多內(nèi)容。需求管理工作涉及到需求的狀態(tài)管理,變更管理,需求的跟蹤,需求的驗(yàn)證和確認(rèn)等重要內(nèi)容。
在我們需求分析和開發(fā)中,最容易忽視的主要有兩點(diǎn),一個(gè)就是缺乏需求分析和開發(fā)的過程,把用戶需求直接作為了軟件需求,沒有需求建模和抽象的過程。另外一點(diǎn)就是對(duì)于性能,安全,易用性,可維護(hù)性和擴(kuò)展性等非功能性需求沒有考慮,導(dǎo)致開發(fā)出來的系統(tǒng)是一個(gè)不好用的半成品。CMMI把需求管理放到2級(jí),需求開發(fā)放到3級(jí),實(shí)際上真正的提高需求人員的需求分析和開發(fā)能力才是解決需求問題之道。需求分析開發(fā)做不好,需求變更或追蹤管的再好也沒有用處,在這點(diǎn)上一定不能本末倒置。
2.做好需求分析需要具備哪些知識(shí)
需求分析崗位主要承擔(dān)的是系統(tǒng)分析員的工作,做需求分析的人員要有軟件工程基礎(chǔ)知識(shí)的積累,而且最好有一定的軟件開發(fā)經(jīng)驗(yàn)積累。自己做過設(shè)計(jì)開發(fā)工作的才能夠體會(huì)到如何才能夠把系統(tǒng)做好,如何更好的把軟件需求和后續(xù)實(shí)現(xiàn)更好的銜接起來。有一本《軟件需求》的書講的很系統(tǒng),從事需求工作的都值得仔細(xì)閱讀。對(duì)于采用面向?qū)ο蟮男枨箝_發(fā)和分析方法的,一定要熟悉RUP統(tǒng)一過程和用例分析和建模。
對(duì)于管理軟件都離不開其涉及到的業(yè)務(wù)領(lǐng)域,因此要做好需求分析工作必須要熟悉管理軟件所涉及到的業(yè)務(wù)領(lǐng)域,對(duì)業(yè)務(wù)領(lǐng)域相關(guān)的標(biāo)準(zhǔn)模型進(jìn)行分析和研究,對(duì)業(yè)界的一些標(biāo)準(zhǔn)和最佳實(shí)踐進(jìn)行熟悉。比如做供應(yīng)鏈管理系統(tǒng)和軟件應(yīng)該熟悉業(yè)界標(biāo)準(zhǔn)的SCOR模型,做ERP的應(yīng)該結(jié)合現(xiàn)在的業(yè)界比較大的廠商的ERP產(chǎn)品進(jìn)行學(xué)習(xí),對(duì)于研發(fā)管理系統(tǒng)可以結(jié)合PACE和IPD等等。只有熟悉了業(yè)務(wù)領(lǐng)域才可能在需求調(diào)研和分析的時(shí)候提供很多有建設(shè)性的意見,或者說需求分析人員不是被用戶牽著走,而是真正的可以引導(dǎo)用戶。
3.項(xiàng)目需求分析的步驟和輸出有哪些
開始首先是需求的收集,需求收集可以通過調(diào)查表,訪談,業(yè)界標(biāo)準(zhǔn),會(huì)議討論溝通等多種方式進(jìn)行。需求收集第一是要能夠很好的描述現(xiàn)狀,第二是要搞清楚用戶的期望。同時(shí)一定要弱化用戶期望系統(tǒng)怎么做,因?yàn)橛脩舨⒉皇煜は到y(tǒng)實(shí)現(xiàn)和內(nèi)部原理,我們的軟件需求不僅僅考慮的是功能的實(shí)現(xiàn),還需要考慮需求復(fù)用,業(yè)務(wù)抽象,可擴(kuò)展和配置等多