如何看待雅虎取消了獨立的QA團隊?

Yahoo』s Engineers Move to Coding Without a Net


謝邀。

我公司也正在取消掉獨立的QA團隊,代之以緊密的混合編製。

但是目前仍然沒有取消獨立的QA角色的準備。


這次組織結構上的調整跟Yahoo!最近業務調整可能有一定關聯。據傳,Yahoo!正在計划出售他們所持的阿里巴巴股份,同時也在考慮拆分、出售部分核心業務(參見 YHOO: Summary for Yahoo! Inc.- Yahoo! Finance)。換句話說,現在對梅姐的首要挑戰是如何能讓財報得到改觀,讓資本市場繼續保持信心、給予一定時間準備下一步戰略。

作為一家較大規模公司,以前的產品交付鏈條太長或成本太高,加上現在要縮減成本,就剛好把這部分給辦了。在產品技術團隊遇到要縮減成本時,首當其衝的通常是業務的最上游和最下游。換句話說,先review業務情況,確定砍哪些業務、留哪些業務。然後伴隨的就是轉崗和調整。開發工程師最難培養,通常優先保留。PM(普通)、QA(普通)最容易受到衝擊。這是業務層面可能的原因。

此外,Yahoo!產品技術團隊也隨著這麼多年的發展,逐步走向了成熟。成熟的工程師團隊會考慮移除導致產品交付鏈條變長的因素,這裡面最主要的就是跟生產質量『無關的人力』。試想,產品在寫需求時就不去考慮用戶實際使用場景中可能出現的異常情況;開發在寫代碼時不去考慮異常處理;用戶反饋問題後,大家都在等著QA驗證問題、找到重現條件後再去響應。『真正能影響生產質量的人』處在了用戶反饋鏈條的最末端,信息過程經歷了幾重傳遞和流失。這種拖沓的團隊即便有了『質量』,呆在其中工作也是一種多麼糟糕的體驗?QA成了犧牲自我(大量時間干瑣碎沒進步的事)、成就他人(開發繼續交付那麼差勁的沒質量的代碼)的代名詞。更何況,Yahoo!這麼多年的準備也適應過渡到這種狀態。測試不是不存在了,而是分散到每個生產者自己的手中。當然,會保留少量的QA,成為生產者提升測試能力的教練(教授測試設計、流程優化、自動化測試、單測等)和支持者(構建底層系統、框架)。他們在這個鏈條上的價值會變得更大,甚至遠超一般的開發工程師。這部分是工程效率的考慮。

文中也提到了,團隊中那部分關注系統性能的工程師都加入了相關團隊,剩下的轉去做自動化測試了。也有一部分離開了。『成就他人』的那部分人離開了。在新交付過程中對提升效率和質量真正有用(有競爭力)的人留了下來。

對於大多數QA工程師來說,弄明白你所負責的業務、你所在的團隊處於什麼階段很重要。趁早構建你的能力矩陣,及時調整你的角色。

互聯網行業中,一般來說業務產品(完全獨立的產品比較稀缺,大部分都跟業務綁定、相輔相成)大概會經歷四個階段:初創期、發展期、成熟期和衰退期。由於業務跟當前的『勢』關聯比較緊密,錯過了這個『勢』就得尋找下一個『勢』。所以互聯網行業的特點就是各個階段之間的轉化時間非常短。但人的成長不是一蹴而就的、需要時間。在短期內出現業務發展迅速時就會出現團隊人員擴張較快,但團隊做事的方式、人員能力卻未必有顯著改進。這種處境可算作『人員發展債』,隸屬於『團隊管理債』。有的管理者能在業務步入成熟期(擴張壓力變小)後及時動作,開始籌劃『償還』這部分債;有的則原封不動。普通人的天性是懶惰,那類最普通的人繼續用以前的方式操作著,而那些意識到問題的人則要麼拋出來問題尋求改變,或者改變不了就儘早轉崗。至於衰退期,那時可能所有工程師都需要一些心理干預,防止走向極端。在美國還有『死亡心理學』這一門學科。處理的場景跟這個類似。

團隊在不同階段,需要的能力也不同。工程師團隊一般有三個階段:原始階段,發展階段和成熟階段。我把具備的能力和最需要的能力分開來說。『具備的能力』是通常意義上當下需要的,不具備這種能力就無法進入團隊。『最需要的能力』是從長遠來看,能讓以後整個團隊運作更好需要的那種能力(潛力)。具備的能力≠最需要的能力。原始階段團隊一般具備快速交付和溝通協作能力,最需要的是紮實的技術基礎和系統規劃能力。發展階段團隊一般具備完成業務迭代需求、優化現有實現(打補丁)的能力,最需要的是創新能力(突破現有實現)。成熟階段團隊一般具備紮實的CS基礎、交付的最佳實踐,最需要的是協作能力和全局視角。

在各個階段多注意下當前需要的和以後需要的不同能力,有助於更好地適應團隊的變化。


錢給夠,時間有,啥事都可以做


測試工作被開發吸收的確只是時間問題,順序會是 黑盒測試、白盒測試、自動化測試、安全測試、性能測試。主要原因在於:

1、隨著技術的複雜化、成果的藝術化、開發過程的碎步化,開發和測試分工的基礎不復存在,軟體工程師作為獨立工作者完全有能力對自己的工作獨立負責,就像不可能有一個人對畫家畫出來的話進行QA一樣(鑒定師不算)。

2、開發工程師需要掌握測試工程師掌握的知識和技能,而測試工程師在傳統分工上又完全為開發工程師服務,造成了測試工程師的工作內容容易被開發工程師的工作所吸收,這是測試工程師會逐漸消失的根本原因所在,獨立性差的黑盒測試會最早被取代,獨立性較強的安全測試和性能測試會較晚被取代。

3、測試的技能和對系統的理解很難超過開發,但測試工資又不可能大幅低於開發,否則難以保證基本的工作效果,開發和測試又會產生大量溝通成本,獨立的測試團隊從成本上講也是很不划算的。


推薦閱讀:

TAG:雅虎Yahoo! | 軟體測試 |