1. 程式人生 > >關於測試職業發展的一點探討和思考

關於測試職業發展的一點探討和思考

最近在和團隊成員一對一溝通的時候,聊到比較深入的地方,得知大家有一個擔憂和想法:擔心現在工作上的積累,包括對業務的深入瞭解和產品相關技術的深入學習,以後到了新的專案上可能不適用,因而自己會變得沒有競爭力。基於這樣的想法,會刻意花不少時間去學習其他“有用”的技術,可能和產品用到的完全不相關。 剛開始聽到這樣的想法有點吃驚,但是想想大家有這樣的擔心也不奇怪,其實有這樣的思考也是負責任的態度,畢竟現實中很少有人一直在一個專案中做非常久,也許只有Windows,Office這樣的產品有工程師可以連續做個二三十年。擔心自己的競爭力沒有問題,但是這樣的做法是有效的嗎? 下面想說說我個人的觀察和思考,希望能給大家一些參考。
首先這樣的想法忽視了一個現象。那就是個人的成功往往是和產品或者團隊的成功聯絡在一起,這個不是關於團隊的口號, 而是在我觀察到的很多地方都是這樣,包括我工作過的地方。分析下來,其實原因也很簡單。 1. 只有產品或者專案成功了,整個組織才能獲得發展和成功,才會從市場獲得比較豐盛的回報。這個是大的環境和前提。 2. 在一個組織裡面,成功的專案通常也對應著成功的團隊,是因也是果。而成功的團隊才更容易有優秀的個人出來,同樣,是因也是果。 所以從這個角度,如果大家不能一起努力把產品和專案做得更成功,其實在組織裡面,大家的發展都會受到影響。 也許大家覺得上面的團隊說得有點虛,那我們看個具體的。 觀點很簡單:不和實際需求和問題結合起來的技術學習和研究很難深入。
關於這個方面我可以舉出很多的例子,任何人在任何一個技術方面稍微深入瞭解後都可以舉出例子。 比如1:HTTP協議 這個如果是業餘學習下,說起來很簡單,看下Richard Stevens的書,然後學習下RFC,自己用Firebug等工具抓包看一下,瞭解一下各種返回碼的意義。然後給自己一種錯覺,真的是錯覺,我對HTTP協議已經懂得不少了。 但是我相信大家在實際中都會發現,這樣的理解相比我們這些在工作中要用到的人,遠遠不夠,因為還有太多的重要的細節,比如1.0和1.1關於連線和請求的處理的不同, 各種header的意義和用法,如何做快取,還有cookie,還有不同的HTTP代理/反向代理,還有如何做效能的優化,還有安全性的問題,等等。
一個只是業餘看看的人,我相信很難在這方面專深,一方面是上面覺得自己懂了的錯覺(真的很多人有這種錯覺,就像很多人因為看了幾本C++的書,寫了些課程作業,就在簡歷裡面說精通),另一方面就是他沒有遇到工作中這樣的需求和問題,“逼”著他去做深入的學習和研究,以便高質高效的完成自己的工作。基於這樣的原因,使得無法深入的學習。 類似的例子還有很多,比如電子郵件,對於很多人來說,就是收,發,回覆和轉發等,學習了一下的人知道有SMTP協議的互動過程,還有MTA,MUA,MDA等概念。但是做了幾年的電子郵件的專案後,回頭看看我發現裡面的細節真的太多了,光一個MTA的核心引數都有上百。一個業餘看看的人如何能夠深入學習和了解呢。 程式語言也是一樣,業界有一萬個小時的說法,公司也有PHP相關的T4專家,如果和工作從來不相關,隨便看看學學,兩天就能寫程式碼了,也覺得自己“懂”了。其實這樣的“懂”了,又有多大意義,這樣淺的積累真的能讓自己更有競爭力嗎?至少在我看來,如果一個人和我說自學了下PHP,但是從來沒在任何實際的工作中用過,我不會認為是加分項,充其量也只能算有點上進心。 如果大家認同業餘學學,不和實踐結合,很難專深,那麼接下來的一個問題就是這樣的一個對比,那種人更有競爭力? 一個在少數的某幾個方面比較專深 vs 在大量的地方有泛泛的瞭解但看不出重點 以我瞭解到的情況和麵試的經驗,對於工作年限越長的人,後面的那一種越沒有競爭力,很少大家會願意招一個這樣的什麼都懂一點,什麼都不精的人。之所以不願意,原因至少有三點: 1. 這樣的人,工作好幾年了,應該算資深了,但是在哪方面資深了呢,看不出來,所以沒有競爭力 2. 關於招聘,有一個得到很多公司(包括我們公司)認可的STAR方法,簡單的說就是去了解候選人在特定的situation下,接到的具體task,他採取了什麼action,最後得到了什麼result。某種程度上,是一種以過去的行為來推斷未來的表現的方法,可能並不完美,但是很多時候靠譜。換句話說,一個在以前工作中泛泛的人在未來也是泛泛,而專案組應該不想要這種人。 3. 這種太過泛泛的人很容易被認為工作熱情和態度有問題。 當然,大家不要因為這個而不敢學新的東西了,而是想著要圍繞一些東西來有目的的學東西,就像散文的形散而神不散。 看到這裡,我相信大家知道了什麼樣的人比較有競爭力,在職業市場這個狹義的範圍裡。其實應該包括很多方面,但是其中有兩個方面大家會很看重: 1. 有哪些技術強項,經過深入的考察,確實做得很精。 2. 有過成功的(最好是大的)專案的經歷,並且個人在其中有重要的貢獻
因為有了這兩點,哪怕領域稍有不同,我們相信他也會在新的工作上和以前一樣,深入的去學習產品和技術,成為專案中的主要貢獻者。
而以上兩點,如果不深入的去了解產品業務,不深入的去研究和實踐產品相關的技術,其實是很難做到的。大家有見過身邊的哪位技術專家是靠業務看看書或者網上的文章而達成的,都是在實際的專案中磨練出來的。 說到這裡,其實比較明確了,但是還想補充幾條,因為工作時間稍長一點,經歷過的專案和見過的人員來去也觀察到一些。 1. 當全身心投入專案的時候,除了實際的回報之外,團隊其他成員的認可,以及那種作為專案主要參與者的歸屬感和成就感,也是一個很大的回報,會讓我們的工作充滿意義和價值。而反之,如果沒有這種投入,會有很多負面的體驗。 2. 我也見過一些“懷才不遇”的人,有些可能真的能力很強而環境不適合自己,但是大部分是因為什麼都懂一點而覺得自己很強,但是沒有實際出來的業績和成果得到團隊的認可,而變得“懷才不遇”。這種於團隊和個人都不太好。 3. 人的時間和精力真的有限,很多時候我覺得,要把一件自己認可的事情做得很厲害,本身就是一件不容易的事情,因為除了自己的努力也要看環境和機遇。而如果我們再分散自己的精力可能就更難。 以上很多是些個人的觀察和思考,可能不一定正確,也是丟擲來希望給大家一些啟發吧,真心的希望每一個人都有好的發展。 共勉!