一頁紙需求的應對方法 —— 五步法

文章來源於優普豐敏捷教練 Scrum,作者王洪亮大錘

前言

一頁紙需求是指的業務方在提需求的時候篇幅很短的情況。有的時候極端情況下,原始需求只有一句話,甚至只有幾個字。比如說:“開四限四“就是一個涵蓋了非常多的要求的一種需求。

一頁紙需求會讓很多 BA 感到困惑。BA 也知道一頁紙需求表達的不全面,但是需要科學的分析才能夠將細節進行完善。否則就會變成散點式補充需求內容,也無法確認自己補充的內容是否完整。站在業務方的角度來看,一頁紙需求也許是他們儘可能提出的最全面的內容了。業務方由於非 IT 背景,可能想提出更多的內容也無能爲力。因此,需要 BA 承擔對應的職責,將一頁紙進行擴充完善。

一般情況下,BA 會通過頭腦風暴的方式來梳理一些問題,向業務方提出問題,獲得答案。但是頭腦風暴的方式在這裏能夠發揮的作用有限,即使是問了很多問題,仍然不知道自己是否梳理了所有該梳理的場景,是否還有場景遺漏。因此需要一個有條理,有脈絡的方式進行一頁紙需求的分析。從而能夠快速而有效地建立起整個需求文檔,以推進開發工作。

應對一頁紙需求,大錘梳理了一個五步法,得到廣泛應用,並且妥善的解決了一頁紙需求的問題。五步法是指通過業務價值、角色梳理、術語定義、主業務流程梳理、綱舉目張詳細分析的方式進行需求分析。

當 BA 接到一頁紙需求時,可以按照五步法需求分析法進行:

五步法示意圖

第一步應要確認該需求的業務價值,通過業務價值來判斷該需求的核心功能以及確認需求的優先級。以後的需求都要圍繞着這個業務價值進行展開分析,這樣才能夠聚焦,才知道設計的功能是否必須的,是否能夠幫助實現對應的業務價值。同時也能夠判斷對應的業務價值實現的方式是否科學。

第二步應對該需求中所涉及的角色進行梳理。很多時候由於缺少對角色的梳理,並不能夠正確的理解在業務中,各種角色如何完成自己的任務以達到實現業務價值的目標。如果遺漏了某些角色,那麼會導致最後業務無法閉環運行的後果。另外也可能由於角色梳理的缺失導致需求分析結果的不正確。比如說,某個角色的功能都開發了,卻缺少了對應的功能入口。

第三步對需求的術語進行定義。在一些項目中可能涉及專業詞彙術語,因此在前期明確術語的定義,後期在與客戶確認需求功能時,可以統一用詞習慣。不會出現一詞多義或者一意多詞的情況。並且,術語定義可以爲開發工程師和測試工程師提供統一的用語,爲開發過程的溝通效率提高奠定基礎。並且由於術語定義的環節能夠將術語的含義講清楚,也對後續的需求分析理解產生了不可磨滅的重要作用。

進行完前三步後,應對主流程進行梳理。一般來說,一頁紙需求當中會包含必要的樂觀路徑的描述。通常描述主流程不會特別困難。但是缺失往往都在於悲觀路徑,邊界條件等環節,因此第五步,通過綱舉目張的方式對需求的細節進行梳理補充。綱舉目張表示漁民晾漁網的時候,將漁網掛起來之後,漁網的孔就會自然的張開。引申到寫文章的時候,文章的大綱要是先定義好了,文章的內容自然就清晰了。同樣的,在分析需求的時候如果能夠對於細節環節的梳理方式有個總體脈絡,就可以清晰地梳理出各種隱含的需求。第五步可以包括:邊界思維、對稱思維、異常思維、發散思維、關聯思維、併發思維等各種思維方式的應用,以梳理出各種需求的細節。

1. 業務價值

1.1 什麼是業務價值

解決別人願意花錢解決的問題,就是業務價值。它通常是市場、企業、用戶三方可以獲得的價值主張,結合組織戰略規劃以及產品/項目生命週期進行定義。

1.2 業務價值解決的問題

1.2.1 發現潛在需求

干係人提供的原始需求可能包含的信息不充分,如果 BA 照搬就可能產生場景遺漏,但是如果 BA 能夠考慮業務價值,從用戶角度出發分析需求,就會發現潛在的需求。因此我們需要明確組織業務目標和價值,之後的分析都圍繞這個目標展開。

1.2.2 劃分需求優先級

