User Story Refinement

更新於 發佈於 閱讀時間約 9 分鐘
圖片來源:www.freepik.com

圖片來源:www.freepik.com

最近團隊對refinement meeting有一些討論,過去也曾討論過,我認為這一連串的討論很有意思,所以把從過去到現在refinement meeting如何進行與調整記錄下來。要開始寫這篇時才發現,書到用時方恨少,我手邊竟然沒有半本關於Scrum的書,看完幾本卻始終沒有一本是擺在自己身邊的,只好請Google大神幫我找些資料了。

在水果公司時,團隊算是成功的Scrum團隊,特別是自省會議後對團隊的改善是玩真的,而不只是說說感謝誰或是只聽到好話,檢討起來常常會超出預定的會議時間,有時候還會火力四射,之前的自省會議提到一件事情,就是sprint的planning meeting越來越久,甚至到快用掉半個sprint的時間才把目標確認、task切割和時數估完,原因和scrum的另一個活動有關:refinement meeting。

在繼續討論原因前,我覺得需先說明一下團隊過去refinement meeting的運作情況,我加入團隊時就已有refinement meeting的慣例,由團隊全部成員參與(大約1x人),時間在每個sprint (一個sprint兩周)第一周的周五。在refinement meeting召開前,PO會將接下來要做的需求(feature)其發想的成果寫成一份詳細的企劃文件(跟團隊過去開發遊戲的經驗有關)。

raw-image

會議有時會搭配可簡單操作的blueprint雛形展示,然後針對PO將企劃文件所條列的功能切割而成若干的user stories進行討論與估點,當時,這些user stories常遭到抱怨,原因有幾項:(1) 常有非end-to-end的user story、(2) 從模組開發的角度去思考,造成user story間的dependency變高、(3) 從畫面的角度切割,造成user story的內容有重複性、(4) user story的敘述超長卻看不出價值。幾次下來後,在一次的自省會議中,達成了一個共識:user story的切割應該要以使用者能得到的價值為主。

雖然常被抱怨,但當時開發的情況其實還算穩定(burn down chart還算平穩下降),但有一個現象在當時已經開始浮現:需求從發想、refinement後到開工的時間相當長,因此導致這段時間若干的story後來是被捨棄沒有開發的,我稱之為現象而不是問題主要是,若這些story真的是不需要的,捨棄不開發反而是減少後期開發時間的浪費。

第一次調整後,PO調整了user story的寫法,確實滿足了團隊當初所提的重點:價值導向,但幾次下來,PO開始有點抱怨,而團隊成員也有點抱怨,因為每個story都很大,當時估點story point常常有40這樣的數字出現,當然這樣的story不會被接受,因此refinement meeting常常都是在做切割story,事實上這本來就是refinement meeting要做的事,只是當每次的story都很大,開會時間都超長,團隊中非程式的人員例如美術,常常只是陪程式人員耗著。成員會覺得為什麼不乾脆一開始就讓我們自己寫user story,還比較能節省refinement meeting的時間,此外,PO也覺得每次refinement meeting結束後,為了追蹤確保事情都被完成,他要修改許多文件,包含企劃文件、資訊系統上user story的關聯等等。

因此再次在自省會議中檢討refinement meeting該怎麼進行,會議的結論是:PO不再需要寫一份超完整的企劃文件,只要UX完成一份大概的流程圖就能送進refinement meeting,refinement meeting分成若階段:(1) 第一階段由PO用流程圖解釋需求,全員在當下釐清可行性或是提出改善;(2) 第二階段由程式根據流程圖、end-to-end、價值和施工工法進行story的切割;(3) 對story進行估點,估點時美術團隊會再次加入。這三階段不一定要在一次的refinement meeting中全部完成。

但第一次調整後團隊開發是否有遭遇問題呢?這段期間大概實行了8個sprint,事實上有遇到問題,但和refinement無關,而是別的因素造成,為此還畫了幾次魚骨圖檢討原因(有機會再談)。除此之外,因為由團隊進行再切割,story的規模穩定,且在review時,每個story都有可展示的部分,而時程的估計和實際的開發時間也算吻合,可以說是進入開發速度的穩定期,但後期團隊的成員開始增加,開發速度再次出現變化。

第二次調整只實施了兩個sprint,而用新refinement方式所產出的story,因為整體App上市時程上的考量被封存,並沒有真正地被排入planning meeting中,但平心而論,那兩次的refinement meeting是相當有效率的,而且story的品質是全團隊都認為相當優質的結果,只能說相當可惜。

