戶的需要。此外還經(jīng)常會(huì)有一份工作合同來(lái)約束開(kāi)發(fā)團(tuán)隊(duì)和軟件使用方之間的工作關(guān)系。開(kāi)發(fā)團(tuán)隊(duì)要把握好這三個(gè)因素之間的互動(dòng)關(guān)系,把它們互相關(guān)聯(lián)起來(lái)進(jìn)行有機(jī)的管理,這能大大提高項(xiàng)目成功的幾率。
經(jīng)驗(yàn)3:重視非功能性需求(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)4:將需求可視化(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)5:使需求具備可測(cè)試性(Testable)
產(chǎn)生良好需求的另一種行之有效的方法,就是從初期就確保每個(gè)需求具備明確的可驗(yàn)證性,這種做法不僅有助于為項(xiàng)目后續(xù)階段做好準(zhǔn)備,還可以幫助編寫(xiě)者保持正確的思路。
對(duì)于非功能性需求此規(guī)則也同樣適用,例如,對(duì)于“軟件必須具有高可用性”這種表述的需求我們無(wú)法進(jìn)行測(cè)試,而改寫(xiě)成明確的“普通用戶應(yīng)能夠在3分鐘內(nèi)生成一個(gè)報(bào)告”就使該需求具備了可驗(yàn)證性。
經(jīng)驗(yàn)6:在客戶需求和開(kāi)發(fā)能力之間找到平衡
許多情況下,較少的需求數(shù)量有助于產(chǎn)生更加優(yōu)秀的需求描述。軟件工程項(xiàng)目不可能實(shí)現(xiàn)既采納和滿足企業(yè)所有用戶的需求、營(yíng)銷理念和商業(yè)計(jì)劃,同時(shí)還符合預(yù)算并能按期交付。項(xiàng)目經(jīng)理必須找到客戶需求和開(kāi)發(fā)能力之間的平衡點(diǎn),確定可為客戶帶來(lái)最大價(jià)值,并幫助企業(yè)提升創(chuàng)新能力的那些需求,而不是一味地試圖滿足用戶所有需求。
經(jīng)驗(yàn)7:管理好需求變更
大多數(shù)軟件工程項(xiàng)目中,來(lái)自用戶的需求經(jīng)常會(huì)發(fā)生變化。隨著項(xiàng)目的進(jìn)展,開(kāi)發(fā)團(tuán)隊(duì)要保持清醒的頭腦、按照工程要求做出相應(yīng)調(diào)整,并響應(yīng)不斷變化的市場(chǎng)形勢(shì)和客戶需要。僅僅編寫(xiě)出完美的首版需求描述是不夠的,如果未能對(duì)需求的變更過(guò)程進(jìn)行恰當(dāng)管理,那么控制不善的變更便可能導(dǎo)致系統(tǒng)和軟件功能缺失、返工以及利潤(rùn)損失。開(kāi)發(fā)團(tuán)隊(duì)?wèi)?yīng)該實(shí)施可靠的、可重復(fù)的變更控制流程,借助Telelogic DOORS?、Telelogic Change?等工具,實(shí)施成熟的變更管理解決是一個(gè)良好途徑。
經(jīng)驗(yàn)8:善于利用監(jiān)測(cè)與跟蹤工具
復(fù)雜的項(xiàng)目都要求實(shí)現(xiàn)自動(dòng)數(shù)據(jù)收集功能和簡(jiǎn)便的報(bào)告流程,以簡(jiǎn)化項(xiàng)目管理工作。同樣地,項(xiàng)目經(jīng)理和所有利益相關(guān)者都應(yīng)擁有計(jì)量和趨勢(shì)的“管理面板”,該面板可幫助他們快速監(jiān)視項(xiàng)目活動(dòng)(如,進(jìn)展、增長(zhǎng)和實(shí)際需求的變動(dòng)等)。
項(xiàng)目經(jīng)理應(yīng)將其主要精力放在制定決策上,而不是放在手動(dòng)收集數(shù)據(jù)和編制報(bào)告方面。更為重要的是,必須高水準(zhǔn)地顯示主要需求的監(jiān)視信息,從而使用戶能夠根據(jù)異常情況實(shí)施管理,并迅速查明故障區(qū)域。如果某需求或整個(gè)子系統(tǒng)變更頻繁,則表示應(yīng)就該需求對(duì)客戶進(jìn)行二次調(diào)查。如果執(zhí)行階段出現(xiàn)大規(guī)模返工的情況