提高軟體質量實踐——facebook 篇
facebook 從 2004 年的哈佛校園的學生專案在短短的 7~8 年的時間中快速增長為擁有 10 億使用者的世界上最大的社交網路,又一次見證了網際網路創業成功的奇蹟。同時它的產品研發流程也成為了眾多網際網路產品公司的追逐物件。今天我們來看一下 facebook 在產品質量控制方面的實踐。有人說,現在的 google 象早期的微軟,現在的 facebook 象早期的 google. 我覺得不無道理。 雖然 facebook 已經早已不是創業公司,但是不難看出它在產品研發和質量控制仍然保持著創業公司的風格。在產品研發上,他們以小的研發團隊為核心,遵循幾個非常重要的原則:
為了遵循以上原則,facebook 工程師採用以下質量控制手段來保證產品質量:
facebook 之所以採取這種質量控制策略和它的產品特點密切相關:
使用者對社交產品質量的容忍度相對較高。比如發微博,現在連不上,等一會在連線也可以,現在發布不出去可以等一會再發,粉絲數量統計有誤,沒有人太關心。其實 facebook 並不認為自己的質量差。他們認為產品的質量高低不是有多少個 failed 測試用例,有多少個 bug 來確定的,而是有使用者對質量的期望值來決定的。如果使用者對產品質量的期望值很高很高,乙個 bug 漏掉了都會照成質量差的印象,使用者很有可能放棄使用。相反,如果使用者的期望值一般,100個 bug 漏掉了都不會影響使用者繼續使用。所以 facebook 產品發布的條件是滿足使用者對質量的期望值即可。
相對寬鬆的產品發布週期。不像微軟或 google 很多產品已經在市場上,使用者對下一版本的發布時間和新增加功能的期望很高,這往往給產品開發組的壓力很大。facebook 基本沒有這個問題,它有適合自己的發布期限,不用受到外界干擾。
產品發布和監控流程比較完善,即使有漏測的 bug,對使用者的影響可以控制在最小而且可以及時發現及時修復。
facebook 質量控制中引以為豪而且倍受矚目的就是「沒有專職測試工程師」。我這裡需要專門討論一下:
什麼是「專職測試工程師」? 頭銜裡面有「測試」的工程師?專門找 bug 的工程師?專門做質量控制的工程師?等等。
facebook 的確沒有帶「測試」頭銜的工程師,也沒有專門執行產品找 bug 的工程師。每個人都是開發工程師。但是他們的實際工作有區別,有的專門做面對使用者的產品,有的專門做測試,開發工具,有的專門做產品的構建和持續整合工具和流程,有的專門做發布和監控的工具和流程。如果按照傳統意義上的開發和測試的劃分的話,除了第一類外,其他都可以看做專職測試工程師。
facebook 不是惟一乙個沒有帶「測試」頭銜工程師的公司,很多軟體公司都沒有,比如 twitter.
很多人把專職測試工程師指專門執行產品找 bug 的工程師。微軟在 2005 年去掉 ste (software test engineer )崗位,就已經沒有這一型別的專職測試工程師了。
所以個人認為,專職測試工程師是個非常模糊的結論。尤其現在我們對產品質量控制方法的不斷演變和提高,「測試」的概念不僅僅是指找 bug 了,所有圍繞提高產品質量的工作都是測試。頭銜上有沒有「測試」不重要,有沒有「測試」崗位不重要,重要的是如何有效保證和提高產品質量。
提高軟體質量實踐 Google篇
很多人應該都看過james whittaker的部落格或新書 how google test software 在這裡我不想重複他的內容,而是從另外乙個角度來分析對比google是如何保障它的產品質量的。首先申明的是本人並沒有在google工作過,所以沒有第一手的經驗,僅以乙個旁觀者的身份來分析go...
提高軟體質量實踐 Google 篇
很多人應該都看過james whittaker的部落格或新書 how google test software 在這裡我不想重複他的內容,而是從另外乙個角度來分析對比google是如何保障它的產品質量的。首先申明的是本人並沒有在google工作過所以沒有第一手的經驗,僅以乙個旁觀者的身份來分析goo...
提高軟體質量實踐 Facebook 篇
facebook 從 2004 年的哈佛校園的學生專案在短短的 7 8 年的時間中快速增長為擁有 10 億使用者的世界上最大的社交網路,又一次見證了網際網路創業成功的奇蹟。同時它的產品研發流程也成為了眾多網際網路產品公司的追逐物件。今天我們來看一下 facebook 在產品質量控制方面的實踐。有人說...