為什麼每個人都需要關心職業路徑
我們每一個人都在不同的職業,如果要想有所發展,就需要了解自己的這個職業的發展路徑,這個路徑就是我們的嚮導,我們首先需要知道我們現在是在哪一級,其次我們需要知道下一級的能力是什麼?然後我們才能知道做些什麼才能到達下一級。
了解職業路徑非常重要,因為我們每一年都希望自己能夠漲薪,希望自己收入有所提升,但是簡單的只是希望是沒有用的,個人的收入是和個人的能力以及為公司帶來的收益正相關的。但是,很多人沒有意識到這一點,把漲薪和工作時間的長短看的比例過大,甚至HR在招聘的時候也容易過於看重工作年限,但這有以下兩個問題:
一個人可能工作很多年,但是一直都在重複頭一兩年學到的那點東西,也就是對外輸出的價值是沒有變化,其次隨著年齡的增加導致體力的下降,對外輸出的價值反而降低不少。經驗有兩面性,有一些經驗當我們過於熟練後,容易陷於能力陷阱,就相當於一個錘子,看到一切都是釘子,反而這種經驗會對我們造成一定的羈絆。我自己也看過不少簡歷,很多人工作很多年了,簡歷裡還列著大學裡拿過的獎項,這個其實是沒有意義的,就像大學裡大家都在討論微積分了,你還在說你小學裡得過年級數學第一名,讓人覺得很Low. 單位裡也有一些人,想升職加薪的時候,總是提自己幾年前的貢獻,殊不知幾年前的貢獻已經在幾年前用過了。 一個畢業工作三年以後的人,大學以前的榮譽是沒有多大參考價值的,過於強調之前的功勞,越是顯得自己現在是個廢柴,這就是為什麼我們說「好漢不提當年勇」。
這裡面主要的問題就是不清楚自己現在的位置,以及我們為下一個職位需要做哪些準備。
根據我自己10多年的管理經驗來看,不要輕易把一個人放到一個更高的位置上去,而是要先考察這個的能力,以及這個人用這個能力做了相對應的一些貢獻,我們很多的時候的錯誤,當然我自己也犯過這樣的錯誤,就是先把人放到這個位置,然後相信他能幹好,我們都喜歡聽臨危受命的故事,但是臨危受命的對象必須提前做了必要的準備了,我們先把一個人往上提,最終這個人肯定會被提到他不能勝任的位置,那麼時間一長,公司大部分人都是在不能勝任的位置上。
要想避免上面的問題,我們就需要讓自己處於不斷上升的階段,讓我們自己的能力的增長跟的上自己的年齡的增長。
我們就需要讓上面這個曲線越陡峭越好。
人員級別該如何定義
作為個人,需要有職業路徑,但是一份好的職業路徑很重要,很多公司都有相應的職位,但是並沒有清晰的職業路徑,以及不同職位的要求,拿我所在的軟體行業裡,軟體行業裡經常有初級程式設計師,中級程式設計師,高級程式設計師,比較奇怪的是很多公司裡高級程式設計師裡還能分出1到n級。我自己特別不喜歡初中高這三種分類,因為很多程式設計師連一些基本知識都不掌握,也叫自己是高級程式設計師,更遺憾的是,很多公司竟然簡單粗暴的用工作年限來區分。
我自己做為一個分公司負責人,為了考核,原來也定義了一個不同級別對應客戶的報價和工資,但是當時犯了一個很大的錯誤,這個錯誤影響至今,就是為了穩定當時現有人員,不影響現有人員的工資,就根據當時已有人員對客戶的報價,反推出高級開發人員需要具備的能力,然後一級級下去。這裡面最大的問題,不是說一個高級程式設計師應該具備什麼樣的能力,而是是否有人拿到了高級程式設計師的報價,這兩個是沒有那麼強的相關性的,好在後面有及時糾正過來。
中間有幾年,我定義的考核和成長路徑確實起到了作用,但是隨著技術的快速發展,人員的變動,原來的不同級別的要求已經不適應了,由於我自己是做技術的,所以每一個級別的要求裡,寫的特別具體,比如.NET語言裡需要掌握什麼特性等等,但是隨著自己的工作經驗和解決實際問題經驗多了以後,發現純粹用掌握一門語言來區分初中高級別的工程師,我就是對大學生提出的是中學生的要求。我已經發現了這些問題,所以我不想再太多參與項目的具體編碼的工作,越是在公司強調獨立自主工作的時候,作為Leader,需要做的coach工作反而越多,授人以魚不如授人以漁永遠是公司管理人員該做的東西,我們強調Independent的工作能力並不代表Leader的工作會減少,只能是更難,更大,因為我們需要幫大家「破鏡」,從一個境界破到另一個境界,我們不能替代他,但是還要幫他破鏡,這個真的很難,要做的工作也很多。
示例
好的職業路徑是很重要的,因為我自己是做技術的,所以我這裡面貼出兩個我認為不錯的開發人員和技術工程師的範例,一個是Basecamp公司的,另一個是吳軍老師給出的。
Basecamp
下面是Basecamp給developer的title, 我選擇basecamp作為參考,是因為他們的定義是奔著工作質量,團隊合作以及解決問題去的,並不是一個特別具體的技術知識點:
一個人做工作是否需要被別人review, 是經常,偶爾,還是不需要被review (工作獨立能力)是否掌握需要的高級特性和用法 (深度)是否熟練應用一些優秀的模式和方法 (行業優秀方案的應用, 能否站在巨人的肩上)是不是一個Sole的程式設計師,我們之前說全棧,很多人理解的全棧只是前後臺代碼,代碼寫完了,寫的是不是符合要求,是不是成功deliver到end user手上,如果我可以改的話,我希望把sole改成solo,我覺得Solo特別好,Solo就是你一個人搞定,這裡面包含很多東西,一個Solo的程式設計師是以後可以單飛的程式設計師的。(是否是solo程式設計師)了解其它技術,深耕一個技術領域,並同時掌握其它技術領域,做一個T Shape的人才,能否推動整個組織向前,是能否達到高境界的重要條件。(一專多能,推動組織變革和進步)Junior Programmer
Work is thoroughly reviewed with substantial back and forth frequently needed before merging.Basic language features are mastered, but some advanced structures may still be unfamiliar.Occasional issues following patterns and approaches within existing code bases.Works primarily on tightly scoped, routine problems.Usually less than 2 years of experience being a professional programmer in the specific domain.Programmer
Work is reviewed with the occasional need for material direction or implementation changes.Follows established patterns and approaches within existing code bases with ease.Works mostly on clearly defined and scoped individual features or problems.Usually at least 2-5 years of experience being a professional programmer in the specific domain.Senior Programmer
Work doesn’t necessarily need to be reviewed, but general approach may be.Fully capable of taking substantial features from concept to shipping as the sole programmer (alongside a designer).Can provide material feedback on the work of junior programmers and programmers.Deep expertise within at least one programming environment.Basic proficiency in at least one additional programming environment.Usually at least 5-8 years of experience being a professional programmer in the specific domain.Lead Programmer
Work happens completely autonomously with no regular need for review.Fully capable of owning and running entire subsystems of work (Queenbee expert, Action Cable implementation).Helps set and maintain professional standards for the entire organization.Deep, substantial expertise in multiple programming environments.Capable of running and directing small teams for substantial projects.Capable of executing projects across multiple domains (say, native app that needs API backend).Usually at least 8-12 years of experience being a professional programmer in the specific domain.Principal Programmer
Can set and direct an entire department, like SIP, Core Product, or Research & Fidelity.Fully capable of designing, owning, and running entirely new, novel systems (design billing systems, Trix, Active Record from scratch)Capable of running and directing larger teams for large, long-running projects.Recognized widely in the industry for material contributions to the state of the art.Invents new concepts, pushes the whole organization forward regularly.Usually at least 12-15+ years of experience being a professional programmer in the specific domain.五級工程師
吳軍提出的五級工程師的標準,我覺得要求更高,我們很多人能到第二級已經很不多了,但是可以看看,如果我們終身達不到,那麼也可以用來指導下一代嘛,同時也可以對比一下我們自己,然後我們對自己有個清醒的認識,避免得瑟。
第五級工程師以計算機行業為例,一個人畢業後,經過一段時間的鍛鍊,能夠熟練應用工程的知識和技能解決問題,獨立完成所分配的工作,而不需要他人指導,就算是一個合格的五級工程師了。再具體一點,比如這個人在京東公司任職,老闆讓他做一個工具,找出那些不斷幫助女(男)朋友買書的讀者。他自己知道在公司內找誰去要數據,如何確認兩個人可能是男女朋友,而且經常買書。也知道自己在京東公司的環境裡,應該使用什麼樣的開發工具。以及為了方便客戶使用,這個工具應該有什麼樣的基本功能。如果還做不到這件事情,就算不上是一個合格的工程師。在過去,工程師和科學家是可以並列的頭銜,今天在法國和德國依然如此——那裡的工程師會有一個特殊的資格證書,就如同醫生和律師有特殊的資格證書一樣。但是在中國,很多人從工科大學一畢業,公司就在他的名片上印上工程師,然後就似乎已經成為工程師了,很多人有這個頭銜,但並不具有工程師所應該有的基本的技能。在IT行業很多人被稱為碼農,雖然名字不太好聽,但是仔細想想,似乎也是對天天簡單重複低層次IT工作的人的一個形象的寫照。我想,上述對一個五級工程師的要求,任何一個從工科大學畢業的學生,只要自己有心,往這個方向努力,不難達到。如果達不到這個層次,不能算合格的工程師。第四級工程師對於第四級的工程師,就需要有領導能力和在工程上把大問題化解為小問題的能力了。用我之前寫的「願景-目標-道路」的邏輯,他們能夠尋找出實現比較大的目標的道路。工程師和科學家不同,後者考慮的是對和錯,前者只是在現有條件下考慮好和壞的解決方案。比如在建造一座海灣大橋時,工程師會在現有資金的條件下,根據交通的需求設計一個200年使用壽命的大橋,但是為了讓軍隊迅速通過一條河,他們追求的目標就變成了在最短時間內建造足夠讓軍隊安全渡河的浮橋。目標不同,工程師的解決方案就不同,這件事對於土木工程師和橋梁工程師來講,常常不是問題。但是很多搞IT的人,常常會把海灣大橋修成浮橋,也會把浮橋按照海灣大橋來慢慢修。因此,能否成為四級的工程師,要看能否最好地解決一個這樣有規模的實際問題。這個能力遠不是熟練寫程序就夠了的。很多人抱怨自己的機會不夠,其實從管理者的角度看,中國IT公司裡非常缺乏這樣有頭腦的工程師。至於為什麼有的人能夠得到機會,他們和上下級之間較強的溝通能力幫助了他們。第三級工程師對於第三級的工程師,就應該能夠獨立帶領人做出一個為公司掙得利潤的產品了。這裡面除了上述能力外,還涉及到對市場的判斷和營銷能力了。很多人講,我就是做工程的,這個東西是否有用,我不清楚,有什麼事情你叫我做就好了。這樣顯然達不到第三級的要求。第三級的工程師,本身必須是非常好的產品經理。一個有良好工程素養的人,如果心胸開闊,願意接受各種意見和建議,經過努力,可以做到這一步。你可能奇怪,我為什麼專門強調心胸開闊,因為人有多大的心,就能做多大的事情。有人抱怨自己作為工程師,收入和社會地位太低,我想如果你做到第三級,就不低了。當然再往上,就不是很多人能夠做到的了。第二級工程師第二級是能夠做出先前沒有的東西的人,世界因為他們多少有點不同。舉幾個例子,比如北極光風投的創始人鄧鋒,在他(和謝青、柯巖)之前,世界上沒有真正意義上的網絡防火牆設備,他們做出了這個設備,並且成功創立了當時世界上最大的防火牆公司(Netscreen),這個公司在被收購前市值大約為20億美元。他可以算得上是二級工程師,另外,Google雲計算的發明人迪恩(Jeff Dean)也可以算。你如果能成為二級工程師非常好,但是如果不能也沒有關係,不必對自己太苛刻。第一級工程師開創一個產業的人,包括愛迪生、福特、貝爾等人小結
如果我們是一個個人,我的建議,我的建議是找一些行業裡你認為比較不錯的公司裡,對不同級別的人要求,拿IT行業裡來說,國內的騰訊,阿里,今日頭條,國外的Google, Facebook, Microsoft等等,或者一些高速增長的小的明星企業,獨角獸企業,那裡面對人員的要求來看看自己需要哪些提高。同時,我們需要提升我們的眼界,我們每個人只有發現過自己是多麼的愚蠢後,才能開始有所進步,這就是看見,因為看見,所以不同!
對一個企業來說,我們需要定義一個不斷向上的職業路徑,讓每一個清晰的知道每一個職位需要什麼樣的人,每個人自己在哪一個級別,以及下一個級別是什麼?同時,要提供環境和機會,讓每個人有機會從當前的位置成長到下一個位置,每一個管理人員,都要把自己轉變為一個園丁,提供好的土壤,該澆水澆水,該施肥施肥,不要總想把花園變成自己期望的樣子,讓花草自己生長,一定會給我們驚喜。