只實施兩個sprint的主因是,在成員增加到2x人(程式、美術、UX、企劃和PO)後,一次的自省會議上,PO轉達一位(相當重要的)stakeholder的意見:他在一次活動中看到許多新創團隊在很短(相較於我們目前App的已開發時間)的時間就能上架一款App,他覺得團隊的應變速度不夠快。針對這點,長久以來的現象終於被拿出來討論,scrum master將資訊系統中,一個需求從開始發想到開工需要時間大概是兩個月(與團隊討論可行性,幾次往返才能完成發想),開工後平均的開發時間大概也是一個月到兩個月(視需求大小),平均來說,一個需求大概要三個月,也可以說團隊的應變時間大概是三個月,雖然不能稱之為waterfall,但在需求釐清確實花了不少時間。

因此,會議中提出了一個建議,團隊分成A、B兩組,每組都有企劃、UX、美術和程式,針對接下來兩個feature,撥出sprint約30%的時間由兩組成員進行發想,發想結果由stakeholder選擇後,馬上進行planning並開發,就時間軸上來看,這兩個feature從發想到完工只花了2-3個sprint,也就是應變時間從三個月縮短到一個月,能縮短到這麼短,真的是因為改變方法嗎?不完全是,就規模來說,這兩個feature相較於過去開發的feature小很多。而且也出現了副作用:sprint n和sprint n + 1這兩個sprint陷入少見的加班期,原因簡單說是過多的context switch,說是撥出30%的時間,但發想會議常常無法如期結束,有時還要加開,延誤到原本的開發,成員為了追回進度自願加班,就長遠來看這不是好現象。但目前仍有不少團隊成員認為是最好的方式,因為能參與到最一開始的發想,有一種產品就是自己的小孩,而不是幫別人開發產品。

raw-image

就在這兩個需求完成後,團隊開始了另一個client平台Android的開發(原先全力專注在iOS的開發),也就是文章在一開始提到的情況,Server組和iOS組進入收尾期,Server組開始進行performance tuning,iOS組開始修bug與iOS 8 SDK的升級,由於Android組是移植iOS上所有的功能(直接由我和PO決定story優先順序),iOS組和Server組要做的事都是技術細節,PO就交由團隊自行選擇,refinement meeting也好幾個sprint沒有舉行,但這出現了一個問題,story的優先順序也由團隊自行選擇,兩組對於微調的優先順序認知不同,有些微調整需要兩組間的配合,於是iOS組想確定Server組是否能配合某些story,Server組也想知道iOS組能配合那些story,雖然最後都能取得共識,但長時間的會議容易造成會議效率的下降,確認這些優先順序花了不少時間。

因此在本文一開始提到的自省會議中再次討論起refinement meeting,決議是refinement meeting還是視情況召開,除有新需求一定會召開外,只要任何成員認為有需要討論story順序或細節就能跟PO要求召開,而且也將時間固定在原本每個sprint第一周的周五,但不相關的成員可以自由參加,例如技術細節的story討論,美術可以不用參加。該自省會議後確實召開了一次refinement meeting,不過是因為新需求而召開,進行方式原則上算是第二次調整和第三次調整的混和體,PO先講解這次UX調整的理念(這部分還是由UX團隊與公司另外一個部門討論後,由stakeholder定案的),而細節由全成員討論,確認後由開發成員切割story (但竟然忘記估點了XD),和討論施工的優先順序。

Scrum和過去其他開發法不同,只明確定義了極少的幾個活動,其中refinement meeting大多只提到怎樣的story算是ready to plan,但refinement meeting如何進行較少有討論,畢竟如何進行與團隊特性有關,接案團隊與創業(開發自有產品的)團隊的進行就不一樣,對接案團隊來說,對story本身的喜好,團隊較少會有想法(即便有,通常也不具有決定權),只要需求明確能夠施工即可;但創業團隊就會很在意story的內容,會有相當多的意見,refinement meeting就是一個很好的場合讓大家把對需求的想法提出來,否則讓成員失去參與感,這對創業團隊是很大的傷害。

目前refinement meeting在幾次的檢討後,算是抓到一個平衡點,但我也不認為我們的團隊會滿足於現況,重要的是持續改善,對於refinement meeting如何進行,這裡簡單分享我們如何改善給大家參考。

