我已經使用了大量的問題跟蹤系統,包括gnats(唉!),Bugzilla(略少),Trac,Jira和現在的FogBugz。我最喜歡Trac,但這可能是因爲我不是FogBugz的管理員,而且在目前的版本中,它被傷心地和可怕地錯誤使用。
讓工作流程正確非常重要,而且奇怪的是,它首先決定在bug追蹤器中放置什麼以及如何標記放置在那裏的東西。只要你有一個客戶,所有的開發團隊真的追蹤三種問題:
真實客戶(活錯誤)指出的問題。
目前正在開發的新軟件(dev bugs)出現問題。
我們想要在未來做的事情(功能)。
當然,這三類問題都有各自的優先級。只是按鈕上拼寫錯誤的「活動錯誤」可能不如阻止公開發布的「開發錯誤」,或者對其他開發,測試等進行門控。
問題的嚴重程度描述了副作用有多可怕。根據我的經驗,這可歸結爲:
程序正在破壞一些東西。數據,客戶被錯誤地計費,錯誤的藥物被分配。這是一樣糟糕的。我曾經在一個系統中工作,在這個系統中,一個軟件指令通過一名維修人員撤回了一個液壓臂。這是一樣糟糕的。
該程序正在崩潰,我們沒有解決方法,但在此期間它不會破壞任何東西(除了被關閉以外)。如果停機時間在某些情況下被破壞,請使用嚴重性#1。
該程序行爲異常,但我們有一個可以實際使用的識別變通辦法。
該方案是行爲異常的方式,很煩人,但不影響結果。
程序需要在一些明確的方式更好:更易於使用,實現了新的功能,運行速度更快,等
是出現了很多在這些系統中的另一個問題是概念'角色'。應用於問題追蹤系統時,角色歸結爲允許誰做事。誰會創造問題?誰可以改變狀態,誰可以將他們重新分配給另一個用戶,誰可以關閉他們等。
在我與之密切合作的中小型團隊中,這套一般規則集運作良好:
任何人都可以創建問題。創建者可以在創建時將問題分配給任何(或大部分)收件人。默認收件人是Issue Triage團隊。開發人員可以通過這種方式記錄他們在代碼中發現的錯誤,並將錯誤分配給他們自己,以便跟蹤他們改變代碼的原因。
Triage團隊滿足(指定間隔)以評估和分配問題。 Triage團隊專門查找重複報告,在這種情況下,新問題被「彙總」到現有問題鏈中;來自該領域的未再生問題,這些問題被分配到QA進行再生產;以及來自客戶的高嚴重性問題。
錯誤的發起者是唯一可以關閉它的人。 QA或CSR發起的錯誤報告不能由開發人員關閉。是的,這意味着CS和開發團隊不同意的錯誤仍未得到解決。當人們不同意時,爲什麼問題跟蹤報告問題會得到解決?如果你想要謊言的數字存儲庫,你有C-SPAN。
有些球隊可能要預訂一張從一個部門移動的問題到另一個經理,其他球隊可以允許任何團隊成員在移動的問題(或返回到)另一支球隊。這可能歸結爲管理層的懷疑,或者簡單地歸結爲誰可以分配工作時間。
分類過程是關鍵。 Triage團隊基本上是由你的組織決定哪些人在做什麼以及接下來做什麼的人。讓團隊定期舉行會議有助於確保真正重要的東西不會被錯過,並且平凡的東西不會由於不注意而被放棄。如果Triage隊列中沒有任何內容,會議領導可以取消會議(concall,netmeeting,無論實施是什麼)。
如果您使用的是Scrum,Triage團隊可能是scrum的主人,決定是否將問題拉入當前衝刺階段,並在進入積壓時正確指定優先級。
它對我來說很理想。你還可以指定管理層如何跟蹤誰在做什麼,他們如何確保每個人都負責任地工作,並且不只是通過告訴「不是我的錯」來指定另一個開發人員來避免責任? – 2009-01-21 12:27:09
團隊領導跟蹤團隊內部發生的一切事情。所以,如果任何錯誤被錯誤地分配,它很快就會被捕獲。 BugZilla有一些非常好的搜索機制,通過它你可以跟蹤大部分的事情,比如誰在做什麼,重新開啓了多少bug等 – Aamir 2009-01-21 12:32:34
+1,因爲它似乎遵循我們所做的。 – Klelky 2009-01-21 12:50:15