需求的排序首先應該是依照業務價值來進行的,結合市場的趨勢、產品所處的生命週期階段、組織當前的產品/項目組合戰略、研發的投入成本等進行綜合考慮。根據業務價值可以協助我們更好的對需求進行優先級劃分。

1.3 如何實現業務價值

1.3.1 建立業務目標

BA 在進行需求分析的過程中,會有很多想法和見解,但如果無法將其進行串聯和推動,那就會忙於交付而不知道爲什麼交付。一般來說業務目標會有:賺錢、省錢這兩大方向。賺錢又分爲直接盈利(比如說:促進銷售)和間接盈利(比如說:提高訪問量,用戶粘性等)。

1.3.2 滿足核心業務

首先要滿足核心業務,才能夠確保價值的交付。然而核心的業務識別是一個相對較爲有難度的事情。其實現方式也有很多種。之後會撰寫文章講述如何識別核心業務。比如在貸款業務中,還款模塊可以分爲:正常還款,提前劃款,逾期還款,壞賬還款等多個場景,而正常還款是最核心的業務。

1.3.3 滿足正確優先級劃分

優先級的分級最爲常見的是按緊急、重要關聯詞構建。下圖是常見的優先級劃分方式,但是如果不掌握更具體的方式,就會陷入到,不知道該如何排序的境地。我們會在另外的文章中講述如何進行合理有效地需求排序。這裏先了解基本概念。

在用四象限法時同時,我們要理解優先級劃分的核心所在是最好的需求優先級還是跟着業務走。因此我們也需要思考以下幾個問題來對優先級進行判斷:

  1. 不做 - 是否會造成嚴重的問題和惡劣的影響?

  2. 做了 - 會產生的好處以及實現的目標?

  3. 是否跟核心用戶利益有關?

  4. 是否跟大部分用戶權益有關?

  5. 是否跟效率或成本有關?

2. 角色梳理

2.1 什麼是角色梳理

明確定義參與到業務和系統活動中的所有角色。

2.2 角色梳理解決的問題

角色梳理可以幫助我們差缺補漏,減少遺忘場景的問題。存在有可能不使用系統,但是對系統卻有很大左右權的潛在角色。比如:老闆給 HR 買了一套考勤打卡系統,他不打卡,但是他卻要關注如何通過打卡系統管理員工。

2.3 如何進行角色梳理

2.3.1 進行角色分析

系統爲哪些類型的用戶提供服務,他們都各自承擔哪些不同的職責,並據此定義系統邊界,也就是系統是對現實世界哪個範圍的內容進行的模擬,這影響到需求設計和實現的範圍以及工作。

2.3.2 利用角色功能矩陣進行梳理

在需求分析中,我們可以利用角色功能矩陣進行角色梳理,角色-功能矩陣將角色和功能進行正交排布,從而梳理那個角色可以執行哪個功能。

2.3.3 利用角色權限矩陣進行梳理

每個角色都有一個自己的權限矩陣,排布方式可能是樹形目錄。表明了該角色對應到詳細的按鈕級別的功能操作權限。

3.術語定義

3.1 什麼是術語定義

對術語進行定義,以便後續溝通能快速無二義。

3.2 術語定義解決的問題

進行需求梳理時,明確系統術語定義方便於後期的溝通與功能確認。

3.3 如何對術語進行定義

3.3.1 統一語言

統一語言爲今後的交流提供了統一的術語定義。要定義統一語言,最好是提供原名(本地語言)和英文名。英文名稱是爲了讓開發者在源代碼中統一名稱。而它的描述是爲了明確它是什麼。如果可能的話,附上一張圖片會增強可理解性。

有的時候,一個術語可能在多種情況下有不同解釋。因此可能需要建立一個 Wiki 才能夠說明清楚。比如說:風險對沖。

3.3.2 製作術語字典

定義項目中使用到的所有術語,包括同義詞。這裏的內容就是一個字典,爲每個名字寫下簡明扼要的定義,其中包括在需求規格說明書中使用的所有名稱的含義。

這個字典應該使用你的組織或行業使用的標準名稱。這些名稱也應該反映出在工作領域中當前使用的術語。該字典包括項目中用到的所有名稱。請仔細地選擇名稱,以避免傳達不同的、不期望的含義。

4. 主業務流程梳理

4.1 什麼是主業務流程梳理

利用閉環思維,需要從用戶的視角來思考問題。具體是指以用戶身份按照各種場景從頭到尾走一遍,以確認場景的完整性。這裏包括兩種工具可以利用,一個是用戶旅程,一個是對象旅程。

4.2 主業務流程梳理解決的問題

4.2.1 避免核心場景遺漏

