需求管理是軟件開發(fā)生命周期的初始階段,它對(duì)最終提交的軟件產(chǎn)品的質(zhì)量起著至關(guān)重要的作用。一位咨詢師朋友告訴我,在美國(guó),超過60%的軟件項(xiàng)目失敗都是因?yàn)椴豢茖W(xué)的需求管理。另外,80%的項(xiàng)目延誤也源于不斷改變的需求。由此可見,需求管理是整個(gè)軟件開發(fā)過程中至關(guān)重要的一部分;尤其是對(duì)于大型項(xiàng)目,科學(xué)的需求管理在降低風(fēng)險(xiǎn)上的作用更是無(wú)法估量。
軟件開發(fā)實(shí)踐表明,讓所有項(xiàng)目成員獲得準(zhǔn)確的需求,是進(jìn)行需求管理的根本;在此基礎(chǔ)上,還應(yīng)保證所有的需求變更都是在可控制的情況下進(jìn)行。除需求分析師外,所有其他相關(guān)人員,如項(xiàng)目經(jīng)理、開發(fā)組長(zhǎng)、QA經(jīng)理等,如能參與到需求評(píng)審中,不僅有利于管理需求,還能進(jìn)一步保證需求與業(yè)務(wù)實(shí)際更加匹配。對(duì)于需求變更,在執(zhí)行之前分析其潛在影響,進(jìn)行有針對(duì)性的人員和資源配置,都將提高需求變更的實(shí)現(xiàn)效率。
需求管理工具現(xiàn)狀
對(duì)于市面上的需求管理工具,我主要有以下三方面的看法。首先,目前很多需求管理工具都與開發(fā)過程脫節(jié)。許多時(shí)候,開發(fā)工具與需求管理工具必須協(xié)同工作,然而,開發(fā)人員與需求分析師卻不能進(jìn)行有效的數(shù)據(jù)交流。另外,需求文檔和知識(shí)庫(kù)的分離,也不利于需求分析師了解各個(gè)需求的進(jìn)展情況,而且限制了高層管理人員對(duì)跨部門工作的全局了解。
另一方面,有越來(lái)越多的企業(yè),受到諸如塞班斯法等新法規(guī)的影響,不得不開始大范圍使用需求管理工具。這在某種程度上為市場(chǎng)造就了一批針對(duì)特定行業(yè)的需求管理軟件。這些軟件多數(shù)適用于對(duì)需求有嚴(yán)格控制的行業(yè),如航空航天和軍工行業(yè)等。然而,對(duì)于普通行業(yè)市場(chǎng),企業(yè)更需要的是實(shí)用、集成的需求管理解決方案。Forrester最近的一份報(bào)告指出,大部分企業(yè)都缺乏成熟的需求收集機(jī)制和體系;在這種情況下,即便實(shí)施功能強(qiáng)大的工具,企業(yè)也沒有能力來(lái)充分利用各種功能和設(shè)置,更不用說(shuō)有效利用這些工具來(lái)管理需求了。
另外,針對(duì)傳統(tǒng)的瀑布式開發(fā),所有的需求都在開發(fā)開始之前完成。然而,對(duì)于目前被廣泛采用的增量或迭代開發(fā)模式,需求常常是由需求制造者和消費(fèi)者不斷交流所產(chǎn)生的,也是不斷變化的。因此,有效的解決方案必須滿足在類似增量或迭代開發(fā)模式下的需求管理。
集成的、全局的需求管理方法
基于對(duì)一些成功軟件組織的經(jīng)驗(yàn)分析,我們認(rèn)為企業(yè)真正需要的是一款集成的需求管理解決方案,幫助企業(yè)進(jìn)行可監(jiān)控、可跟蹤、可驗(yàn)證的需求管理。它需要提供一個(gè)框架以供創(chuàng)建新的需求、功能和規(guī)格,并與開發(fā)任務(wù)和測(cè)試任務(wù)相關(guān)聯(lián)。需求分析團(tuán)隊(duì)和開發(fā)團(tuán)隊(duì)才能通過這個(gè)集成的解決方案協(xié)同工作。
這種集成的方案不僅能提高需求管理工具的性價(jià)比,也有利于項(xiàng)目團(tuán)隊(duì)的內(nèi)部交流。開發(fā)團(tuán)隊(duì)可以及時(shí)獲得需求信息;需求分析師能通過查看需求的進(jìn)展情況來(lái)確定可能會(huì)發(fā)生的需求變更;高層管理者也能夠通過查詢和圖表等功能瀏覽開發(fā)項(xiàng)目的進(jìn)展情況。一款能夠?qū)崿F(xiàn)以上目標(biāo)的需求管理工具應(yīng)該具備以下幾點(diǎn)功能:
•集成的需求管理:創(chuàng)建、管理、討論并關(guān)聯(lián)項(xiàng)目需求和功能;
•變更控制:當(dāng)特定的變更發(fā)生時(shí)自動(dòng)進(jìn)行需求版本管理,并通過工作流引擎來(lái)控制需求變更;
•數(shù)字資產(chǎn)管理:需求、功能以及其他重要的數(shù)字資產(chǎn)都需要存儲(chǔ)在一個(gè)可靠、可擴(kuò)展、安全的中央資料庫(kù)中;
•集成事件跟蹤和測(cè)試:需求管理與事件跟蹤和測(cè)試管理工具集成,以便于項(xiàng)目經(jīng)理查看與需求相關(guān)的開發(fā)和測(cè)試工作;
•Windows客戶端和Web客戶端:提供Windows客戶端和Web客戶端訪問方式,保證在固定和移動(dòng)辦公的情況下都能登錄到系統(tǒng)中;
•定制化的用戶界面:提供定制選擇,以便于系統(tǒng)管理員創(chuàng)建自定義的需求和功能界面,如字段標(biāo)簽、字段類型、下拉菜單選項(xiàng)和客戶報(bào)告等;
•開放的工作流設(shè)置:通過定義工作流來(lái)創(chuàng)建和管理需求和功能;
•嵌入式報(bào)表和分析:直接產(chǎn)生需求功能數(shù)據(jù)報(bào)表,如變更控制、變更效應(yīng)、實(shí)施和測(cè)試數(shù)據(jù)等;
•自動(dòng)獲取需求:在系統(tǒng)中,用戶可以直接輸入需求信息,或者通過文檔形式獲得需求并附加到系統(tǒng)中。
在獨(dú)立實(shí)現(xiàn)以上功能的基礎(chǔ)上,需求管理工具還需與ALM中的開發(fā)過程進(jìn)行無(wú)縫集成,其中包含事件跟蹤、測(cè)試管理、以及中央知識(shí)庫(kù)(如圖1所示)。
規(guī)范點(diǎn)驅(qū)動(dòng)的需求管理
誠(chéng)然,需求管理對(duì)整個(gè)軟件項(xiàng)目的成敗發(fā)揮著舉足輕重的作用。然而,需求在最初只是客戶或管理人員對(duì)產(chǎn)品功能的一種愿望,需求分析師要將這種非結(jié)構(gòu)化、粗線條、不明確的愿望歸納總結(jié)為具體的規(guī)范點(diǎn)(Specification,簡(jiǎn)稱Spec)。產(chǎn)品管理團(tuán)隊(duì)再把各種Spec根據(jù)開發(fā)時(shí)間、成本和效益進(jìn)行優(yōu)先排序,確定Spec單,再由開發(fā)團(tuán)隊(duì)照單實(shí)施。
SpecDD(Specification Driven Development)是TechExcel根據(jù)多年經(jīng)驗(yàn),總結(jié)眾多客戶關(guān)于軟件開發(fā)管理的需求而提出的一個(gè)概念性框架。SpecDD模型用Spec來(lái)表述/定義產(chǎn)品或版本功能,并通過中央知識(shí)庫(kù)與整個(gè)團(tuán)隊(duì)有效共享,使Spec成為貫穿軟件應(yīng)用生命周期各階段的要素,從而驅(qū)動(dòng)整個(gè)開發(fā)流程。將知識(shí)和需求轉(zhuǎn)換為結(jié)構(gòu)化的、正規(guī)表達(dá)的Spec,是將整個(gè)開發(fā)過程從宏觀戰(zhàn)略落實(shí)到具體實(shí)施戰(zhàn)術(shù)的過程。
SpecDD模型在需求管理上的優(yōu)勢(shì)主要體現(xiàn)為以下三個(gè)方面。首先,通過SpecDD模型可以實(shí)現(xiàn)對(duì)需求的度量和評(píng)估,包括每個(gè)需求所需要的資源和時(shí)間,將開發(fā)所需的時(shí)間和費(fèi)用與需求相關(guān)聯(lián),度量和評(píng)估需求是否成功,通過需求驗(yàn)證指標(biāo)來(lái)管理開發(fā)、測(cè)試活動(dòng)。其次,Spec與項(xiàng)目規(guī)劃、開發(fā)和測(cè)試任務(wù)始終保持關(guān)聯(lián),這就保證了開發(fā)的每一個(gè)環(huán)節(jié)都是可追溯。另外,SpecDD模型還能評(píng)估需求變更的潛在影響,例如需求變更對(duì)開發(fā)和測(cè)試工作、項(xiàng)目成本的影響。
通常情況下,Spec包含功能、缺陷和功能增強(qiáng)三個(gè)部分,他們都來(lái)源于相關(guān)的知識(shí)或需求,并與需求條目和知識(shí)庫(kù)中的知識(shí)條目相關(guān)聯(lián)。圖2以Browser 6.0產(chǎn)品為例,用圖形化的方式顯示了Spec與知識(shí)、需求的關(guān)系。針對(duì)Browser產(chǎn)品的最新版本6.0,有安全和用戶界面兩大類需求,通過需求分析師將其分解為新的功能,如支持SSL v.3.0、Tabbed Browsing等;除新功能以外,Spec還包括對(duì)之前版本的功能增強(qiáng),如保存已標(biāo)記的文件;以及上一版本的缺陷,如保存時(shí)響應(yīng)緩慢。這些Spec通過規(guī)劃、編碼、測(cè)試等工作,構(gòu)成最終交付的產(chǎn)品。
同時(shí),Spec也是高度結(jié)構(gòu)化的,表現(xiàn)為其樹形結(jié)構(gòu)準(zhǔn)確對(duì)應(yīng)產(chǎn)品/版本功能樹,以保證開發(fā)人員不丟失任何需求(如圖3所示)。產(chǎn)品管理團(tuán)隊(duì)通過創(chuàng)建Spec樹,使每個(gè)功能/缺陷/功能增強(qiáng)都能對(duì)應(yīng)分支上的樹葉。同時(shí),Spec與知識(shí)項(xiàng)目相關(guān)聯(lián),這些知識(shí)項(xiàng)目描述了形成此Spec的構(gòu)思,以及其他相關(guān)的文檔、標(biāo)準(zhǔn)、附件和參考項(xiàng)目。
需求變更的管理
理解需求變更可能產(chǎn)生的效應(yīng),并有效的進(jìn)行控制,對(duì)于軟件的最后提交都是至關(guān)重要的。無(wú)論是變更已有需求,還是增加新的需求,都對(duì)項(xiàng)目最終交付的日程造成不同程度的影響。例如,需求變更可能會(huì)影響到與之相關(guān)的功能、任務(wù)和測(cè)試工作;編碼延期會(huì)延誤與該功能相關(guān)的其他開發(fā)任務(wù)和測(cè)試工作。因此,有效的需求管理工具,必須保證項(xiàng)目團(tuán)隊(duì)能夠很容易的評(píng)估這些變更可能帶來(lái)的影響。
如何在變更發(fā)生之前對(duì)其進(jìn)行評(píng)估呢?這就需要將需求管理與所有開發(fā)、測(cè)試行為進(jìn)行集成,用戶就可以通過跟蹤編碼、測(cè)試等行為對(duì)變更帶來(lái)的潛在影響進(jìn)行評(píng)估。這在SpecDD模型中得以實(shí)現(xiàn)。
將有效的變更轉(zhuǎn)變?yōu)樾枨?/p>
如前文所講,SpecDD模型表現(xiàn)為用Spec來(lái)表述/定義產(chǎn)品或版本功能,并和整個(gè)團(tuán)隊(duì)有效共享,從而驅(qū)動(dòng)開發(fā)。因此,要保證交付的產(chǎn)品完全符合最終版本的Spec,需求分析部門就要和開發(fā)部門協(xié)同工作,并對(duì)變更做出嚴(yán)格的控制。對(duì)開發(fā)工作有潛在影響的變更都將會(huì)被慎重管理,并嚴(yán)格檢驗(yàn)是否影響到需求的依賴關(guān)系。所有因需求變更而產(chǎn)生的影響,都必須檢驗(yàn)變更后的完整性。因此,要實(shí)現(xiàn)有效的需求變更,管理工具需要實(shí)現(xiàn)以下幾種功能:
•變更控制
對(duì)變更進(jìn)行嚴(yán)格的流程控制,包括請(qǐng)求、復(fù)查、討論、調(diào)整和批準(zhǔn)等;
?
變更請(qǐng)求由一個(gè)獨(dú)立的工作流所控制;
?
變更不能對(duì)需求造成不良影響,因此在變更被批準(zhǔn)之前,需求不能被改變。
•實(shí)用性
?
接近實(shí)際的需求管理實(shí)踐;
?
易于被客戶理解;
?
易于對(duì)重要的變更進(jìn)行跟蹤。
•各部門協(xié)同工作
?
需求、功能和開發(fā)等各方面的人員都在各個(gè)階段參與變更請(qǐng)求,將不同部門的人員都納入變更管理體系;
?
讓開發(fā)團(tuán)隊(duì)參與到變更請(qǐng)求的批準(zhǔn)過程中,這樣會(huì)比被動(dòng)的接受或拒絕變更要更科學(xué)、更有效;
?
在變更得到批準(zhǔn)或拒絕之前,分析針對(duì)該變更在資源和時(shí)間上的分配。
科學(xué)有效的需求管理是軟件項(xiàng)目成功的保證。在更新需求的過程中,讓項(xiàng)目的所有相關(guān)人員從各自的角色出發(fā),都參與其中,將促進(jìn)軟件產(chǎn)品最終達(dá)到業(yè)務(wù)目標(biāo)。需求變更時(shí),對(duì)其進(jìn)行準(zhǔn)確的分析和評(píng)估,也有助于確保項(xiàng)目按時(shí)提交。
除需求管理工具獨(dú)立工作以外,將它與應(yīng)用生命周期管理(ALM)中的其他過程管理工具集成,才能最終提供一個(gè)完整的貫穿需求和開發(fā)過程的解決方案。需求分析人員和開發(fā)團(tuán)隊(duì)通過一個(gè)平臺(tái)實(shí)現(xiàn)協(xié)同工作,統(tǒng)一接口和共用流程。這就能促進(jìn)需求數(shù)據(jù)在需求制造者和實(shí)施者之間無(wú)縫、實(shí)時(shí)的傳遞,并保證在開發(fā)的每一個(gè)環(huán)節(jié)都可追溯需求。
如前文所講,SpecDD模型表現(xiàn)為用Spec來(lái)表述/定義產(chǎn)品或版本功能,并和整個(gè)團(tuán)隊(duì)有效共享,從而驅(qū)動(dòng)開發(fā)。因此,要保證交付的產(chǎn)品完全符合最終版本的Spec,需求分析部門就要和開發(fā)部門協(xié)同工作,并對(duì)變更做出嚴(yán)格的控制。對(duì)開發(fā)工作有潛在影響的變更都將會(huì)被慎重管理,并嚴(yán)格檢驗(yàn)是否影響到需求的依賴關(guān)系。所有因需求變更而產(chǎn)生的影響,都必須檢驗(yàn)變更后的完整性。因此,要實(shí)現(xiàn)有效的需求變更,管理工具需要實(shí)現(xiàn)以下幾種功能:
•變更控制
?
對(duì)變更進(jìn)行嚴(yán)格的流程控制,包括請(qǐng)求、復(fù)查、討論、調(diào)整和批準(zhǔn)等;
?
變更請(qǐng)求由一個(gè)獨(dú)立的工作流所控制;
變更不能對(duì)需求造成不良影響,因此在變更被批準(zhǔn)之前,需求不能被改變。
•實(shí)用性
?
接近實(shí)際的需求管理實(shí)踐;
?
易于被客戶理解;
?
易于對(duì)重要的變更進(jìn)行跟蹤。
•各部門協(xié)同工作
?
需求、功能和開發(fā)等各方面的人員都在各個(gè)階段參與變更請(qǐng)求,將不同部門的人員都納入變更管理體系;
?
讓開發(fā)團(tuán)隊(duì)參與到變更請(qǐng)求的批準(zhǔn)過程中,這樣會(huì)比被動(dòng)的接受或拒絕變更要更科學(xué)、更有效;
?
在變更得到批準(zhǔn)或拒絕之前,分析針對(duì)該變更在資源和時(shí)間上的分配。
科學(xué)有效的需求管理是軟件項(xiàng)目成功的保證。在更新需求的過程中,讓項(xiàng)目的所有相關(guān)人員從各自的角色出發(fā),都參與其中,將促進(jìn)軟件產(chǎn)品最終達(dá)到業(yè)務(wù)目標(biāo)。需求變更時(shí),對(duì)其進(jìn)行準(zhǔn)確的分析和評(píng)估,也有助于確保項(xiàng)目按時(shí)提交。
除需求管理工具獨(dú)立工作以外,將它與應(yīng)用生命周期管理(ALM)中的其他過程管理工具集成,才能最終提供一個(gè)完整的貫穿需求和開發(fā)過程的解決方案。需求分析人員和開發(fā)團(tuán)隊(duì)通過一個(gè)平臺(tái)實(shí)現(xiàn)協(xié)同工作,統(tǒng)一接口和共用流程。這就能促進(jìn)需求數(shù)據(jù)在需求制造者和實(shí)施者之間無(wú)縫、實(shí)時(shí)的傳遞,并保證在開發(fā)的每一個(gè)環(huán)節(jié)都可追溯需求。
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)以權(quán)威部門公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識(shí)與高頻考點(diǎn),為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評(píng)論 查看完整評(píng)論 | |