近年來(lái),“需求管理”正成為中國(guó)當(dāng)前工程應(yīng)用和商業(yè)熱域的熱點(diǎn)。目前,有關(guān)需求管理的實(shí)踐大量應(yīng)用于軟件開(kāi)發(fā)工程等領(lǐng)域,軟件開(kāi)發(fā)團(tuán)隊(duì)在開(kāi)始一個(gè)新的項(xiàng)目之前,會(huì)通過(guò)詳細(xì)的用戶需求調(diào)研準(zhǔn)確捕獲了用戶需求并匯總分析后,再進(jìn)行下一步的設(shè)計(jì)與實(shí)施工作,以避免因未能正確識(shí)別用戶的真正需求而導(dǎo)致不斷返工和工作成本增加。對(duì)于從事軟件工程的程序員們來(lái)說(shuō),在進(jìn)行項(xiàng)目開(kāi)發(fā)之前創(chuàng)建和管理良好的需求是非常重要的第一步,同時(shí)也是一項(xiàng)挑戰(zhàn)。需求表述不當(dāng)可帶來(lái)重大影響,如耗時(shí)返工、延期交付及預(yù)算超支,嚴(yán)重的還可造成業(yè)務(wù)違規(guī)。因此,開(kāi)發(fā)團(tuán)隊(duì)需要首先有效定義和管理需求,才能確保在保證進(jìn)度和控制預(yù)算的同時(shí),產(chǎn)品能夠滿足用戶所需。本文旨在闡述良好需求描述的特征,并介紹有助于更好地編寫(xiě)軟件工程需求說(shuō)明文檔的幾點(diǎn)經(jīng)驗(yàn),以幫助軟件開(kāi)發(fā)團(tuán)隊(duì)能夠更快更好地取得投資收益。
1.高質(zhì)量需求的特征
首先的問(wèn)題是,何為良好的需求?一般而言,一項(xiàng)編寫(xiě)良好的需求描述,應(yīng)該包含以下特征:
良好需求的特征 含義
正確(Correct) 技術(shù)可行,內(nèi)容合法
完整(Complete) 能夠表達(dá)一個(gè)完整的想法
清晰(Clear) 不模棱兩可,不易被誤導(dǎo)
一致性(Consistent) 不與其它需求相沖突
可驗(yàn)證性(Verifiable) 可驗(yàn)證系統(tǒng)能夠滿足用戶需要
可追蹤性(Traceable) 可唯一識(shí)別并進(jìn)行跟蹤
可行性(Feasible) 可在預(yù)期成本和計(jì)劃進(jìn)度內(nèi)完成
模塊化(Modular) 可單獨(dú)變更而不會(huì)造成較大影響
獨(dú)立于設(shè)計(jì)(Design-independent) 不包括項(xiàng)目設(shè)計(jì)和實(shí)現(xiàn)的細(xì)節(jié)、計(jì)劃信息等
2. 提高需求編寫(xiě)質(zhì)量的十佳經(jīng)驗(yàn)
在明確了何為良好的需求之后,以下介紹幾點(diǎn)可以幫助開(kāi)發(fā)團(tuán)隊(duì)編寫(xiě)出更好的需求描述的方法,加速軟件工程投資回報(bào)率。
經(jīng)驗(yàn)1:將需求結(jié)構(gòu)化(Structuring)
每一項(xiàng)需求既不能被重復(fù)描述也不能被遺漏,訣竅之一是將需求結(jié)構(gòu)化。需求組織應(yīng)具有良好的結(jié)構(gòu),以增進(jìn)理解,同時(shí)避免出現(xiàn)重復(fù)和忽略的情況。同時(shí),須具備對(duì)需求的向上和向下的追溯能力之后,團(tuán)隊(duì)才能夠評(píng)估需求的覆蓋范圍。結(jié)構(gòu)化組織需求是控制和改善需求質(zhì)量的第一步。
經(jīng)驗(yàn)2:重視非功能性需求(Constraints)
對(duì)于編寫(xiě)需求說(shuō)明書(shū)而言,涉及法規(guī)遵從和提高軟件系統(tǒng)質(zhì)量的非功能性需求(又稱約束條件,Constraints)同樣重要,它們通常包括軟件的性能、界面和可維護(hù)性等方面。編寫(xiě)良好需求應(yīng)包含對(duì)約束條件的覆蓋,原因是一旦如下領(lǐng)域(例如,性能、可靠性和易用性等)在開(kāi)發(fā)完成后出現(xiàn)缺陷,通常都無(wú)法在系統(tǒng)中對(duì)其進(jìn)行重新設(shè)計(jì)。因此,在項(xiàng)目初期將所有類型的非功能性需求考慮在內(nèi),可幫助開(kāi)發(fā)團(tuán)隊(duì)大幅提高項(xiàng)目成功的幾率。
經(jīng)驗(yàn)3:將需求可視化(Visualization)
大多數(shù)需求分析人員發(fā)現(xiàn)建模有助于直觀化文字形式的需求。無(wú)論是在白板上繪圖、使用Microsoft PowerPoint演示工具,還是僅僅在腦海中構(gòu)建一個(gè)模型,都可視為一種建模方法。以上這種圖型化的文檔應(yīng)與文字形式的需求描述一起統(tǒng)一管理,以確保一致性、可跟蹤性和變更控制能力??梢暬枨蠼L峁┝艘环N與客戶及最終用戶溝通的簡(jiǎn)單而有效的方法,通過(guò)該方法可較容易地掌握客戶和最終用戶的需求。此外,圖型化還有助于闡明需求,增進(jìn)軟件項(xiàng)目所有相關(guān)人員之間的溝通與協(xié)作。
經(jīng)驗(yàn)4:使需求具備可測(cè)試性(Testable)
產(chǎn)生良好需求的另一種行之有效的方法,就是從初期就確保每個(gè)需求具備明確的可驗(yàn)證性,這種做法不僅有助于為項(xiàng)目后續(xù)階段做好準(zhǔn)備,還可以幫助編寫(xiě)者保持正確的思路。對(duì)于非功能性需求此規(guī)則也同樣適用,例如
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://m.opto-elec.com.cn/pmqhd/index.html