根據用戶的視角來對主業務流程進行梳理,可以避免核心業務場景的遺漏,同時也避免遺漏頁面和交互。比如說,在一個電商促銷活動模塊的開發中,一頁紙需求中只描述瞭如何促銷,卻忘記了引流功能的描述,如果不加以分析,就會遺漏引流這個模塊導致整個電商活動的失敗。

4.2.2 保證流程的邏輯性

根據用戶的視角來對主業務流程進行梳理,確保主業務場景和業務的完整性。

4.3 如何對主業務流程梳理

4.3.1 繪製主業務流程圖

流程圖能夠提供一種快速瞭解業務如何運作的視圖。因此通過繪製主業務流程圖能夠快速明白業務的最終目標是什麼,有哪些角色在參與以及他們的職責,以及彼此之間的聯接。一般來說,流程圖是個有效的工具,也有的場景只用流程圖無法清晰的描述需求,可能要選取其他的合適工具。

4.3.2 用戶訪談

採取用戶訪談的形式來梳理主業務流程,通過訪談來判斷是否遺漏業務場景。在進行用戶訪談的時候注意帶入到用戶的身份中去。

5. 綱舉目張詳細分析

5.1 什麼是綱舉目張

利用邊界思維、閉環思維、對稱思維、異常思維、發散思維、關聯思維、併發思維等方式,梳理所有流程環節、判斷條件及邊界場景等各種細節。

5.2 綱舉目張解決的問題

通過綱舉目張的方式可以順利的梳理出各種細節場景。對於已經有明確答案的,可以直接提供答案;對於有多個選項的,可以提供選項讓業務代表選擇;對於沒有明確答案的情況,可以留白,讓業務代表填寫。這樣通過較爲有條理脈絡的方式進行各種場景細節的梳理的方式,可以幫助更快的一次性建立較爲完整的需求體系,並且迅速推動開發工作。並且在此過程中,容易對需求質量建立信心。不至於像散點式提問的方式,BA 自己也不清楚需求到底還有多少沒有確認的細節。

5.3 如何對綱舉目張詳細分析

6. 案例

6.1 案例介紹

爲了能夠在下個銷售季獲得更好的銷售業績,特准備開通線上優惠活動。活動內容如下:

新註冊用戶,贈送 200 元優惠券,有效期到 2019 年 12 月 31 日。

老用戶在活動期間下單,現金(含支付寶,微信,信用卡;不是預充值即可)支付,滿 500 減 100。每單單獨結算。

另外,充值滿 1000 贈 100。充值上限 10 萬元。

【前提假設】

已經存在一個電商系統,包括購物,下單,支付,物流等功能都已經存在;

本次只考慮需求變更的部分;

移動端使用。

6.2 五步法分析需求

1)業務價值

業務價值是指:解決別人願意花錢解決的問題,就是業務價值。它通常是市場、企業、用戶三方可以獲得的價值主張,結合組織戰略規劃以及產品/項目生命週期進行定義。

本案例中,需要明確了商業價值才能夠圍繞着商業價值進行需求分析的展開,一切後續活動都是圍繞着商業價值展開的。因此要明確商業價值:

  • 新用戶註冊,成爲來年的消費羣體
  • 老用戶消費,年底回籠資金

2)角色分析

角色分析是指:系統爲哪些類型的用戶提供服務,他們都各自承擔哪些不同的職責,並據此定義系統邊界,也就是系統是對現實世界哪個範圍的內容進行的模擬,這影響到需求設計和實現的範圍以及工作量。

在對需求進行分析時,要明確該需求中涉及到的角色,避免產生遺漏問題。本案例中涉及的角色主要爲 3 個:

  • 新用戶

  • 老用戶

  • 管理員

3)術語定義

術語定義是指:統一語言爲今後的交流提供了統一的術語定義。要定義統一語言,最好是提供原名(本地語言)和英文名。英文名稱是爲了讓開發者在源代碼中統一名稱。而它的描述是爲了明確它是什麼。如果可能的話,附上一張圖片會增強可理解性。

因此需要對術語進行明確定義,本案例中需要確認的術語:

  • 滿減活動(DiscountWithGivenAmount):消費達到一定金額之後,就可以減扣一定的支付金額的方式爲滿減活動。

4)主流程梳理

主流程梳理是指:利用閉環等思維,以用戶身份按照各種場景從頭到尾走一遍,以確認場景的完整性。

