為什麼你應該遵守0 Bug 原則?
你處理過無數 Bug ,卻不見得明白正確處理 Bug 的真正鐵則。本文僅介紹作者一家之言,歡迎討論。今日書單彩蛋:《數據科學家修鍊之道》。
1你處理過多少個 Bug你處理了多少 Bug ?100個?200個?還是2000個?
可能你自己也不能說出準確的數字到底是多少,因為它始終在變化。
但我知道我們究竟有多少 Bug :0個。
你究竟參加過多少次 Bug 分揀會議?你在 Bug 管理上用了多少時間(還是僅僅將缺陷從這個版本帶到下個版本)?
作為團隊經理,我每月會花費半小時在 Bug 管理上。並且,同一個 Bug 從未在我眼中出現過第二次。
2如何正確地處理 Bug?答案是使用0 Bug 規則。
這是基於我在過去的5年中,在不同scrum團隊中實現不同產品的經驗所得。
我們也嘗試過其他的辦法,但全部都失敗了:例如說,我們曾嘗試過提升 Bug 管理在產品待辦事項中的優先順序,但是這完全沒有用。
客戶總希望多開發一些功能,而不是解決 Bug 。所以在這種情況下, Bug 管理就會被推遲到下一次迭代。
但使用0 Bug 規則的話, Bug 管理就可以有條不紊地進行。
0 Bug 規則非常先進,但是它是處理 Bug 的非常簡單的過程。
它強調了一個你需要遵循的簡單規則——每當你遇到一個新的 Bug ,你可以選擇立刻去修復它,或者你選擇不再修復它,然後也不再去想到它。就是這麼簡單。
3為什麼 0 Bug 原則是唯一可行的辦法?Bug 可以分為2類:
所以,讓我們從理論上來討論一下如何處理第二類 Bug ——非sprint Bug :
1. 你可以選擇立刻修復它(或者在下一個sprint修復,但不能再晚了)
2. 如果修復這個 Bug 的價值不大,你可以選擇不再修復它
3. 你可以將 Bug 推遲到之後處理(幾個月後,或是下一個版本中)
請你永遠,永遠,永遠不要推遲 Bug 。請儘力避免。如果你現在不修復它,那你永遠都不會再修復它。
那我們該怎麼辦?我認為你只需要立刻修復它,或選擇永遠不修復。這是我們在文章一開始就討論過的簡單規則。
立刻需要修復的 Bug 包括:「兩名用戶不能同時進入UI。」
如果修復它需要超過2天,你可以選擇不修復的 Bug 包括:「當屏幕解析度為768X1280的用戶使用Safari時,登錄頁面的幫助文本是模糊的。對於其他的瀏覽器,或者其他的屏幕解析度來說就沒有這個問題。」
《皇帝的新衣》故事中的小男孩哭著對皇帝說:「可是他什麼都沒有穿!」。對於這個問題他將會問,「為什麼?為什麼這些 Bug 不能推遲?為什麼我不能等到以後再修復它?」
如果以後修復,你會用更多時間,非常多,大概是好幾萬倍時間!
噓!這是一個大秘密!如果你選擇幾周後修復(這裡說的不是下次版本發布時):
你可能不太記得,或者你對這個 Bug 的理解沒有現在來得強烈。
修復需要好的環境——驗證錯誤和修復錯誤的好環境,在幾周以後可能不復存在了。這意味著你需要投入更多的時間來搭建環境。
導致原始 Bug 的代碼已經更改,其特性也會略有不同。
事實就是,你在未來需要用更多時間修復的這個 Bug 只是一個小問題。
第二部分是你需要維護、分類和管理推遲的 Bug 。無論它們是在產品待辦事項中(在一些 Bug 分揀系統),還是在主要功能清單中。
無論是哪種,你都要對它們進行優先順序排序,這也需要時間。越久遠的缺陷要用越長的時間,因為你不能像對待新的缺陷一樣這麼了解它們。
這還不是全部。同時,分揀錯誤很煩人。你曾經參加過 Bug 分揀會議嗎?相信我,這個會得開好久。
照我的經驗來說,如果你的團隊有幾個經理,幾個開發者,幾個產品擁有者和幾個架構師,他們坐在「 Bug 的法庭」中,討論如何處理 Bug ,這場談話最終會變成沒有贏家的戰爭:
開發經理:「現在修復這個危險很危險!我們不如推遲吧!」
產品擁有者:「你根本沒有考慮到用戶體驗!沒有為用戶考慮!」
開發者:「我們不用使用Java,只要做一個簡單的GO模塊就可以提升目標機器的性能。」
架構師:「如果要修復這個 Bug ,我建議我們放棄extJS而轉向Angular,它性能很強大。但我們要記住,修復可能會帶來安全影響。」
QE:「測試這次修復非常簡單,我可以在2小時內完成。當然,如果需要在所有瀏覽器中測試,模擬多用戶使用就會要好多天。我們要確保從規模的角度不會有回歸測試。」
然後這將繼續下去……
大家已經知道這個秘密了,你將永遠不再修復這個 Bug ,它將永遠在你的系統里。 Bug 的數量會越來越多,無論你將系統部署在哪裡,這些 Bug 都會跟著你。
你一次一次的分揀它們,在每周報告中提到它們,在質量指標中計算它們。但是,在任何情況下,這些 Bug 都不會被修復。
還記得《皇帝的新衣》中的孩子嗎,他哭著說:「這是為什麼?為什麼?為什麼呢?」
如果你決定了現在不修復它,這意味著你現在有更重要的事情要處理。可能是添加新功能。
隨著時間的流逝,你會推遲更多的 Bug ,這個 Bug 需要和那些新的 Bug 競爭到底先處理誰。所以如果在現在,只有這個 Bug 的時候你不去修復它,那將來有更多 Bug ,你憑什麼覺得你會再回頭來修復這個 Bug ?
40 Bug 原則厲害在哪?
當我們選擇混合 Bug 和用戶故事列表時會發生以下這些事情:
我們和團隊協商完畢,他們承諾會完成前三個用戶故事,也會儘可能修復 Bug 。 Bug 並未得到解決。
類似的sprint又發生了,更多的 Bug 在積壓,而新功能卻都得到了處理。
我們現在也同意,0Bug原則是唯一的解決方法。
50 Bug 原則這麼牛,為什麼沒人用紅包系統由三部分組成:信息
我可以誠實地告訴大家,使用0 Bug 規則對項目不是可有可無的,它非常有效。對我來說最難的一部分就是告訴產品經理,這個方法是唯一有效的正確方法。
這需要產品經理稍微放掉一些手中的權利,這可能不是一件很容易的事情。最好的事情,就是讓他們了解到使用這個規則並沒有拖延進度,反而能事半功倍。
0 Bug 規則的另外一個副作用,由於文化影響,現在開發者都盡自己所能追求高質量,沒有一個開發者希望自己的代碼中有 Bug 。
對大多數(優秀的)開發者來說,如果決定不解決 Bug ,就感覺自己的作品不完美了。由於這個文化,開發者和產品都轉而追求高質量標準。
老司機介紹Gal Zellermayer是一位「萬事通」。在過去的5年中,Gal在VMware公司中管理不同的R&D團隊,所以他對於產品研發周期有很多經驗。
通過創新,通過建立產品待辦事項列表,領導團隊實現項目的同時保持產品高質量,將產品滿意地交付給客戶。但他最追求的是建立完美的軟體團隊,一個可以快速交付高質量產品的團隊。
Gal熱愛新技術,新產品,以及過程。但是最讓他興奮的是和他一起工作的人,能看到他所輔導過的人在事業上取得進步是最令他感到驕傲的事情。
推薦閱讀:
※搞定婆媳關係八原則
※異性之間交往,若不遵守這4個原則,保準會出事
※《原則》已售出一百萬本,但瑞·達利歐並沒有真正的門徒
※《抗菌藥物臨床應用指導原則(2015年版)》解讀
※有原則能讓自己更簡單與世界相處
TAG:原則 |