avatar-img
53會員
104內容數
這是從 Medium 開始的一個專題,主要是想用輕鬆閒談的方式,分享這幾年軟體開發的心得,原本比較侷限於軟體架構,但這幾年的文章不僅限於架構,也聊不少流程相關的心得,所以趁換平台,順勢換成閒談軟體設計。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Spirit的沙龍 的其他內容
第一次參加 Agile community in 內湖辦的社群活動 (2017 年),同一天其實也是 C.C. Agile #59,當初報名時想了一下,C.C. Agile 從開始到現在,幾乎快要場場都到,似乎有點在同溫層打滾,是否該換個客場,看看其他地方的社群活動,加上這次的主題很有意思
為了業務的短期目標,工程師靠著意志力加班,勉強達成目標,但大家都知道,這段期間不只完成目標也累積龐大的技術債,本來承諾短期目標達成後,會有時間調整,像是整理技術債,或是讓菜鳥工程師能獲得技術訓練,但想也知道,馬上又會有下個短期目標...
隨著團隊組織方式的改變,個人在團隊中的角色也有了改變,改變至今大概有三個多月,從不同的角度在看事情時,也能得到許多有趣的想法,加上幾次參加C.C. Agile也都能得到意外的驚喜,讓自己反省:自己真的Agile了嗎?真的了解scrum?
這名字是刻意取Stop starting, start finishing的相反,有一陣子在觀察團隊時發現,story/task 的 burn-down線圖會發現到task幾乎都完成了,但story卻還懸在半空中,甚至在sprint結束前一天,還是有不少stories接近完工卻還沒完工。
Acceptance criteria 確保 do the right things,DoD 則是確保 do the things right,兩者合在一起,才會 do the right things right。
一般來說,會斤斤計較估算的數字,一個可能的潛在原因是來自管理層,忘記從哪看來的一句話:總是會得到想要的 KPI。意思是當制定一個指標,總是能得到期望的數字卻不一定能達到預期的效果。
第一次參加 Agile community in 內湖辦的社群活動 (2017 年),同一天其實也是 C.C. Agile #59,當初報名時想了一下,C.C. Agile 從開始到現在,幾乎快要場場都到,似乎有點在同溫層打滾,是否該換個客場,看看其他地方的社群活動,加上這次的主題很有意思
為了業務的短期目標,工程師靠著意志力加班,勉強達成目標,但大家都知道,這段期間不只完成目標也累積龐大的技術債,本來承諾短期目標達成後,會有時間調整,像是整理技術債,或是讓菜鳥工程師能獲得技術訓練,但想也知道,馬上又會有下個短期目標...
隨著團隊組織方式的改變,個人在團隊中的角色也有了改變,改變至今大概有三個多月,從不同的角度在看事情時,也能得到許多有趣的想法,加上幾次參加C.C. Agile也都能得到意外的驚喜,讓自己反省:自己真的Agile了嗎?真的了解scrum?
這名字是刻意取Stop starting, start finishing的相反,有一陣子在觀察團隊時發現,story/task 的 burn-down線圖會發現到task幾乎都完成了,但story卻還懸在半空中,甚至在sprint結束前一天,還是有不少stories接近完工卻還沒完工。
Acceptance criteria 確保 do the right things,DoD 則是確保 do the things right,兩者合在一起,才會 do the right things right。
一般來說,會斤斤計較估算的數字,一個可能的潛在原因是來自管理層,忘記從哪看來的一句話:總是會得到想要的 KPI。意思是當制定一個指標,總是能得到期望的數字卻不一定能達到預期的效果。
你可能也想看
Google News 追蹤
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
如何有效運用Scrum的船舶理論來主持專案檢討會。船舶理論將專案比作船,通過風帆、礁石、錨等元素可視化檢討內容。會議前的準備、進行步驟及專案經理的主持技巧,幫助團隊在輕鬆愉快的氛圍中總結經驗、識別問題、制定改進計劃,從而提升未來專案的成功率。
Thumbnail
在數位時代,Scrum已成為專案管理的利器。本文介紹Scrum的核心角色、工件和事件,並結合我開發CDP的實際經驗,分享如何通過產品待辦清單管理、Sprint計劃與執行、每日站會和Sprint回顧來提升專案靈活性與效率。希望能啟發更多專案經理運用Scrum,優化專案流程。
Thumbnail
會議,是許多中小企業最喜歡做的事情。 曾經看過一個團隊一周最少開7-10個會議,有時會更多,最後的結果大都議而不決,不斷地探討特殊個案的解方,或是調整企畫內容去符合某些小眾的需求。  換個角度來看,這些在職場的日子上,我們有多少企劃、多少的專案提報,總是過不了上面主管、頂層老闆的首肯。
Thumbnail
小王是一家大型科技公司的產品經理,每天的日程表上總是被密密麻麻的會議填滿。他的同事常常取笑他:“你不是在開會,就是在去開會的路上。”這種情況讓他感到困惑:難道經常開會真的是沒效率的表現嗎?
Thumbnail
在一個繁忙的廣告公司裡,有一個叫小李的項目經理。他聰明勤奮,對工作充滿熱情,但他的團隊卻經常陷入一團亂麻。原因之一,就是缺乏清晰的會議紀錄。
Thumbnail
在敏捷開發過程中,每兩週都會有一場回顧會議(retro),PO、UX、RD、QA 會針對該 Sprint 進行檢討和反思,這篇想記錄以產品經理(PO)的角度常被提到的檢討點,一方面是幫助自己成長,另一面是更濃縮自己的產品想法。 誰適合看這篇文章?✔ 對產品經理、產品企劃、產品策略、產品規劃有興
Thumbnail
在產品開發過程中,及早分享文檔初稿並從團隊成員那裡收集反饋是非常關鍵的。這樣做不僅可以在早期階段發現潛在的問題,而且還能讓團隊成員對文檔的發展有所貢獻,從而提高他們對最終產品的接受度。當文檔在創建過程中被共享,它成為了一個動態的工具,可以根據團隊的反饋進行調整和完善。
Thumbnail
會需要出動雙方主管出來解決的事,一定是「講了很多次都無法改善」的
凡是專案,就一定有啟動會議。 啟動會議最主要的目的是讓專案成員、利害關係人齊聚一堂、互相認識,瞭解專案的目標、工作大項、程和里程碑,最重要的是要爭取功能主管對專案的支持,能夠派出成員利用在原部門工作的時間來參與專案。 ERP專案的啟動會議有兩次。
Thumbnail
過去兩年來,我大部分的團務都是以“單次團”的性質為主。不過我運作單次團和單純的One Shot略有不同:角色後續仍可以延續使用,經驗值也可以累積,只是冒險事件會在當天有個收尾。自創團務的準備方式其實不一定要和官方劇本一樣,鉅細靡遺準備好一切,而應該適度留白,隨機應變和玩家互動才是…
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
如何有效運用Scrum的船舶理論來主持專案檢討會。船舶理論將專案比作船,通過風帆、礁石、錨等元素可視化檢討內容。會議前的準備、進行步驟及專案經理的主持技巧,幫助團隊在輕鬆愉快的氛圍中總結經驗、識別問題、制定改進計劃,從而提升未來專案的成功率。
Thumbnail
在數位時代,Scrum已成為專案管理的利器。本文介紹Scrum的核心角色、工件和事件,並結合我開發CDP的實際經驗,分享如何通過產品待辦清單管理、Sprint計劃與執行、每日站會和Sprint回顧來提升專案靈活性與效率。希望能啟發更多專案經理運用Scrum,優化專案流程。
Thumbnail
會議,是許多中小企業最喜歡做的事情。 曾經看過一個團隊一周最少開7-10個會議,有時會更多,最後的結果大都議而不決,不斷地探討特殊個案的解方,或是調整企畫內容去符合某些小眾的需求。  換個角度來看,這些在職場的日子上,我們有多少企劃、多少的專案提報,總是過不了上面主管、頂層老闆的首肯。
Thumbnail
小王是一家大型科技公司的產品經理,每天的日程表上總是被密密麻麻的會議填滿。他的同事常常取笑他:“你不是在開會,就是在去開會的路上。”這種情況讓他感到困惑:難道經常開會真的是沒效率的表現嗎?
Thumbnail
在一個繁忙的廣告公司裡,有一個叫小李的項目經理。他聰明勤奮,對工作充滿熱情,但他的團隊卻經常陷入一團亂麻。原因之一,就是缺乏清晰的會議紀錄。
Thumbnail
在敏捷開發過程中,每兩週都會有一場回顧會議(retro),PO、UX、RD、QA 會針對該 Sprint 進行檢討和反思,這篇想記錄以產品經理(PO)的角度常被提到的檢討點,一方面是幫助自己成長,另一面是更濃縮自己的產品想法。 誰適合看這篇文章?✔ 對產品經理、產品企劃、產品策略、產品規劃有興
Thumbnail
在產品開發過程中,及早分享文檔初稿並從團隊成員那裡收集反饋是非常關鍵的。這樣做不僅可以在早期階段發現潛在的問題,而且還能讓團隊成員對文檔的發展有所貢獻,從而提高他們對最終產品的接受度。當文檔在創建過程中被共享,它成為了一個動態的工具,可以根據團隊的反饋進行調整和完善。
Thumbnail
會需要出動雙方主管出來解決的事,一定是「講了很多次都無法改善」的
凡是專案,就一定有啟動會議。 啟動會議最主要的目的是讓專案成員、利害關係人齊聚一堂、互相認識,瞭解專案的目標、工作大項、程和里程碑,最重要的是要爭取功能主管對專案的支持,能夠派出成員利用在原部門工作的時間來參與專案。 ERP專案的啟動會議有兩次。
Thumbnail
過去兩年來,我大部分的團務都是以“單次團”的性質為主。不過我運作單次團和單純的One Shot略有不同:角色後續仍可以延續使用,經驗值也可以累積,只是冒險事件會在當天有個收尾。自創團務的準備方式其實不一定要和官方劇本一樣,鉅細靡遺準備好一切,而應該適度留白,隨機應變和玩家互動才是…