隨著敏捷運(yùn)動勢頭日益增長,運(yùn)用敏捷方法所管理的項(xiàng)目日益多產(chǎn),項(xiàng)目專業(yè)人士必須更為純熟地運(yùn)用敏捷方法。盡管敏捷的技術(shù)、流程與瀑布式有所不同,許多創(chuàng)新項(xiàng)目團(tuán)隊(duì)正開始將非敏捷技術(shù)融入到敏捷環(huán)境中,并取得了巨大成功。
人們對于敏捷存在一個普遍的誤解,以為在敏捷中運(yùn)用用戶故事之后就不需要用例。圍繞這一話題,人們在Skillsharks、博客、Twitter、Facebook等各大社交網(wǎng)絡(luò)紛紛提出疑問。我們不應(yīng)該簡單地問“用戶故事可以取代用例嗎?”而應(yīng)當(dāng)將問題置于下述框架中進(jìn)行探討:“開發(fā)有效的敏捷需求時,我們?nèi)绾卧谟脩艄适轮杏行Оl(fā)揮用例的作用?”
因?yàn)橛美c瀑布式方法中的捕獲和分析法類似,很多人在敏捷方法中避免使用它。但是,無論我們?nèi)绾沃诌M(jìn)行需求分析,最終目標(biāo)都是相同的,即幫助商業(yè)用戶或利益相關(guān)者確定他們的真正需要,并將之轉(zhuǎn)化為需求。要想成功開發(fā)敏捷需求,必須同時有效運(yùn)用二者,抓住最佳業(yè)務(wù)方案的核心,為客戶帶來價值。
根據(jù)《BABOK. 指南》第6章,“…商業(yè)分析師對利益相關(guān)者、解決方案需求進(jìn)行優(yōu)先排序和逐步細(xì)化,使項(xiàng)目團(tuán)隊(duì)得以落實(shí)解決方案,滿足發(fā)起組織和利益相關(guān)者的需要。這就要求對利益相關(guān)者的需要進(jìn)行分析,定能夠滿足這些需要的解決方案,并通過評估業(yè)務(wù)的當(dāng)前狀態(tài),確定與建議改進(jìn)事項(xiàng),開展對所獲需求的核實(shí)與驗(yàn)證工作?!睘榱藞A滿完成任務(wù),商業(yè)分析師需要具備過硬的引導(dǎo)、信息捕獲以及流程設(shè)計(jì)技巧,這些是編寫有效用例的核心要素。
在敏捷開發(fā)中,需求是逐步細(xì)化的。每一個迭代或Sprint均允許商業(yè)用戶或利益關(guān)者更好地闡述他們的需要,確保高效開發(fā)解決方案。商業(yè)用戶或利益相關(guān)者“講述”集成用戶關(guān)注與直接交互特性的用戶故事,奠定每一個迭代或Sprint的基礎(chǔ)。這些簡短的用戶期望腳本僅是編寫用戶故事過程中的一部分。用戶故事還包括另外兩個要素:
1. 筆記:為幫助闡明期望而就相關(guān)故事進(jìn)行深入討論所做的記錄(交談)
2. 故事意圖和驗(yàn)證測試:向用戶確認(rèn)故事交付后確實(shí)滿足其期望(確認(rèn))
需求遠(yuǎn)景是敏捷開發(fā)中運(yùn)用用例的關(guān)鍵
敏捷團(tuán)隊(duì)在開始收集描述系統(tǒng)特性的詳細(xì)需求之前,確定項(xiàng)目的總體遠(yuǎn)景和目的至關(guān)重要,其中也包括產(chǎn)品遠(yuǎn)景。產(chǎn)品遠(yuǎn)景是項(xiàng)目的邊界,迭代增量工作即在此范圍內(nèi)開展。產(chǎn)品遠(yuǎn)景應(yīng)回答下列三個問題:
1. 該產(chǎn)品是什么?
2. 該產(chǎn)品為什么有用?
3. 該產(chǎn)品將有什么特性來吸引客戶?
我們可以首先在此處看到運(yùn)用用例建模的捕獲技巧,對于收集并整合用戶故事的強(qiáng)大作用。圖1向我們生動地展示了用例在此過程中是如何被有效運(yùn)用的。
創(chuàng)建解決方案時,從需求的角度來設(shè)定產(chǎn)品遠(yuǎn)景至關(guān)重要。這樣既可以設(shè)定參數(shù),確保我們交付的產(chǎn)品滿足需求,在涉及跟蹤需求時亦能標(biāo)記終點(diǎn)。
在敏捷開發(fā)中為何,何時使用用例?
用例是展示參與者及其目標(biāo)的圖表。參與者通常是人或系統(tǒng),而目標(biāo)就是參與者所希望實(shí)現(xiàn)的。敏捷開發(fā)中的用例用以幫助明確“誰”要用系統(tǒng)做“什么”,并確定交互的商業(yè)價值。
在敏捷項(xiàng)目中,不僅要從項(xiàng)目的角度而且要從產(chǎn)品的角度,充分發(fā)揮用例的作用。從項(xiàng)目角度來看,用例可用直觀易懂的方式展示“誰需要什么”。 從產(chǎn)品遠(yuǎn)景的角度來看,無論是開始進(jìn)行用戶驅(qū)動型系統(tǒng)的需求預(yù)想,亦或是確定主題和特性,使用用例都大有裨益。
敏捷開發(fā)中有四個層次的需求。主題用以描述可能包含多個特性的較大需求,特性則是一系列相關(guān)故事。這兩個需求層次提供了一個使用用例的良機(jī),因?yàn)樗鼈兡軌蛱峁┖唵沃庇^的產(chǎn)品范圍,且同時允許改進(jìn)需求優(yōu)先級。另外兩個需求層次更加詳細(xì),分別是史詩和故事。史詩用以描述因太大而不能在一個迭代或Sprint中完成的故事,這些故事需要分解成更小的故事。用戶故事是最小的且有價值的業(yè)務(wù)需求,此類故事遵循INVEST原則。
有效的敏捷需求非常倚重用例和用戶故事。請謹(jǐn)記,用戶故事側(cè)重于用戶期望在使用最終產(chǎn)品時能夠具備的特性。它們旨在表示用戶期望的簡短場景,幫助敏捷團(tuán)隊(duì)的商業(yè)分析師在更深層面上將這些期望與適當(dāng)?shù)慕鉀Q方案價值聯(lián)系起來。用例則用以幫助開展用戶價值分析,進(jìn)而對產(chǎn)品backlog進(jìn)行優(yōu)先排序。
用例和用戶故事的精確使用時間無定法可循。對產(chǎn)品backlog進(jìn)行優(yōu)先排序時,二者都需要用到。更好地了解客戶的需要及其重視之處,也離不開二者。敏捷項(xiàng)目需要運(yùn)用用例和用戶故事,但是,何時運(yùn)用它們?nèi)Q于團(tuán)隊(duì)開展的敏捷項(xiàng)目類型。