因應主題,會搭配一些槍械圖片,反感者可以改聽Podcast喔
今天是軟體測試QA大哉問系列的時間啦~工作多年的人,應該有超過一次以上的面試經驗了,而今天要來分享的,是我曾經面試過被問到的一件事,那就是Hands on的比例,我就被問了,你在管理上跟測試的Hands on比例大概是多少,我就如實回答,我100%都是在做管理職的工作內容,包含跨團隊溝通跟資源調配以及人員管理諸如此類的,然後經過了面試和考程式,最後得到了感謝函,感謝的理由之一,是他們希望能找會測試Hands on的人,在他們的公司文化裡面,測試Lead和Manager們都必須要有20%以上的Hands on比例。一定很多人好奇是哪一間公司,雖然沒有簽保密協議,但基於不影響他人招募作業,我就不明講,但我可以說,非常多人想成為那間世界級公司的一員。
提出Hands on比例的公司當然不單單這間世界級公司,很高比例的公司都會問到這題,這也讓我思索著,到底管理職的Hands on有多重要? 最後,我提出了一個獨創的槍械理論,至少我還沒聽過有人提出過這種說法,也就藉著這一次的大哉問系列,跟大家分享,也讓大家來評論一下我的說法,或是補充一下我的說法。
首先要先來講,到底什麼是Hands on,就測試工程師的角度而言,可能其中一種是實際動手去執行測試的工作,確認或是找出可能潛在的問題,也有可能是另一種,針對feature去撰寫Test case,跟同儕review彼此的test case,更常見的,就是參與各種會議去深入了解feature的細節做技術討論或是畫出心智圖,很多東西都可以被定義為Hands on,也就是動手做。如果要看得更仔細點,測試的新鮮人和Senior的測試工程師,我們會期待他們Hands on的類型應該是不同的,例如新鮮人在設計Test case的經驗不足,可能會先期待他們能夠讀懂test case並且照本宣科的先把步驟都執行正確並且給予相對應的結果,產出測試報告,而Senior的測試工程師,因為對產品有深入了解,或是對測試手法熟悉,反而會希望他們能夠在Test case的設計或是測試流程的改進上做出貢獻。我們也就能夠說明,Hands on在不同的角色身上,其實有著不一樣的定義。
接著,我想問一個問題,難道Manager管理職,或是更高階Director甚至CTO,他們的Hands on難道不就是管理職的工作內容嗎?說老實話,如果今天CTO或CEO親自下來跑test case,我會覺得他們應該是為了跟基層親近一點,就有點像選舉前的掃街拜票或是體察民情那樣,我們都知道這些人其實有更重要的事情該做,這些執行面的事情不是他們該做的。或許,或許,或許看到這樣高階的人做著跟自己平常一樣的事情,確實挺激勵人心的,只是就會產生另外一個問題,成本問題。
當我們把Hands on問題從成本來考量之後,就能更清楚明白我想講的論點,我們提一個比較有差距的假設,假設測試新鮮人月薪五萬,Senior月薪十萬,Manager月薪十五萬
,用三十天換算時薪分別大概是200元, 400元,和600元,同樣一個小時的基本回歸測試時間,可能就是登入登出、畫面跑版這類的檢查,由三個不同職位的人來執行,所付出的成本卻是不一樣的,這裡應該會有人錯誤解讀我的意思,我並不是要說低薪的測試人員就該做這些基層的工作,而是要指出,從公司的角度出發,照理應該是會希望時薪成本600元的人,能夠換來超出600元的產出,就像是企業數據報表常看到的員工平均產值,Revenue per employee,從期待上來看,資深工程師和高階主管應該要憑藉著豐富的經歷來快速解決問題和提高產值,而不是在動手測試上面,畢竟大部分的測試工作,還是會落在實際執行面上,一個正常的用戶操作行為,由600元的人來執行,真的會讓產品超過三倍的速度來執行嗎? 所以基於這樣的論點,能得出一個結論,就是不同角色,應該要能各司其職。
接著,我們就來從槍械的角度來出發探討這件事情,我猜有的人以為我要講測試主管是坐在辦公室按鈕發射核彈或隕石的那個人,沒到這麼誇張啦,回歸主題。
測試新鮮人,就像是左輪手槍
資深工程師,可以是散彈槍或是步槍
測試主管,應該要是一把狙擊槍。
先從新鮮人的左輪手槍說起,這把槍的特色,是射速慢,一槍範圍就一顆子彈,但打中了威力也不小,比做真實的測試工作,因為缺乏經驗,所以執行速度比較慢,能夠顧及的範圍還不夠全面,但如果確實找到產品的問題,所帶出來的產值也是有的
接著是資深工程師的散彈槍和步槍,散彈槍的類型一樣是射速慢,但是射一發的範圍廣,子彈多,能夠有比較高的機率切重要點,而步槍雖然一次一發子彈,但是射速夠快,可以多方掃射,同樣有機率切重要點,只是兩者分別從理解產品的全面性和執行速度上去做出區隔,最終都能給我們帶來更好的攻擊火力。
而高階主管,則是一把狙擊槍,電影裡也告訴我們,訓練一名狙擊手的成本很高,時間也很長,也很吃個人特質,而狙擊槍通常是單兵作戰,需要長時間的蹲點或是有效率地尋找敵軍,比起其他槍械都是以高射速或是近距離火力取勝,狙擊槍完全是一個Bug般的存在,遊戲裡也都把狙擊槍定位成一槍斃命,順帶一提,我年輕的時候玩CS很喜歡拿狙擊槍,也就是喜歡這樣的特性。
狙擊槍的範圍很遠,所以通常都是遠距離狙殺,這也對應到了主管的位置是需要規劃長期目標的,而且最好是在這個長期目標的過程中,能夠解決痛點,然而相較於很多企業推動的小步快跑或是先開槍後瞄準,我倒覺得狙擊槍思維是反其道而行,狙擊需要的是先辨識目標,並評估資源和環境的影響,才決定出手的時機,畢竟每次的擊發都是有代價的,除了子彈的費用,還很有可能讓敵方知道自己的位置,反而帶來危害。
一個測試團隊,就是由不同的槍械成員組成,各自有獨特的特質和性格,不同的作戰場景會需要派出不同的兵種,短期來看,我們要找出每次的發版的潛在風險,長遠來看,是必須有人常規的負責每次的發版,讓其餘的人,能夠專注在一些長遠目標,例如測試系統的開發或是埋藏已久的重量級Bug,都是互相搭配的打法,畢竟像三國無雙那樣一人殺敵千萬的狀況,現實中很難發生,測試工作還是適合打團體戰。
對了,剛剛前面提到有人會猜測試主管是按鈕發射核彈的,雖然像是玩笑,但一部分也是真實案例,未來會有一篇部落格文章來講一個故事,是有關於我發射的一枚核彈,來解決測試團隊遭遇到的困境。
0 Comments