iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0
Software Development

善用工具,現形你的開發流動系列 第 19

利用工具組合產出順暢度圖表:輸入自動化 (1)

  • 分享至 

  • xImage
  •  

Jira 篇

前面在了解了 Lead Time、WIP 等相關指標與圖表後,現在就該來嘗試搭配工具去建立這些產出物了。前面談到要降低紀錄成本的對應方案就是透過自動化,筆者這個過程分為三種自動化:輸入、資料、圖表。

而在這篇,會以 Jira 為核心建立起一套解決方案:

  • 輸入自動化:利用 Automation Rules 自動化紀錄時間戳
  • 資料自動化:透過 Jira Cloud for Sheets 將資料匯出,將數據運算成指標
  • 圖表自動化:透過 Google Sheet 建立報表,即時將指標轉成圖表

這邊會以 Jira 的 team-managed 類型的專案進行展示,如果你使用的是 company-managed 類型的專案,可能會需要貴組織擁有權限的同事協助處理。會選擇 team-managed 類型的專案作為展示,也是因為該專案對團隊來說比較彈性,能不透過他人客製化的面向比較多,但缺點就是缺少了不少功能。而本主題正是希望傳達「當使用的工具受到局限時,仍能夠想辦法獲得自己想要的指標」的概念,所以卻也剛好。

建議在閱讀本篇時,可以先在 Jira 建立一個 team-managed 類型的專案一起練習。這邊會建立一個名為 iThome Ironman 2024 Team 的專案作為示範。

第 12 章:輸入自動化

分析需求

今天要產出的圖表有:

  • Lead Time Run Chart
  • Lead Time Distribution Chart
  • Cumulative Flow Diagram
  • Delivery Rate / Throughput / Velocity

這時候就要分析需要哪些指標去建立圖表,這些指標可以用哪些數據計算得出。

Lead Time Run Chart 會需要的有每個產品待辦項目(PBI)的 Lead Time (天數) 以及其何時交付的時間戳,這樣才可以知道順序或是收斂成日期;Lead Time Distribution Chart 則是 Lead Time (天數) ;Cumulative Flow Diagram 需要知道每天在各階段的 PBI 有幾張;Delivery Rate / Throughput 是需要何時交付的時間戳,如果是 Velocity 還會需要知道工作量的故事點多少。

所需指標一覽:

  • PBI 的 Lead Time (天數)
  • PBI 何時交付的時間戳
  • PBI 的故事點
  • 每天在各階段 PBI 張數

其中各階段需要的 PBI 張數會比較複雜,先定義有幾個階段是想關注的,一個階段的定義就是從可以開始做,與正在做的,當做完就會移動到下一個階段。也就是 To-Do 和 Doing 兩種狀態,當 Done 時,也就代表另一個階段的 To-Do。所以要知道 PBI 是哪幾天停留在在某個階段,通常只要紀錄 PBI 進入這個階段的時間戳即可,等同於上個階段完成的時間戳。

這邊以 Scrum 的情境去考慮,大概會分為以下幾個階段:

  • Backlog: 等待排序,還沒有要開始做的。
  • Refined: 已經被釐清過,寫下驗收標準,等待被選進去開發。通常會以有估算出工作量故事點作為這階段完成的判斷。
  • Selected: 這個迭代週期預計要完成、專注的。通常代表被選進了 Sprint Backlog,一但被認領就會進入開發階段。
  • Development: 進入開發階段的,團會在這時候實作功能。
  • Testing: 進入測試階段的,團隊會進行驗收測試與回歸測試。
  • Review: 進入檢視階段的,通常會交給 Product Owner 或客戶檢視的。
  • Deployed: 已經部署到正式環境中,可能搭配 feature toggle。通常完成時也代表交付完成。
  • Released: 已經釋出給使用者使用,開放時間點則以產品的商業考量為主。這階段先不考慮。

對應的時間戳為

  • Backlog: created at ~ refined at
  • Refined: refined at ~ selected at
  • Selected: selected at ~ began to develop at
  • Development: began to develop at ~ developed at
  • Testing: developed at ~ tested at
  • Review: tested at ~ reviewed at
  • Deployed: reviewed at ~ deployed at

為了知道某天某階段的張數,就可以直接統計擁有該階段開始的時間戳,但沒有結束時間戳的 PBI 數量。例如我要知道某天處於 Testing 階段的 PBI 有幾張,我可以統計所有 Item 中,擁有 developed at 時間戳,但沒有 tested at 時間戳的 PBI 有幾張即可。

而前面所需的另外兩個指標,也剛好可以在這裡找到對應的時間戳數據:

  • PBI 的 Lead Time (天數) :selected at ~ deployed at
  • PBI 何時交付的時間戳: deployed at

到此就釐清要建立基於指標的圖表,會需要在 PBI 中搜集以下數據:

  • created at
  • refined at
  • selected at
  • began to develop at
  • developed at
  • tested at
  • reviewed at
  • deployed at
  • effort