梳理流程過程中,需要注意的是流程是否產生遺漏、業務整體邏輯是否正確。因爲我們可以藉助一些思維方式來保證需求分析的質量。

  • 閉環思維:干係人提供的原始需求可能包含的信息不充分。如果 BA 照搬就可能產生場景遺漏,但是如果 BA 能夠考慮業務價值,從用戶角度出發分析需求,就會發現潛在的需求。不採用閉環思維仍然可以做出完整的功能,但是這些功能可能因爲缺少入口而無法訪問。

在本案例中,可以利用閉環思維來確認整個活動流程的節點和出口:

  • 邊界思維:很多事物都有自己的邊界,如上限和下限,開始日期和結束日期。而且數據類型本身也有範圍限制,比如整數(Integer),長整數(Long)或者雙精度浮點數(Double)。未定義邊界的需求在實現過程中會存在非常大不確定性,每個人理解的最佳實現方式是不同的,與業務需求的偏差往往就是 Bug。有報道稱,惠普的 SSD 硬盤會在使用一定的時間長度之後發生故障,就是因爲時間超過了 Integer 的上限。

本案例中,可以使用邊界思維來確認活動的條件,避免出現惡意事件:

  • 關聯思維:比如說在做登錄的時候,會有密碼,那就要考慮,密碼是從哪來的,是管理員分配的還是用戶設置的,還是默認的,還是通過手機短信通知臨時獲取的。這樣可以考慮到更全面的場景。

本案例中,利用並聯思維來分析容易遺漏的場景,做到需求全面覆蓋。

優惠券和代金券可以並用嗎?

代金券和充值金如何進行消費的,可以單獨使用代金券嗎?

充值金額是可以任意的嗎?

贈送的金額和消費順序?

  • 發散思維:發散思維幫助 BA 發現更多的潛在場景。如果有個條件 A,也許還有個條件 B 和 C。比如說,性別不只是男女,有的公司定義了 70 多種性別,要把多樣性考慮進來。一個自然數的輸入框如果輸入了下列內容到底會不會被認作是有效數字呢?“.0”, “0.”, “00”, “01” or “2e5”。通過發散思維可以發現更多的可能性來識別潛在需求。

本案例中,利用發散思維來挖掘更多的潛在需求,例如湊單。

11.jpg

  • 對稱思維:如果有註冊,那就有註銷;如果有支付,那就有退款;如果有訂貨,那就有退貨;如果有審批通過,那就有駁回。

本案例中,利用對稱思維進一步來檢查需求分析是否存在遺漏,整體流程邏輯是否無誤。

  • 時間軸:用時間軸來定義事件的時間邊界;也可以用於其他的範圍描述的內容。

12.jpg

用時間軸代替大量文字,並且可以更好的展現出對時間的邊界有。本案例中,利用時間軸來明確優惠券等有效期限。

確認優惠券的有效期限:

o1MkKs.jpg

o1MP2Q.jpg

確認訂單的積分時效:

7 月 1 日之 7 月 31 日間的訂單可以得到 2 倍積分。

o1MArn.jpg

確認雙時間的範圍:

7 月 1 日之 7 月 31 日間的訂單的積分可以在 10 月 1 日到 12 月 31 日間使用

16.jpg

確認不同角色協作:

政策指定時間段(例如 7 月 1 日 - 7 月 31 日)符合政策的從本公司的採購可以累積積分。

o1MEbq.png

同時還可以利用時間軸描述對稱流程:

o1MZV0.png

其他 - 對象建模 - 資金池:

根據對象建模,把儲值金額進行區分開,以原有儲值、新儲值、新儲值贈禮進行拆解形成資金池,更好的判斷資金的來源並統一彙集。

o1MeaV.png

7.總結

通過以上一頁紙需求分析的詳細說明和案例解析,我們對五步法有了深刻的瞭解,同時對五步法的實踐也有了深刻的認識。

在一頁紙需求分析中,我們不僅要考慮到業務價值、角色梳理、術語定義、主流程梳理以及綱舉目張的表面含義,同時要正確的理解其中每一步涉及使用的工具,還要通過實踐來進行學習。

作者介紹:

作者:王洪亮/大錘

可視化業務需求分析工具箱創始人,優普豐敏捷諮詢首席教練、培訓師。

o1Mm5T.jpg

社區知名技術大牛,資深軟件開發及敏捷諮詢師,精益創業導師。他整理了一套獨到的需求分析工具箱。該套工具箱的工具以可視化爲主要特點,幫助企業在需求分析的過程中以圖和表爲主的形式來展現需求,提高需求分析全面性的同時,縮短需求分析所需要花費的時間。並且爲開發人員和測試人員在需求理解的過程中節省時間,減少反覆確認,從而對整體開發效率起到了提升的作用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章