聊完 Smart value,我們繼續來講解 Jira Automation 的 Components。
首先來聊一下 branch 的一個應用。在敏捷開發裡,有一個很重要的要素是經驗主義,也就是我們透過不斷累計的經驗去學習,讓未來的我們可以更好。這邊舉一個 Scrum 的例子,我們通常會在 SP2 時去拆分 Task,得出我們預計這個 Sprint 要做的事。
然而,我們並無法再有時間盒的 SP2 中,將 Task 列到完全不會有意外。一來是釐清資訊完整程度的成本,我們 80% 的資訊,可能只需要 20% 的時間就可以揭露,但是剩下 20% 資訊,我們可能就要花 80% 的時間與精力才有辦法;二來是,的確就是有些事情是我們當時無法想到,那我們能做的就是即時應變,然後再將她作為一個經驗去學習。
那麼問題來了,我要怎麼在 Sprint 結束時,快速區分哪些 Task 是當初沒預想到的,帶到 Retro 中去學習呢?這時候我們就可以透過 Jira Automation 幫助我們做一個 label 標記啦。
這邊先有一個思路:我們非預期的 Task,通常是該 Item 開始實作時才會湧現出來的,只要是在實作前拆出來的 Task,都是算預期內。所以我們可以設成當 Item 被拉到實作中時,只要是他現有的 subtask issue (as Task),就先上一個 Label SP2-Task
。這樣其他沒有被標記的 Task,就是非預期的了!
腳本如圖:
所以我們就可以將 Trigger 設置為 Issue transitioned 設定他如果是從 To Do 變為 In Progress 去觸發,再用 Issue fields condition 篩選只有 Level 2 的 Issue 會往下走,最後透過 Branch rule / related issues component 將目標轉為該 Item 的所有 Sub-tasks,去執行 Edit issue 的 action,以增加他的 Label。
簡單來說,Branch 功能可以協助我們將腳本執行目標從觸發的 issue 轉為與其有某種關係的 issues。這幾天我們再講幾個案例與說明讓大家更好理解。