數據儲存:建立欄位屬性

來到 Project settings 中的 Issue types,選擇主要要追蹤的 issue type,如果要追蹤多個 issue types,就重複本小結的步驟即可。

ScreenShot-2024-10-03-at-22

為了較好截圖展示,以及聚焦,本篇會先將無關的欄位都去除。

ScreenShot-2024-10-03-at-22

其中各時間戳類型的數據,會使用右邊側邊欄的 Time stamp 欄位型別進行建立相關欄位。而 created at 本身已經內建類似的欄位了,就不用另外建立了。 effort 也對應到內建的 Story point estimate 欄位。

ScreenShot-2024-10-03-at-22

建立完成大致如此:

ScreenShot-2024-10-03-at-22

好,接下來就讓團隊成員每到一個狀態後,就幫忙更新一下時間戳吧!真是太好了呢~ 才怪!!!

ScreenShot-2024-10-03-at-22

輸入自動化

接下來正是最困難的地方,如何讓輸入這些數據的過程更加簡便,甚至是不用刻意去做,就像自動化一樣呢?如果每此都讓成員像上小結尾的動畫一樣輸入,筆者能想像永遠不會有數據搜集是完整的一天。

這時候可以重新檢視每個時間戳應當被記錄的時機點:

  • created at :當 Item 被建立時,系統就會自動記錄
  • refined at :當工作量故事點被填寫時,也就是 Story point estimate 有數值時
  • selected at :被納入 Sprint Backlog 時,通常確定時間點是按下 Backlog 介面的 Start sprint 按鈕開始當前 sprint 的時間時。
  • began to develop at :當這個 Item 開始開發時
  • developed at :開發完時
  • tested at :測試完時
  • reviewed at :檢視完時
  • deployed at :部署完時

所以大致分三種情況:

  • 欄位填寫時
  • Sprint 開始時
  • 更換狀態時

這時候就可以善用 Jira 的自動化相關欄位的填寫了!咱就先從簡單的自動化方式講到相對複雜的吧!

自動化:更換狀態時

筆者假設在 Jira 的使用情境中,在 Board 中,會有數個欄位,並對應到上述的狀態。分別是:

  • Selected
  • Development:
  • Testing:
  • Review
  • Deployment
  • Done

如果沒有的話,可以仿效下面的動畫去建立。

ScreenShot-2024-10-03-at-23

做完大致如此:

ScreenShot-2024-10-03-at-23

接著就要進行自動化的設定,先到 Board 右上方的 ⋯ 欄位選擇 Manage workflow

ScreenShot-2024-10-03-at-23

這時候會進入 workflow 的編輯介面,一開始圖中的元件可能會點混亂,可以透過拖曳去讓佈局好讀一點。

ScreenShot-2024-10-03-at-23

這時候點擊每個階段的 Any,到右邊側邊欄新增一個 Rules,然後選擇「Update an issue field」,選擇對應要更新的欄位,並在賦值的單選項目中選擇「Use date and time of transition」即可。這代表當 PBI 被拖曳到對應 Board 欄位(Column)時,會更新指定的屬性欄位(Field),這兩者的對應關係分別為:

  • Development: began to develop at
  • Testing: developed at
  • Review: tested at
  • Deployed: reviewed at
  • Done: deployed at

ScreenShot-2024-10-03-at-23

若是透過文字敘述仍不知道如何新增 Rules,可以參考下方動畫:

ScreenShot-2024-10-03-at-23

敏銳的讀者可能會發現,每一個規則都會有一則警告訊息,那是因為這個 workflow 是針對所有 issue types,而 Epic 和 Subtask 並沒有包含是才新增的屬性欄位導致。為了簡化這次的示範,先忽略這樣的訊息。

這時候點擊右上方「Update workflow」按鈕,在點擊「Save」就可以了。

ScreenShot-2024-10-03-at-23

來驗證一下是否有成功,回到 Board 介面。如果讀者的介面沒有任何欄位,記得先建立一個 Item 並且先 Start sprint。

ScreenShot-2024-10-03-at-23

點開 Item,先確認右下角的屬性欄位都是空值。

ScreenShot-2024-10-03-at-23

這時候試著將 Item 一個個拖曳到個欄位,每次拖曳時都可以檢查是否對應的屬性欄位有更新當時拖曳時的時間戳。

ScreenShot-2024-10-03-at-23

最後驗證,所有屬性欄位都成功自動化了!這樣當團隊在更新 PBI 的狀態時,就會自動當時的時間戳,不再需要自行輸入了,如此便完成了更換狀態時的自動化了。

ScreenShot-2024-10-03-at-23

明天會說明剩下的自動化該如何實踐!我們明天見~


上一篇
如何善用工具在工作場域現形流動順暢度?
下一篇
利用工具組合產出順暢度圖表:輸入自動化 (2)
系列文
善用工具,現形你的開發流動31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言