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