高效的軟件研發團隊結構
在前面為各位讀者介紹了誰是最佳軟件質量責任人——軟件開發者。并給大家介紹了因此會給組織和個人帶來的價值和好處。但是這里還有一個關鍵問題還需要解決,否則把軟件質量責任人轉換為軟件開發者的這個改革就會變的無法實施。
什么問題呢?——軟件開發者增加了質量保障的職責,可他有足夠的資源來完成這個職責嗎? 如果只是簡單地給軟件開發者增加職責,又沒有新增資源來支持他的新職責,那么這個改變不但不會得到好的效果,還會遭到開發者的更強烈的反對,他們更愿意回到過去的那種狀態。因此為了讓開發人員能更好的保障質量,就需要幫助開發人員提升工作效率,輔助他保障質量,而不是讓他一個人孤軍奮戰。當然如果你的團隊都是精英開發者,個人戰斗力極強,孤軍奮戰也沒有問題,那么就無需為他們提供開發效率提升和質量保障方面的支撐。
那么軟件開發者增加了質量保障的職責后,需要增加哪些對應的資源以支撐他們可以在質量保障與功能實現的職責間獲得平衡。
1: 教給開發者高效的快速驗證軟件質量風險的測試方法
2: 減少開發者自驗證測試的時間成本和復雜度
3: 提供幫助開發者提高開發效率的開發工具和開發框架
4: 讓開發者的編譯速度更快減少編譯等待時間
5: 通過有效的方法提高開發人員評審需求和設計的效率
6: 減少開發人員分析定位bug的時間
當你的開發人員能得到以上部分資源的支持時,他們才能擠出時間來思考如何能在設計和開發階段保障自己輸出的質量。
可是公司中哪有資源來支持開發人員來提高工作效率呢?這里我們可以參考軟件工程發展最前沿的美國公司的實踐。在當前硅谷最先進軟件生產力的公司——谷歌,他們的組織結構中有一個叫EP(Engine Productive)的團隊,這個團隊與廣告技術團隊、搜索算法團隊、架構設計團隊、性能團隊的定位一樣,是谷歌的長線建設的領域技術團隊。該團隊的成員有:
測試開發工程師、工具開發工程師、測試工程師組成。測試工程師工作的目標變為了:幫助產品快速地達到質量目標,而不是作為質量保障的主體。
EP團隊除了對軟件質量的檢查測試提供測試技術支持和測試資源外,還負責幫助開發人員提升工作效率,優化一切可以提升工作效率的工作環節。例如:開發人員更有效的測試,更合理的測試投入,減少與業務實現無關的工作耗時,幫他們更好地做好開發階段的質量保障工作。在谷歌有些團隊能達到10:1的開發測試人員比,除了這位測試人員能力超群外,開發人員的專業能力和開發人員的質量保障目標都是關鍵的決定因素。如果只有一位超級測試人員,沒有開發人員作為質量責任主體和專業技能優秀的開發人員,那么10:1的配置下這位超級測試人員則會被各種軟件問題鋪天蓋地淹沒掉。
如上圖所示大多數的研發團隊模式是舊模式,開發團隊只關注進度,測試團隊只關注質量。于是測試團隊規模越來越大,產品的進度總是與質量目標矛盾重重。如果應用新模式,則賦予開發團隊更大的權利和責任,進度和質量都是由開發團隊說了算,當開發團隊因缺乏資源完成進度和質量目標時,開發團隊可以通過EP團隊的臨時支援協助達成目標。
開發團隊與EP團隊之間的合作模式,還應該是開發團隊有需求時拉上EP團隊來共同工作。而不應該是EP團隊去推動開發團隊,開發團隊被動使用EP團隊資源來共同工作。如果開發團隊被動的被EP團隊推動去提升工作效率和工作質量,則很可能會同時傷害到開發團隊和EP團隊的士氣,EP團隊去推動開發團隊會受到很多阻力,感覺不到自我存在的價值,士氣受影響。開發團隊則被動的被服務,覺得自己的工作節奏受到了影響,影響自己的工作進度,心里也是不舒服的,影響士氣。
posted on 2014-04-25 10:04 順其自然EVO 閱讀(309) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