在很多年以前,我曾在一家外資軟件公司做研發經理,在工作了六年多以后選擇了主動離開。然而隨后發生的事情並沒有像此前規划的那樣順利進行,反而有些背道而馳了。這種落差不僅使我在處理關鍵問題時出現了重大的判斷失誤,再加上自己一時的沖動,很快便陷入了尷尬的困境之中,在堅持了一段時間之后,無奈之下又重新回到了求職大軍之中。運氣還不錯,在春節之前經由朋友的推薦,來到了一家外包公司做架構師。所從事的項目也是自己相對比較熟悉的技術領域,就這樣又是一年多過去了,其中的辛酸苦辣甜恐怕也只有自己才能體會。最后由於種種原因,還是離開了這家外包公司。當然,和以往一樣,在離職之前一定是找到了更為適合自己的下家了。至於新的職位,這篇博客的Title已經給出--研發經理。在工作了一小段時間之后,不知道為什么,對這個自己從前很熟悉的崗位變得有些陌生了。仔細想想可能是因為該團隊正處於組建階段,而待開發的產品平台中所應用到的技術也有一部分是自己相對比較空白的,因此在上任伊始便面臨着很多很多緊迫而又棘手的問題有待解決。雖然絞盡腦汁想了一些辦法,也得到了老板的認可和支持,但仍然沒有任何相對輕松的感覺,不像之前做純技術工作,只要集中精力將需要突破的技術難關突破,再結合產品部門的實際需求將相應的架構設計完畢,再經過幾輪討論和修訂並最終確定之后,剩下的事情和時間就都比較愜意和寬松了。
事實上說道這里才真正進入該篇博客的主題,對於研發經理,不論是空降還是重新組團,如果想迅速和順利的進入角色,對其自身又有哪些要求呢?這里我根據自己以往的經驗總結了以下幾點,需要說明的是,這僅僅代表個人的觀點,如有不同,歡迎大家理智文明的討論。
1. 從技術背景來講,至少需要八年以上的實際編程經驗,三年以上項目管理或架構設計經驗。再進一步分,如果是從開發者成為一名項目管理者,那么在積累若干年項目管理經驗之后將會成為偏向管理型的研發經理。而另外一種則是從普通的開發者躍升為一名軟件的設計者,即架構師。對於后者,同樣經過若干年的技術積累和打拼之后,一旦成為研發經理則將更加偏向於技術。在以前那家美資公司,我們的Boss在很多時候都會和我們一起討論技術解決方案,甚至在我們實在忙不過來的時候,他也會參與其中和我們一起編碼,后來從測試人員的反饋來看,他所寫的代碼模塊DEBUG率非常之低。
2. 從自身性格來講,在經過多年的開發之后,有的人或將成為項目經理,有的人則繼續提高自己的技術能力並成為架構師,當然不可否認的是,還有一部分人選擇創業或者干脆離開這個行業。不管怎么講,隨着時間的推移,經驗的積累,以及周圍環境的改變,這種變化又是不可避免。但是每個人發生改變的方向往往是不同的,盡管外部環境有一定的主導因素,然而如果你工作在一個適合於自己的軟件企業之中,自身的因素往往會是決定性的。試想,如果你是一位不善言談同時又酷愛鑽研新技術的開發者,那么在我看來你更適合成為某方面的技術專家。如果你善於表達和溝通同時也熱愛技術,那么我想架構師將會是更適合你的方向。再者就是善於溝通與團隊協作和協調,然而對技術的感覺馬馬虎虎,這樣的人當然更適合於項目經理的職位。在新的崗位上再經過多年的努力后,后兩種類型的軟件人員則更容易成為研發經理。
3. 最后就是從相關產品技術經驗來講,可能有很多人會不認同我的這一觀點,甚至認為有些極端和滑稽,沒有關系,各抒己見罷了。我認為如果你當前正在和正要開發的產品平台,對於你存在着非常明顯的技術空白區域,那將是極為危險的。因為特別是在國內很多中小型軟件企業,不會單單設立一個架構師這樣的技術崗位,往往是由資格比較老或是技術比較突出的人來兼任,有時甚至是直接由研發經理親自擔任了。如果你不幸的成為后者,那么不用說,這個平台所能應用的技術環節,你或者可以自己搞定,或者可以借助你的人脈請你的朋友幫你搞定,否則將會給你的工作帶來極大的麻煩。當然這里我所指的是技術方向和平台架構的搭建,而不是那些繁瑣的技術細節。
最后代表我觀點的結論是,研發經理應該來源於架構師。
還是那句話,歡迎討論,莫要吐槽。