背景:
公司剛成立一個產品線,自然同時需要組建一個對應的測試團隊,這個時候公司選擇了我來負責組建和管理該測試團隊,并且當前就我一個人。那么問題來了,作為一個新任命的測試經理,我應該一步一步怎么去做呢?都需要哪些技能才能夠承擔這樣的責任呢?(我他媽哪知道啊,我又不是測試經理,但是之前還算帶過幾個人,雖然流程不規范,但是還是可以裝下逼,但是我還是下班回家趕緊學習下,下面是我總結的經驗)
首先得找幾個左膀右臂:
第一步肯定就是要招人了。由于公司給的預算也有限,一般很牛逼的人估計也不愿意過來。在這樣的情況下,如何找到合適的隊友呢?找可以培養的唄,然后在團隊里面培養起來(比如我這樣的潛力股)。
這個時候,去網上找下或者自己分析下一個優秀的測試人員應該具備的一些素質和硬技能,于是我根據自己的搜集和理解羅列了如下幾點,作為尋找得力助手的幾個條件:
1、熟悉一門語言,有編碼經驗,最好是科班出身,這些對于后面的自動化和性能是很有用的;
2、邏輯思維能力和發散思維能力比較好,這個是一個優秀測試人員很重要的素質;
3、主動性比較好,有一定的上進心(團隊之初,千萬別招到混日子的,工作沒激情,早晚完蛋);
當然,招聘要求是不能夠這樣寫的,而是應該寫的更加簡單點,這樣能夠收到大量簡歷的機會(因為已經證明自己牛逼的人一般也不會去投簡歷),然后就要開始不斷的根據該要求去篩選簡歷,接下來就是去面試人了....
Ok,經過一段時間的努力和談判后(這段時間我的溝通能力得到了很大的提高),我們總算是組建了一個最初的團隊,盡管這個團隊當前只有5個人(CTO說了,后面隨著業務擴大后團隊也會繼續擴大的)。而且,這5個人也不是都滿足上面的幾個條件(招到合適的隊友實在是太難了,只能后面慢慢看)。
我們的目標:
接下來要做的就是如何將團隊按照期望的那樣運作起來呢?不管做什么事情,都需要有個目標,團隊也一樣,首先要整明白團隊的目標是什么?當然,自己BB還是不行的,這里提供幾個方法來確認團隊的目標:
1、找相關責任人確認他們的期望,包括:上級、開發人員、測試人員等等,因為每個人關注的點是不一樣的,比如:測試人員期望看到自己的進步。
2、思考如何去更好的支撐產品未來的發展。
3、從公司的愿景里面(如果有的話)去想測試團隊如何去做好自己的一環,比如:一個游戲團隊如果有1億用戶的話,我們的性能測試可能就是一個挑戰?
4、在網上以及行業等方面看看其他優秀的測試團隊是怎樣的
通過上面的幾個方法,我大概確認了團隊的目標,如下(大家是不是發現,測試團隊除了保證質量和節省成本外其實還是有很多其他目標的):
發布有價值的、高質量的、有競爭力的產品(公司的期望);
更快的去反饋產品的質量,并且及時發現產品的問題(開發的期望)
持續的技術改進來更好的支撐產品未來的發展(上級的期望);
人員的技術能夠得到持續的提高并且有清晰的發展方向(測試人員的期望);
整個測試的工作更加有技術含量(測試人員的期望);
團隊氣氛比較好,大家能夠在輕松的環境下面工作(測試人員的期望);
團隊穩定,骨干員工流失率比較低(上級的期望);
形成團隊目標后,后面就是將目標的分解,并且形成具體可以實施的計劃來支撐對應的目標;比如:針對如何實現發布有價值的,高質量的,有競爭力的產品這個目標,我們可以做哪些事情呢?這塊就需要測試經理具備對應的目標分解能力了,下面可以提供幾個方面供參考:
1、提高大家的業務理解能力,這個是保證一個產品質量的基礎吧;
2、提高大家的需求理解能力,保證我們的產品是用戶想要的;
3、功能的自動化和持續集成,保證產品的最后的基本功能通過自動化保證;
4、基于代碼和業務邏輯的測試,更好的保證產品的代碼質量;
然后針對每個分解的目標制定具體的實施計劃,比如:提高大家的業務理解能力;我們要達到的目標是什么(盡量能夠定的可以量化點,滿足smart法則,否則不好去評估)。我們假設我通過分析確定按照下面的計劃來達成目標(這里體現了測試經理的計劃管理能力):
1、每個人劃分自己的責任模塊,我自己負責整個產品的模塊劃分,將每個模塊能夠串起來(這里體現了測試經理的業務分析能力)。
2、每個人都需要跟對應的開發一起確認對應的模塊業務邏輯,并且自己將負責模塊的業務邏輯產出來。
3、輪流安排講解自己負責的模塊,并且安排提問,保證每個人都能夠對其他模塊的業務都比較熟悉。
計劃確定后,安排對應的時間,然后自己分析下達成目標可能存在的風險,并且自己去提前想辦法解決掉,比如:這個過程中可能碰到的幾個風險和對應的解決方法為(這里體現了測試經理的風險分析和控制能力):
1、模塊太多,而每個人的精力和時間有限,可能沒有辦法去搞定所有模塊;
對應的解決辦法為:自己根據模塊的重要程度來進行分配,其他的 讓對應的開發進行培訓。
2、開發不配合,導致溝通不順暢,無法達到預期的效果;
對應的解決辦法為:自己跟他們的老大進行溝通,尋求配合。
3、部分測試人員能力不足,導致自己負責的模塊業務理解能力一般,無法達到預期;
解決的辦法為:提前識別,過程跟蹤,讓優秀的人承擔更多的責任。
4、模塊太過復雜,分析難度很大,很多開發也不清楚;
解決辦法為:提前識別,發現搞不定的馬上終止或者換模塊,節省大家的時間,避免打擊大家的積極性。
當然,我們可能無法去預判所有的風險,后面發現問題及時解決就可以了。
團隊流程和制度:
所謂無規矩不成方圓,我們為了讓團隊更好的去朝目標去前進,需要通過一系列的制度來確保這點,避免每個人的目標不一致導致團隊目標無法完成,那么我們應該去如何制定團隊的整個流程和制度呢?這里提供幾個建議作為參考:
1、制度一定是為目標而服務的,否則就不需要這個制度(當然,也可能目標需要完善);
2、制度不宜多,需要給大家一定的自由空間;
3、每個制度都需要有對應的獎懲機制,否則跟沒有一個樣;
4、確定制度后要一視同仁,自己也要以身作則,否則沒有人會遵守;
5、制度要跟團隊成員一起討論出來,這樣才會更有公信力,也更容易形成部門文化;
6、不要跟公司的制度沖突;
我通過上面的分析方法形成了下面的團隊制度(其他的根據需要進行完善):
1、部門考核流程和制度
2、導師制度
3、請假和加班制度
4、技術改進制度
5、分享和交流制度
6、部門活動制度
7、測試人員的工作指導和制度
完成后,跟大家一起討論和完善,并且最終達成一致,以后每次的完善都跟大家一起確認下(不建議經常去更新制度,這樣會讓制度沒有公信力,也不要出現頭痛醫頭腳痛醫腳的情況)
人員分工:
團隊目標和具體計劃確認后,全部靠自己一個人肯定是搞不定的,所以就需要將合適的工作安排給合適的人員。這樣既能培養大家的能力,也能夠讓自己更加專注于整個團隊的方向和一些關鍵事件(這里需要測試經理具備知人善用的能力,能夠發現團隊每個人的優點,并且合理的去利用)。這里網上也有一些方法了,大家自行腦補。那么一個團隊都需要哪些人呢?根據我自己的經驗提供下參考:
1、項目經理(后面培養成團隊管理人員)
2、技術牛人(后面負責團隊的技術改進和規劃)
3、產品專家(能夠對產品的業務和需求等非常熟悉)
4、測試人員(完成部門的日常測試任務,并且不斷提高自己的測試技能)
人員培養:
招到合適的人或者將合適的人安排到合適的位置后,就需要我們對這些人員進行培養,來提升他們的勝任度了;這里要求測試經理本身也能夠具備對應的技能;比如:如果一個測試經理自己不會自動化,甚至沒有接觸過自動化相關,那么除非另外找一個自動化方面的專家,否則該團隊的自動化肯定會走很多的彎路;那么具體如何去培養對應的人員呢?那自動化人員的培養來舉例子吧(其他方面也是采取類似的方法)!
1、選擇2-3個編碼能力比較好的人員;
2、根據自己以前的經驗選擇一個適合自己產品的自動化框架。
3、讓大家挑選一些最基本功能(需要經常測試的)的用例,嘗試進行自動化(因為上面不一定給予時間,這塊時間建議利用額外時間,或者自己去擠出時間來做,否則失敗了不好向上面交代);
4、完成后快速的運行起來,讓大家看到效果(不成功的話也能快速發現),這樣能夠提高大家的信心;
5、認定該方案后,持續的投入額外時間和展示效果,直到讓開發和上面覺得自動化已經帶來價值了,這個時候上面自然就會主動要求投入人員進去了(這個時候自動化的黃金時代就來了),同時上面對自己的工作應該也會比較認可吧;
6、從自動化人員里面找到一個能力比較好的,重點進行培養,讓其開始負責整個自動化項目;等到其能夠完全勝任了,自己也能夠解放出來做其他規劃工作了;
OK,等到整個團隊的人員能力都培養起來能夠勝任對應工作后,自己就只需要負責整個團隊未來發展的方向,并且不斷的去激勵大家,提高整個團隊的戰斗力就可以了。