Redmine 是一個採用 ruby on rails 實作的 issue tracking system,它是開放原始碼的專案,所以可以自行下載安裝在伺服器上,不過本書主要以工具使用、介紹為主,不打算說明如何安裝。
但有許多廠商提供 Redmine hosting 服務,這裏介紹的一間公司是 plan.io,這間公司 fork 了 redmine 的程式碼實作了自己的版本、並為 redmine 增加了更多功能。該公司提供了按月付費使用,和免費的限制版:
註冊網址:https://accounts.plan.io/signup/Bronze?locale=en
免費版限制:1 project, 2 users, 10 customers, 500mb storage
雖然我們使用免費版只支援 1 個 project,但如果你是付費、或自行架設 redmine 可以開設多個 project。
註冊完成後,plan.io 預設已經幫你建了一個 project,在專案清單內,點擊該 project 即可進入到 project dashboard:
redmine 支援多專案,他的設計是,你必須先邀請人成為用戶,再到 project 內把該用戶加入成為 Project member,步驟如下:
當該 redmine 有新成員的時候,還不代表該成員是你 project 的成員,所以接下來我們接下來要進入你的 project 的設定頁面將已經在 redmine 的用戶加入。
ticket 指的是一則任務,他屬於 project 底下,通常我們要指派一件事給別人就是發一則 ticket 把細節描述清楚並分派給那個人:
這是用來分類 issue 有哪些的功能,如果以軟體業來說就是:
這些分類也可以在設定自行更改調整成符合自己需求的追蹤標籤
在講狀態前,要先談到工作流程,以軟體開發為例,在實作一個功能、或修一個 bug,通常實作完成後,會丟給 PM 或某個人去驗收,驗收如果不通過會打回去請負責的人繼續改,當驗收過了後,就該票就會結束。
所以軟體專案來說,通常狀態的選項有:
這些項目也能夠在設定更改成符合自己需求。
在 redmine 中能夠讓你定義自己的工作流程,像是 實作中 的票只能夠變更為 待驗收 或是 暫時擱置。或是只有 PM 能夠將 待驗收 變更為 驗收中 等等的設定。這也是 Issue tracking 比較重視的地方,工作流程定義、和權限/角色管理。
如果一個任務太大,通常我們會拆分成多個小任務分配給不同人,這時候就需要將一張 顆粒大 的票分派成多張 顆粒小 的票。
例如:
使用方法是先開一張票 實作一個會員功能
,把大綱的把需求寫出來,然後利用該 ticket 畫面上的新增子任務。
子任務可以支援多層,用這樣的方式可以建立出向上方這樣的結構,這樣一來被分派到子任務的人就可以一層一層往上看,相關的資訊就非常清楚、而且還可以從最接近技術核心的地方往上層需求面去看,避免實作與真正的需求脫節。
通常我們開票時,有一個欄位叫預估時間,通常我們會估個時數,盡量一張票在 1-3 小時內完成,如果超過 3 小時的票盡量在拆成多張,因為超過三小時能完成的票通常都有點模糊地帶。
另外公司通常會要求所有人在開始實作票的時候,確實記錄時間並使用票上的編輯功能更新 完成百分比
和 耗用工時
,並填寫過程中的細節。這樣的好處是後需有得追蹤,能夠事後檢討績效。
母票無法設定完成百分比、預估時間,母票的百分比、與預估時間是由子票門平均而來
隨時間一久或規模變大,ticket 會越來越多,這時候需要篩選器來幫我們過濾出我們需要的 ticket,而 filter 則是在問題清單上方的篩選條件。
當我是一間軟體公司的程式設計師,我要知道我今天該做些什麼時,我可以篩選:
被指派為:自己
狀態:實作中 / 暫時擱置 / 已駁回
我們設定的搜尋結果在未來可能會常常用到,這時候我們可以把搜尋條件儲存起來叫做 Eddie 的 TODO
。
搜尋結果儲存也分為個人、或共用的,專案成員能夠各自設定私人的過濾器,管理員人也可以為大家設定各自的 Andy 的 TODO
、管理人員驗收項目
方便各個角色掌握專案狀況。
最後設定好的 Filter 會變成一個快速連結出現在問題清單的右方。
如果你有使用子母票你可能會發現,在問題清單有時候會照樹狀顯示有時候不會,那是因為排序問題,redmine 只有在剛好上一則與下一則是子母票的狀況才會顯示階層,這時候解決方法是:把第一個排序設定為"父問題"
。只要依照父問題做排序上下則的關係就一定是子母票:
管理的人可能底下同時有很多人在做事,想要精確掌握專案進度:
是否有人已經花了一半時間、但完成度只有 10%
可以將 預估時間
、已使用時間
、完成百分比
加過濾器的顯示欄位內,這裏的已使用時間是被指派的人在完成到一段落時填寫的,只要專案的人都有 follow 規則填寫完成百分比、和已使用時間,這裏就會很容易追蹤:
關於時程特別拉出來說,是因為 redmine 只要用對方法在這方面的效果出奇的好,而且能夠在團隊內建立一種良好的文化。甚至有些公司以 redmine 取代打卡、或是直接從 redmine 就能看出某某人的績效如何?有沒有偷懶等等。
工具只佔了一部分,切票是一個非常非常大的重點,能夠建立良好團隊文化,建立在大家做事都有成就感,以把解掉的票為榮耀。因此管理者如何開票、切票就是很大的一門學問。曾經有人說過:「開票開得好的專案就是不知不覺就做完了」。
因此這麼深的學問背後其實是有一套理論在支持的,礙於篇幅這裏提供幾個 tip 讓大家參考:
其實這些做法最終的目的就是:
把模糊釐清到 junior 的人都可以做,風險就會降低、產能容易複製
每張票明確到估得出時間,專案就一定 on time delivery`
在 ticket 的部分提到的回報時間,通常要求參與者把過程遇到的困難、最後選擇的做法、思考過程寫下來的好處是:「你的問題卡了三個小時,也許對別人來說十分鐘就解決了,把過程寫下來,有助於團隊互相學習」此外也能讓管理者了解怎麼幫助團隊成員。
不過在實務上要做到以上兩點絕非容易的事情,通常一人專案的開發者容易採取邊做邊想的方式來做專案,這跟上述的思考方式、和習慣完全背道而馳,也無法估計時間,因此如果要組織一個團隊做事、享受團隊所帶來效率,勢必要改變習慣,而過程其實是需要練習摸索的。
另外在回報細節方面,也是需要管理者好好在團隊中宣導,再三提醒團隊成員記得回報細節、時間並養成團隊成員的習慣。