學(xué)習(xí)筆記-需求工程最佳實(shí)踐

1)成立甲乙雙方參與的需求控制組

項(xiàng)目的成功不單是乙方的成功,更是甲方的成功,甲乙雙方緊密配合、互相理解、互相合作才能成功。

為避免一方具有絕對(duì)控制權(quán)的現(xiàn)象,成立甲乙雙方參與的需求控制組是避免需求蔓延的有效手段。

該組織具有對(duì)需求的決策權(quán),對(duì)每項(xiàng)需求的增刪改查都是平衡了進(jìn)度、質(zhì)量、投入后才確定。

該組織不是一個(gè)流于形式的組織,應(yīng)切實(shí)地參與需求的獲取、描述、分析、確認(rèn)、變更等活動(dòng)。

2)識(shí)別合適的需求提供者,尤其不要遺漏最終用戶?

在獲取需求時(shí)首先識(shí)別誰(shuí)是最可能有需求,識(shí)別出合適的需求提供者

需求的提供者包括了客戶、最終用戶、間接用戶??蛻羰翘湾X買軟件的人;最終用戶是使用軟件的人;間接用戶對(duì)軟件有影響力,但可能不使用軟件,也不掏錢買軟件。三種角色可能有重合,不同的用戶對(duì)需求的作用不同,必要忽略任何一種類型的需求提供者

在很多項(xiàng)目中往往忽略最終用戶的需求,而導(dǎo)致操作層面的需求捕獲不全,系統(tǒng)上線后返工很大

3)在項(xiàng)目初期引導(dǎo)客戶如何實(shí)施一個(gè)軟件項(xiàng)目

客戶引導(dǎo)是一個(gè)大問(wèn)題,尤其是一個(gè)沒(méi)有IT經(jīng)驗(yàn)的客戶。如果客戶缺乏正確的實(shí)施IT項(xiàng)目的觀點(diǎn),那么他就不知道如何去提出需求,如何控制需求范圍,如何管理IT項(xiàng)目。

客戶的需求是項(xiàng)目的輸入,如果需求不明確,需求有遺漏,需求總是不切實(shí)際,需求沒(méi)有劃分優(yōu)先級(jí),則對(duì)整個(gè)項(xiàng)目的成本影響重大。因此需要在項(xiàng)目初期對(duì)客戶實(shí)施引導(dǎo),告訴客戶項(xiàng)目成敗的關(guān)鍵因素是什么,在項(xiàng)目的進(jìn)展過(guò)程中客戶需要注意什么

4)引導(dǎo)用戶劃分需求優(yōu)先級(jí)

用戶往往不關(guān)注需求的優(yōu)先級(jí),認(rèn)為所有的需求都是重要的。需求工程師需要引導(dǎo)用戶劃分需求的優(yōu)先級(jí),而不是單刀直入地讓用戶劃分優(yōu)先等級(jí)。可以通過(guò)以下的啟發(fā)式問(wèn)題引導(dǎo)客戶劃分需求優(yōu)先級(jí)。

在談到的需求中,最重要的3項(xiàng)需求是什么?

這個(gè)需求比另外一個(gè)需求更重要么?

這個(gè)需求是否可以考慮采用其他的解決方案,而不是通過(guò)系統(tǒng)來(lái)實(shí)現(xiàn)?或是簡(jiǎn)單實(shí)現(xiàn)?

如果推遲或是不實(shí)現(xiàn)這個(gè)需求,是否對(duì)項(xiàng)目的目標(biāo)有影響?

如果推遲或是不實(shí)現(xiàn)這個(gè)需求,會(huì)對(duì)哪些業(yè)務(wù)、哪些人員有怎樣的影響?

5)采用用戶故事+驗(yàn)收準(zhǔn)則描述用戶需求

用戶故事是敏捷開(kāi)發(fā)方法中描述用戶需求的方法,該方法采用三段論的方式描述需求:

作為一個(gè)家庭主婦,我需要一個(gè)30平米的餐廳,以便招待10個(gè)朋友進(jìn)餐

作為一個(gè)系統(tǒng)管理員,我希望系統(tǒng)能夠自動(dòng)備份重要的數(shù)據(jù),以便在發(fā)生災(zāi)難時(shí)可以自動(dòng)恢復(fù)。

