需求表述不善可帶來毀滅性影響,其所引發(fā)的多米諾效應(yīng)可導(dǎo)致耗時返工、延期交付及預(yù)算超支,嚴(yán)重的還可造成業(yè)務(wù)違規(guī)甚至人員傷亡。
近年來,隨著ISO9000、CMM/CMMI、六西格碼等國際標(biāo)準(zhǔn)逐步引入中國,“需求管理”正成為中國當(dāng)前工程應(yīng)用和商業(yè)熱域的熱點。目前,有關(guān)需求管理的實踐大量應(yīng)用于軟件開發(fā)工程等領(lǐng)域,軟件開發(fā)團(tuán)隊在開始一個新的項目之前,會通過詳細(xì)的用戶需求調(diào)研準(zhǔn)確捕獲了用戶需求并匯總分析后,再進(jìn)行下一步的設(shè)計與實施工作,以避免因未能正確識別用戶的真正需求而導(dǎo)致不斷返工和工作成本增加。
對于從事軟件工程的程序員們來說,在進(jìn)行項目開發(fā)之前創(chuàng)建和管理良好的需求是非常重要的第一步,同時也是一項挑戰(zhàn)。需求表述不善可帶來毀滅性影響,其引發(fā)的多米諾效應(yīng)可導(dǎo)致耗時返工、延期交付及預(yù)算超支,嚴(yán)重的還可造成業(yè)務(wù)違規(guī)甚至人員傷亡。因此,開發(fā)團(tuán)隊需要首先有效定義和管理需求,才能確保在保證進(jìn)度和控制預(yù)算的同時,產(chǎn)品能夠滿足用戶所需。
良好需求的特征 含義
正確(Correct) 技術(shù)可行,內(nèi)容合法
完整(Complete) 能夠表達(dá)一個完整的想法
清晰(Clear) 不模棱兩可,不易被誤導(dǎo)
一致性(Consistent) 不與其它需求相沖突
可驗證性(Verifiable) 可驗證系統(tǒng)能夠滿足用戶需要
可追蹤性(Traceable) 可唯一識別并進(jìn)行跟蹤
可行性(Feasible) 可在預(yù)期成本和計劃進(jìn)度內(nèi)完成
模塊化(Modular) 可單獨變更而不會造成較大影響
獨立于設(shè)計(Design-independent) 不包括項目設(shè)計和實現(xiàn)的細(xì)節(jié)、計劃信息等
本文旨在闡述良好需求描述的特征,并介紹有助于更好地編寫軟件工程需求說明文檔的十佳經(jīng)驗,以幫助軟件開發(fā)團(tuán)隊能夠更快更好地取得投資收益。
高質(zhì)量需求的特征
首先的問題是,何為良好的需求?一般而言,一項編寫良好的需求描述,應(yīng)該包含以下特征(見表1):
同時,一項需求描述應(yīng)該用一個包含主語和謂語的完整句子來表述,使用“應(yīng)該”“必須”等詞來表明其強(qiáng)制性,使用“可以”等詞來指明可選性。一個完整的需求還應(yīng)寫明預(yù)期達(dá)成的目標(biāo),并包含質(zhì)量的達(dá)標(biāo)標(biāo)準(zhǔn)或其它可測量的指標(biāo)。
提高需求編寫質(zhì)量的十佳經(jīng)驗
在明確了何為良好的需求之后,以下介紹十個可以幫助開發(fā)團(tuán)隊編寫出更好的需求描述的方法,加速軟件工程投資回報率。
經(jīng)驗1:將需求結(jié)構(gòu)化(Structuring)
每一項需求既不能被重復(fù)描述也不能被遺漏,訣竅之一是將需求結(jié)構(gòu)化。需求組織應(yīng)具有良好的結(jié)構(gòu),以增進(jìn)理解,同時避免出現(xiàn)重復(fù)和忽略的情況。同時,須具備對需求的向上和向下的追溯能力之后,團(tuán)隊才能夠評估需求的覆蓋范圍。結(jié)構(gòu)化組織需求是控制和改善需求質(zhì)量的第一步。
經(jīng)驗2:把握好用戶需要(customer needs)、項目需求(requirments)和合同文本(contractual documents)之間的互動關(guān)系
用戶需要是指軟件的使用者對于軟件所能實現(xiàn)的功能的期望及操作便利性上的要求;軟件工程項目中的需求,則是將這些用戶需要通過特定的描述方法重新表述為程序開發(fā)者可以識別并據(jù)此工作的說明性語句。
一個項目需求通常會比用戶的某項需要在描述上更加共性化,以便滿足多個用