有了資料輸入後,累積一段間後,就可以來嘗試透過圖表來監測開發流動狀況。其實 Jira 是有內建圖表功能的,只要到 Project Setting 中的 Feature 裡,啟用 Report 即可。
但是在這個圖表的資料來源卻是比較制式的。比如說 CFD 其實使用的應該是 Item 更換狀態的 worklog 的發生時間,這也就會導致如果沒有在正確的時間更換狀態(實務上總會有操作延遲的情況),那就繪製這個圖表資料來源不準確,且無法修正。也沒有 Lead Time,而 Cycle Time 更是需要整合原始碼管理工具,透過連結到 issue 的 first commit 開始算,使用上是相對複雜的。
這時候就遇到了工具的侷限性了,「既然工具沒有提供,那也是沒辦法的事」如果這樣想,就代表不只技術上被侷限,連做事方式的思維上也被局限了,也代表你接受了資料被綁架的事實。
工具只是載體,數據才是靈魂
在數位化時代,似乎很容易接受資料被綁架這件事。例如:用了 Facebook,許多貼文都在上面,也難以遷移到其他地方,就算匯出後,也很難再利用。罷了,就這樣續成為 Facebook 的形狀吧!
但是數值類的資料是相對容易透過匯出轉移的,這些資料的歷史才是珍貴的。工具只是用來方便刻印資訊的載體,而這些靈魂般的數據不應該只限於這個載體。這個工具沒有提供的功能,那就複製數據到另一個工具去嘗試呈現吧!應該是要專注團隊想要怎樣的指標與圖標,而不是只著眼於工具提供了什麼功能而已!
將 Jira 資料匯出到 Google Sheets
能將資料從 Jira 匯出的方式也很多種,比如說:
只要能夠協助團隊將資料抓取出來並用另一個形式再利用都是挺好的方式。而本文展示的是第三者,使用的是 Google Sheet 與 Atlassian 官方推出的 Jira Cloud for Google Sheets 擴充功能去達到目的。
先建立一個 Google Sheets 的檔案
點擊選單列中的 Extension (擴充功能) ,然後尋找 Add-ons(外掛程式) 並且點擊 Get add-ons(取得外掛程式)。
在 Google Workspace Marketplace 的搜尋框輸入 Jira Cloud for Sheets,通常只要輸入 Jira 應該就會跳補完提示了。送出搜尋關鍵字後,就會在下方的清單中看到要安裝的 Jira Cloud for Sheets 擴充功能,將它開啟。
接著就點擊 Install,接著會進入一系列的授權設定與同意畫面,這邊就不多截圖贅述了。授權範圍包括包含讓這個擴充功能可以操作使用者的所有試算表,這部分有疑慮的再自行評估。但因為這個是 Atlassian 官方推出的擴充功能,我想可信度還是可以接受的。
安裝完成後,點擊選單列的 Extensions,接著點擊 Jira Cloud for Sheets 的 Open,以開啟這個擴充功能的側邊欄。
第一次使用時,會要使用者將這個擴充功能與 Jira 做連結,點擊 CONNECT 按鈕後,會自動進行認證步驟。
若是只看到顯示六位數字的驗證碼,這時候的讀者感到困惑找不到哪裡可以輸入,其實有可能是因為彈出式視窗被封鎖了。可以去檢查是不是該視窗被瀏覽器封鎖,打開後自行輸入到彈出視窗的輸入框中繼續程序。
輸入完數字後,會跳到授權同意頁面,授權 Google Sheet 可以獲取 Jira 的資訊與數據。
授權完後就可以看到側邊欄出現了一些列的選項,這時點擊 Get issues from Jira 去開啟獲取資料的相關設定頁面。
在這個頁面中,又分成三個分頁,分別是:
這裡筆者將三個分頁個別截圖並且合併成同一張圖,方便檢視與講解。
在 ISSUES 分頁中,在 Import type 其實有分四種,這裡需求不大的話使用預設的 Basic 即可,若是有比較複雜的篩選需求,建議可以直接使用 JQL 的型式,這邊之後另外邊寫篇幅詳述。在 Basic 的選項中,這邊示範的部分只設定了 Projects 和 Issue Types。
在 FIELDS 分頁中,現在版本比以前聰明,似乎會直接羅列這個專案有用到的客製化屬性欄位,不用再像以前一樣翻找。筆者這裡只透過 EDIT 介面去重新調整順序而已。
在 SHEDULE 分頁中,第一次使用時,會發現需要另外授權,為方便閱讀,比另行再下方補述。這個分頁的設定是筆者認為這個擴充功能強大的地方,他可以定期更新從 Jira 來的資料到 Google Sheets 中,讓獲取資料這部分自動化,這就是我們想要的!筆者這邊設定每小時更新一次資料,並且三個月內過期。但通常實務上應該會設定一年後這個自動化授權才過期比較方便。
都設定完成後,就可以試著點擊這個頁面正下方的 GET ISSUES NOW 按鈕,嘗試獲取數據資料看看是否符合預期囉!如果沒問題,就可以讓這些資料按照設定定期更新了。
比較需要注意的是,每次更新資料時,都是直接取代這張工作表,所以強烈建議不要在這張表上進行任何設置,而是透過建立其他工作表,直接讀取這份工作表的內容就好。這部分筆者會再計算與製圖時再次詳述。
補充:Jira Cloud for Sheets 背後運作原理
安裝時的授權
在啟用 Jira Cloud for Sheets 這個擴充功能時,主要是授權 Google Sheets 能夠讀取 Jira 的資料。
但在啟用 SHEDULES 時,會在授權一次 Atlassian 可以存取使用者的 Google Sheets。筆者比較授權前後在 Google 帳戶裡資料與隱私性頁面的內容,差異在授權網址不太一樣。從 https://atlassian-gapp.atl-paas.net/
更換到 atl-pi-dev.net
的差異,這部分原因可能與官方服務架構設計相關,細節就不得而知了
但由這幾次授權的資訊,可以推測這個整合工具的資料流動架構。大致上是透過 Jira Cloud for Spreadsheet 這個服務當作中間人去操作。
透過該服務提供的頁面,去進行設定相關的操作。當要獲取資料時,則由這個服務向 Jira 呼叫 API,然後再呼叫 Google Sheets 的 API 將資料覆蓋制當前授權的這個試算表(spreadsheets)的工作表(sheet)中。而不是單純的由 Google Sheet 單方面呼叫 Jira API 然後自己處理。
下圖是筆者自己推測背後運作原理的概念示意圖,可以參考看看,但不能保證背後實際運作方式。