通過(guò)這個(gè)描述,可以幫助我們確定每個(gè)需求的重要性,同時(shí)提供了一個(gè)伸縮的彈性,即這個(gè)需求的細(xì)節(jié)特征可能有比較大的協(xié)調(diào)空間,可以方便我們進(jìn)行需求、質(zhì)量、進(jìn)度、投入的平衡。

僅僅描述了用戶故事還不足以讓開(kāi)發(fā)人員準(zhǔn)確了解需求,還需要描述每個(gè)故事的驗(yàn)收標(biāo)準(zhǔn)。通過(guò)驗(yàn)收標(biāo)準(zhǔn)來(lái)細(xì)化需求,在開(kāi)發(fā)者與用戶之間達(dá)成對(duì)需求的一致理解。比如:

餐廳要燈光明亮

餐廳要靠近廚房

餐廳面積要5米X6米;

。。。。。。

非敏捷的傳統(tǒng)開(kāi)發(fā)項(xiàng)目,也需要明確描述需求的驗(yàn)收標(biāo)準(zhǔn)。驗(yàn)收標(biāo)準(zhǔn)代表了客戶的最低要求,通過(guò)編寫(xiě)驗(yàn)收標(biāo)準(zhǔn)可以發(fā)現(xiàn)需求中不明確的地方,凡是不能寫(xiě)出驗(yàn)收標(biāo)準(zhǔn)的需求通常是模糊的需求,通過(guò)編寫(xiě)驗(yàn)收標(biāo)準(zhǔn)可以起到對(duì)需求的補(bǔ)充完善作用。

6)需求描述中至少包括:業(yè)務(wù)流程圖、用例、界面原型、非功能性需求與需求優(yōu)先級(jí)。

業(yè)務(wù)流程圖描述客戶的業(yè)務(wù)處理流程,對(duì)于理解需求者提供了一個(gè)很好的背景信息,可以從業(yè)務(wù)流程圖中提取出功能性需求與非功能性需求。

用例描述了人機(jī)交互的流程,劃分了人與系統(tǒng)的職責(zé),清晰刻畫(huà)了正常與異常的事件流,無(wú)論是與客戶還是與技術(shù)人員都很容易溝通,是描述功能需求的一種有效方式。

界面原型將軟件的功能直觀地展示出來(lái)。一圖勝千言,便于引導(dǎo)客戶提出更細(xì)致、更準(zhǔn)確的需求,也便于與技術(shù)人員溝通。在需求獲取與分析時(shí),應(yīng)該盡早構(gòu)造出界面原型。并非需要針對(duì)所有的需求構(gòu)造原型,只是核心的,難以理解的需求需要構(gòu)造原型。

非功能性需求是用戶容易忽略的需求,需求分析人員需要引導(dǎo)客戶提出客戶提出非功能需求,如果客戶不能提出,需求分析人員要根據(jù)歷史的經(jīng)驗(yàn)定義出非功能性需求并和客戶確認(rèn)。非功能性需求一定要描述出來(lái),不能想當(dāng)然地認(rèn)為應(yīng)該如何如何,而沒(méi)有文檔化。非功能性需求能量化則量化,不能量化可采用原型描述。

需求的優(yōu)先級(jí)一般最多劃分為3級(jí),優(yōu)先級(jí)最高的最先實(shí)現(xiàn)。需求的優(yōu)先級(jí)為采用迭代方法提供了一個(gè)基礎(chǔ),也為平衡進(jìn)度、質(zhì)量、需求、投入提供了決策。

在描述需求時(shí),不僅僅局限這5個(gè)方面,還有項(xiàng)目的目標(biāo),涉及的用戶角色、系統(tǒng)的運(yùn)行環(huán)境、處理數(shù)據(jù)等等,但是上面的5個(gè)方面往往是最容易出問(wèn)題的地方。

7)測(cè)試人員參與需求評(píng)審,確保需求的可測(cè)試性

需求的描述詳細(xì)到可測(cè)試的程度。所謂的測(cè)試,即測(cè)試人員閱讀了需求以后可以編寫(xiě)出測(cè)試用例,能夠識(shí)別出輸入、操作流程、處理邏輯,以及預(yù)期的輸出。測(cè)試人員參與需求的評(píng)審,關(guān)注的就是需求的可測(cè)試性,如果一個(gè)需求不可測(cè)試,則說(shuō)明該需求描述地不夠明確

