很多人都好奇,一個敏捷項目上面的BA一天忙忙碌碌的都在做什么,不像開發(fā)童鞋實現(xiàn)了很多功能,也不像PO(product owner)童鞋決定業(yè)務方向。那BA每天都在做什么呢?我們講個故事吧~
在這之前,先說說幾個敏捷項目中和BA相關的階段,他們也基本涵蓋了整個敏捷項目的所有環(huán)節(jié):
- 需求分析 (Requirement Analysis)
- 用戶故事確認(User Story Confirmation)
- 迭代計劃 IPM (Iteration Plan Meeting)
- 開卡 (story kick off)
- 站會 (Stand Up)
- 結(jié)卡 (Sign Off)
- 成果展示 (Showcase)
- 復盤(Retro)
現(xiàn)在,我們一起看看這個找女票的項目。
故事的開端要從小白童鞋要幫小明童鞋能找到女朋友說起。
那天,小白童鞋找到小A
“聽說你做BA的,幫我哥們找個女朋友吧……”

小白遞上了自己覺得還挺全面的小明的信息。
小A拿過來一看,怎么還有體重,真?zhèn)€么……真的……詳細……嗯……
| 姓名 | 小明 |
|---|---|
| 年齡 | 33 |
| 體重 | 保密 (噸)(為什么要說體重,且單位就暴露了好嘛 啊喂!) |
| 職業(yè) | *** (為了誰也不黑,就匿了吧,別對號入座了) |
| 愛好 | 在家里宅著 |
| 開心的事 | 喝可樂 |
| 不開心事 | 無聊,沒人陪我喝可樂 |
小A撓撓頭,既然答應了,就得開始行動起來了。
需求分析 (Requirement Analysis)
小A:“我能和小明聊聊么?”
小白:“不能……”
小A:……那就只能問問小白了。
小A問了小白一系列的問題,從小明對女票的性別要求一路問到身高體重年齡家室,基本上沒有任何特殊的信息。正常人看來,小明的要求已經(jīng)很低了。
小A 內(nèi)心OS:聽上去沒啥問題,為啥就覺得不太對呢?于是小A又尋找別的方向來問。
小A:“之前有過女朋友么?”
小白:“沒有……”
小A:“沒找過么?”
小白:“怎么說呢,他太宅了,沒法認識新朋友,而且有點邋遢吧”
小A心里突然有點想法,繼續(xù)問道: “那,有可能是因為邋遢所以認識不了新朋友么?”
小白:“有可能,他那個邋遢呀,我是真的看不下去了,別提別的姑娘了……”順著這個線索,接下來小A又問了些問題,最后給出了自己的看法。
我們最終的目的是為了讓小明能找到女朋友,現(xiàn)在沒有女朋友的原因是:小明過于邋遢,因此別人不愿和他交朋友,沒法認識新的朋友,就沒法有女朋友了。
我們要做的是:
- 讓小明改掉邋遢的壞習慣
- 讓小明有新的愛好
- 幫助小明找到新的女朋友
那首先,我們要做的第一步是:幫他改掉邋遢的壞習慣。
小白眼睛一亮:“行,我給你組個團”
小結(jié):到現(xiàn)在為止,BA從PO也好,用戶也好手上拿到些需求,這些需求有些清晰,有些模糊,有些只是表面上的痛點,或者只是結(jié)果類的,BA需要去深挖,就像這個找女票的例子,最后“歪樓”成了提升自己。
在BA的日常工作中,在拆分故事卡之前,需要深入的了解需求,找到用戶真正的痛點以及深入分析痛點的原因,挖掘背后真正的需求,進行分析。
用戶故事確認(User Story Confirmation)
根據(jù)小A的分析,我們要做的是:
1. 讓小明改掉邋遢的壞習慣
拿到這個任務之后,小A還是需要進行更詳細的深入細節(jié)分析,以及最終和小白小明的確認。小A自己對這三個任務進行了細致的分析拆解,小明改掉邋遢的壞習慣,那怎么改變呢?小A列了以下幾個維度:
1. 小明要保持自身的衛(wèi)生
2. 小明要保持居住環(huán)境的衛(wèi)生
3. 小明要提高自己的生活品質(zhì)
隨后,對于之前提出的點,小A都進行了類似的分析拆分,于是小A得到了一批像下面這樣的用戶故事
作為:小明
我希望:保持自身的衛(wèi)生
因此:我可以一直保持自己衛(wèi)生干凈從而改掉邋遢的壞習慣
AC1: 小明每天要換干凈的衣服出門
Given: 小明需要出門
When: 小明挑選衣服
Then:
1.衣服不能是昨天一樣的
2.衣服需要是干凈的
小明帶著這堆用戶故事,找到了我們小白,小白表示,很滿意,可以開始實施了
小結(jié):當BA了解清楚了需求之后,需要給他們一定的時間,去細化,將他們拆成大小和功能都合適的用戶故事,每個用戶故事都要盡量滿足INVEST原則,這樣才能在后面交給我們的開發(fā)同學進行實現(xiàn)。就像故事中小A準備好了很多用戶故事(user story)。在這之后,需要和我們的客戶或者是業(yè)務負責人進行確認,確保我們的每一個用戶故事都是滿足業(yè)務需求的。
每張卡在放到迭代Backlog之前,都需要和客戶業(yè)務負責人進行確認,確保業(yè)務,設計細節(jié)滿足需求。
迭代計劃會議 IPM (Iteration Plan Meeting)
小A帶著這用戶故事,和小白以及小白組的團進行了親切友好的溝通,俗稱IPM (迭代計劃會議),這個團里有 小代 和 小Q
首先,我們的小白介紹了自己的訴求:“讓小明改掉壞習慣,從而找到女朋友”
“我想讓小明找到女朋友,根據(jù)我和小A的分析,第一步,我們需要先讓小白改掉些壞習慣,變的不那么邋遢!吶~ 背景就這么多。”
接著小A說介紹了拆解的小目標,包括下面這個用戶故事
作為:小明
我希望:保持自身的衛(wèi)生
因此:我可以一直保持自己衛(wèi)生干凈從而改掉邋遢的壞習慣
小明每天要換干凈的衣服出門
Given: 小明需要出門
When: 小明挑選衣服
Then:
1.衣服不能是昨天一樣的
2.衣服需要是干凈的
這時候小代同學說話了:“衣服不能和昨天一樣的話,那可以和前天一樣么?或者周五能和周一一樣么?”
這時候小Q同學說話了:“怎么定義不一樣?扣子不一樣就算不一樣,還是必須款式顏色都不一樣算不一樣”
小A說: “嗯嗯,你們說的對,應該再清楚一點,你們看哈
- 衣服相鄰的兩天不能是一樣的,也就是說,如果周一穿了紅色的衣服,周二就不能穿,但是周三及以后可以有一天穿。
- 衣服不一樣,意味著要么顏色,要么花紋款式,二者至少有一個不同,扣子不一樣不算不一樣”
小代和小Q同學表示詳細可以,同時小白也認同。大家達成了一致,我們的用戶故事變成了這樣
作為:小明
我希望:保持自身的衛(wèi)生
因此:我可以一直保持自己衛(wèi)生干凈從而改掉邋遢的壞習慣
AC1: 小明每天要換干凈的衣服出門
Given: 小明需要出門
When: 小明挑選衣服
Then:
1. 相鄰兩天衣服不能是一樣的
例如:第一天是紅色的衣服,第二天不可以穿這件,第三天就可以了。
2. 衣服的不同需要至少滿足下面兩個條件
1. 顏色不同
2. 款式不同
3. 衣服需要是干凈的,在穿之前必須是洗過的
緊跟著 小A讓大家給這個卡估了點
小結(jié):在迭代計劃會上面,大家需要對細節(jié)達成一致,BA或者PO(業(yè)務負責人)需要給團隊中的每個人講清楚,事情的背景和訴求,BA需要講清楚后續(xù)大家需要做的事情,并且需要給問題以回答
IPM(Iteration Plan Meeting)迭代計劃會議主要是跟客戶保持溝通與信息更新的一個會議,同時和開發(fā)達成一致
開卡 (story kick off)
開完了IPM之后,小A將已經(jīng)寫好在系統(tǒng)里面用戶故事,在物理墻上做了可視化,形成了看板,在這個看板上面,掛著我們剛才的故事
作為:小明
我希望:保持自身的衛(wèi)生
因此:我可以一直保持自己衛(wèi)生干凈從而改掉邋遢的壞習慣
AC1:小明每天要換干凈的衣服出門
Given: 小明需要出門
When: 小明挑選衣服
Then:
1. 相鄰兩天衣服不能是一樣的
例如: 第一天是紅色的衣服,第二天不可以穿這件,第三天就可以了。
2. 衣服的不同需要至少滿足下面兩個條件
1. 顏色不同
2. 款式不同
3. 衣服需要是干凈的,在穿之前必須是洗過的
小代同學告訴小A說想開這個卡,因此現(xiàn)在小A 小Q都圍在了小代同學身邊,小代同學說:“這個卡我要做兩個事情:
- 保證小明的相鄰兩天衣服不同
- 保證衣服穿之前是洗過的
我們到時候check的場景是
- 小明第一天穿紅色的衣服,第二天不是紅色的,第三天是紅色的,且洗過
- 小明第一天穿襯衣,第二天是T恤,第三天是同一個襯衣,且洗過
- 小明第一天穿紅色襯衣,第二天是黑色T恤
大家看這樣可以么?”
小Q同學說:“看下第四天的情況吧,不能和第三天一樣,但是可以和第一天或者第二天一樣”
小A同學說:“洗過是沒有味道沒有污漬的哈”
小代和小Q看著小A……
小A笑著說:“好,我加到用戶故事里面”
作為:小明
我希望:保持自身的衛(wèi)生
因此:我可以一直保持自己衛(wèi)生干凈從而改掉邋遢的壞習慣
AC1:小明每天要換干凈的衣服出門
Given: 小明需要出門
When: 小明挑選衣服
Then:
1. 相鄰兩天衣服不能是一樣的
例如:第一天是紅色的衣服,第二天不可以穿這件,第三天就可以了。
2. 衣服的不同需要至少滿足下面兩個條件
1. 顏色不同
2. 款式不同
3. 衣服需要是干凈的,在穿之前必須是洗過的
1. 不能有污漬
2. 不能有異味
check 場景:
我們到時候check的場景是
- 小明第一天穿紅色的衣服,第二天不是紅色的,第三天是紅色的,且洗過
- 小明第一天穿襯衣,第二天是T恤,第三天是同一個襯衣,且洗過,第四天是第二天的T恤且洗過
- 小明第一天穿紅色襯衣,第二天是白色T恤
小結(jié):開卡,story kick off過程中,BA需要讓Dev講清楚,整個卡的范圍scope,以及大家一起聊清楚卡的驗收場景,根據(jù)AC(驗收標準)來判定怎樣才算整個卡結(jié)束,進入到測試階段。同時,也可以補充一些之前沒有想到過的細節(jié),讓Dev QA 都清楚卡需要做些什么。
每張卡在被分配給Dev之前,Dev需要根需求輸出方,需求驗收方一起達成理解一直,這個溝通的過程稱為“開卡”
站會 (Stand Up)
自從整個團組了之后,大家每天早上都會開一個小會,為了不讓整個會時間太長,都站著開……俗稱站會,每個同學說說自己昨天在做了什么,今天要做什么,遇到什么困難。
在今天的站會中,小代同學說:“我昨天開始做讓小明每天換衣服的卡,今天要繼續(xù)做,但是昨天我遇到一個問題:小明家里沒別的樣式的衣服,都是一毛一樣的襯衣,做不到不一樣”
小A:“嗯……我找小白想想辦法吧,你先做其他的AC吧。”
小A同學找到了小白說出了了遇到的困難,小白說:“這樣啊,我今天晚上讓他下單,明天就送到了……”
小A:“那就再好不過了,盡快能解決,這個卡就不會被block住了”
第二天的站會小A說:“我昨天細化了后面要做的故事
今天要繼續(xù)細化”,然后對小代說:“昨天我問了小白,今天衣服都一樣的事情就可以解決,你可以去check一下。”
小結(jié):每天的站會是大家溝通的時間,每個人都知道大家的進度,同時遇到有問題的人能夠及時提出來。
每天BA都需要參加站會,更新自己做的事情,同時通知到Dev一些新的信息
結(jié)卡 (Sign Off)
所有的問題都已經(jīng)解決了,按照時間小代的計劃,第一個用戶故事應該已經(jīng)可以check了,果不其然,小代問了問小A和小Q的時間,大家表示下午可以,所以就約好了下午大家一起把這個卡sign off了 俗稱 desk check
時間來到了下午,小A和小Q聚集在小代準備好的場景下,
大家一起回顧了下驗收場景:
- 小明第一天穿紅色的衣服,第二天不是紅色的,第三天是紅色的,且洗過
- 小明第一天穿襯衣,第二天是T恤,第三天是同一個襯衣,且洗過,第四天是第二天的T恤且洗過
- 小明第一天穿紅色襯衣,第二天是白色T恤
小代開始模擬第一個場景:
- 第一天小明穿了紅色的衣服,干凈, check 過!
- 第二天小明穿了黃色的衣服,干凈, check 過!
- 第三天還是紅色,干凈, check 過!
小代開始模擬第二個場景:
- 第一天小明穿襯衣,干凈, check 過!
- 第二天小明穿襯衣,嗯?
“意外意外…… 我再調(diào)試一下” 小代說到。
于是小Q和小A各做各的事情去了,過了一會兒小代說OK, 小Q和小A就又聚了過來
這次順利的過完了所有的場景
小Q說:“我還想看下第二天白色T恤如果當天染上了污漬,下次穿污漬消失?!?br>
于是,小代模擬了場景,并順利通過了小Q新加的驗證場景。
自此,小A 小Q 小代結(jié)束這張卡的驗證,這張卡自此進入了測試階段,小Q開心的拿著卡測試去了~
小結(jié): sign off的過程是需要 BA QA Dev 對Dev做出來的結(jié)果進行一系列的驗收工作,保證功能的完整可交付。
Dev把自己對應的卡開發(fā)完成提交代碼后,需要根據(jù)需求輸出方(BA+UX)在測試場景下showcase驗收需求,否則不可以將卡挪到下一個泳道
成果展示 (Showcase)
忙忙碌碌的日子過,整個迭代結(jié)束了,看上去已經(jīng)有了明顯的成效,需要給小白看下這段時間的成果,于是我們需要showcase
這天,小白在場。
小A說:“大家好,這段時間我們針對:讓小明改掉邋遢的壞習慣,進行了如下的行動,我們實現(xiàn)了:
- 小明要保持自身的衛(wèi)生
- 小明要保持居住環(huán)境的衛(wèi)生
- 小明要提高自己的生活品質(zhì)
下面我們一起看一下我們的實現(xiàn)”
這時候小A用模擬小明分別展示了穿衣,居住,交友等一系列場景。
小白表示很滿意, 同時問了些問題。
小A同學也都一一做了解答
這次showcase就在這樣輕松友好的氛圍中結(jié)束了。
但是,鬼知道小A在準備這次showcase之前經(jīng)歷了什么,showcase前10分鐘的模擬小明不工作,衣服顏色不正確,衣服樣子不改變等等。
還好有驚無險。
小結(jié):為降低項目風險,每個迭代的功能完成后,會跟客戶showcase,將本迭代完成的功能演示給客戶看
復盤(Retro)
迭代結(jié)束了,我們看看有什么可以改進的,下次別再出同樣的錯誤
小A同學主持了這次復盤會議,分別讓大家都寫了 well, less well, suggestion 也形成了需要做的action
小A,小Q,小代拿走了各自的action 開始了下一輪的迭代……
小結(jié):每個迭代結(jié)束,BA需要參與復盤,在整個過程中大家一起回顧好的不好的,并且承擔一些改進行動
就此我們敏捷項目上面,一個BA的職責基本上介紹完成了,做軟件項目其實和上面的故事是一樣的。都需要BA同學在整個過程中承擔相應的責任。從詳細的分析需求,給出用戶故事,到最后用戶故事的實現(xiàn)進入生產(chǎn),每一個環(huán)節(jié)都和BA息息相關。因此作為BA需要有足夠的耐心細心以及一定的經(jīng)驗來保證每一個功能的完整,進而完成整個項目。
當然團隊里面的每個人都需要為我們整個項目負責,BA是其中的一部分,也是不可缺少的一部分。每個BA都在努力,讓項目更好的實現(xiàn)客戶,用戶的需求。