8)采用功能點(diǎn)方法度量軟件規(guī)模,確保需求描述的明確性

功能點(diǎn)方法不僅僅是一種規(guī)模度量模型,還是一種需求驗(yàn)證的方法,如果存在兩位功能點(diǎn)分析師對(duì)同一需求計(jì)算出的功能點(diǎn)不一致,往往是由于需求的描述不夠明確而導(dǎo)致的。在需求的階段,通過(guò)度量軟件的規(guī)??梢源龠M(jìn)對(duì)需求的溝通和理解,從而發(fā)現(xiàn)需求中模糊、有爭(zhēng)議的地方。

9)通過(guò)給客戶講解需求及演示界面原型的方式讓客戶確認(rèn)需求

需求每經(jīng)過(guò)一次傳遞,就會(huì)發(fā)生一次誤傳,要么信息有遺漏,要么信息有錯(cuò)誤。通過(guò)需求的確認(rèn),可以及時(shí)發(fā)現(xiàn)這些錯(cuò)誤。開(kāi)發(fā)人員給客戶講解需求的理解,給客戶演示界面原型,以及在開(kāi)發(fā)過(guò)程中階段性演示半成品,都是需求確認(rèn)方式。人們只有看到實(shí)際的軟件才能提出更多的需求,這是客觀現(xiàn)實(shí),因此應(yīng)該多用原型法來(lái)確認(rèn)需求,這也是敏捷方法中頻繁交付這條實(shí)踐的來(lái)源。

?對(duì)客戶的需求可以確認(rèn)多次。比如,首先是初步的需求訪談?dòng)涗洿_認(rèn),然后是界面原型的確認(rèn),再進(jìn)行高保真的界面原型確認(rèn)。在項(xiàng)目開(kāi)發(fā)過(guò)程中,可以不斷地對(duì)軟件半成品進(jìn)行確認(rèn),指導(dǎo)最后的驗(yàn)收確認(rèn)。

10)無(wú)論大小需求的變更都應(yīng)納入變更控制的流程

需求總是漸變的,對(duì)于大變更、小變更都應(yīng)納入需求變更流程。很多項(xiàng)目往往忽略了對(duì)曉變更的控制,積少成多,最終導(dǎo)致需求、設(shè)計(jì)、代碼的不一樣。需求的變更可以分級(jí)控制,明確劃分不同級(jí)別的需求變更,級(jí)別不同,審批的流程與權(quán)限可以不同。

11)針對(duì)非功能性需求執(zhí)行QFD(質(zhì)量功能部署)

針對(duì)非功能性需求執(zhí)行QFD,即建立非功能性需求與設(shè)計(jì)方案之間的映射關(guān)系、非功能性需求與測(cè)試用例之間的映射關(guān)系。在實(shí)際項(xiàng)中,項(xiàng)目組往往只會(huì)關(guān)注功能性需求的實(shí)現(xiàn)與測(cè)試,而忽略非功能性需求的實(shí)現(xiàn)與測(cè)試,通過(guò)該實(shí)踐可以規(guī)避對(duì)非功能性需求的實(shí)現(xiàn)風(fēng)險(xiǎn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 自序 1. 不是每個(gè)人都能以產(chǎn)品經(jīng)理為業(yè),但在我看來(lái),產(chǎn)品經(jīng)理是一類人,他的做事思路與方法可以解決很多實(shí)際的生活問(wèn)...
    沉淪2014閱讀 4,646評(píng)論 1 19
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,319評(píng)論 25 708
  • 1****、問(wèn):你在測(cè)試中發(fā)現(xiàn)了一個(gè)bug****,但是開(kāi)發(fā)經(jīng)理認(rèn)為這不是一個(gè)bug****,你應(yīng)該怎樣解決? 首...
    蛋炒飯_By閱讀 5,400評(píng)論 1 94
  • BFC全稱Block Formatting Context。每個(gè)渲染區(qū)域使用formatting context表...
    生銹的螺絲釘阿門閱讀 247評(píng)論 0 0
  • 吃了天杞園減肥特膳半個(gè)月后的坑爹后果,不看后悔! 一個(gè)有著親身經(jīng)歷的男人吃完天杞園特膳后講述的辛酸淚,請(qǐng)花2分鐘認(rèn)...
    天杞園特膳閱讀 240評(píng)論 0 0

友情鏈接更多精彩內(nèi)容