1. 程式人生 > >華為員工中年危機

華為員工中年危機

前幾天看到報道講,華為要勸退很多35歲以上的交付工程維護人員,40歲以上的以上的程式設計師。國內的程式設計師現階段很大程度上是一個青春飯,科技公司需要員工能加班加點拼命幹,年紀大了,家庭事情多了,身體不行了,自然容易被公司淘汰。

從公司角度來講,公司不是福利機構,現在手機和網際網路行業競爭非常激烈,大家都是在被對手趕著往前走。但對個人來講,這確實有些太殘酷了。我在很多論壇上面也看到,很多程式設計師35歲以後,都感到非常迷茫,因為到了40歲,很多大公司的門就對你關閉了,很多招聘要求上面直接寫著年齡要求40以下。

其實你看看國際上面的一些技術大咖,Lucene、Nutch 、Hadoop等專案的發起人Doug Cutting,JAVA界的大咖Doug Lea,都是老大年紀的人啦,還在寫程式。年輕人寫程式拼的是體力,中老年寫程式拼的是經驗。做程式看上去是個簡單的活兒,年輕人培訓培訓就能幹,但是有創造性的思維,和能夠做卓越的技術領頭人是需要經驗的,當然這不一定是世界級別的。很多優秀的開源框架不是來自中國,絕大多數是來自美國,為啥呢?做程式不是一個簡單的事情,它是一個很容易開始的工作,但是做到傑出,有創造性,非常非常的難。2000年初,在美國剛剛開始工作的時候,有個同事之前在Bea(當時是個知名公司,產品超越了IBM,後來被IBM幹掉了)工作,他說他看到很多40多歲的程式設計師在裡面工作,感覺自己太年輕啦。我也去面試過紐約的金融巨頭Morgan Stanley,面試官說他們那裡有很多40多歲的程式設計師。後來,我才明白為啥那些地方還需要40多歲的程式設計師,因為他們的產品質量要求極高,高質量的產品當然就是高利潤,他們進入的是一個良性迴圈。

做程式設計師20年了,做技術管理也有10幾年啦,美國的程式設計師見過,國內的程式設計師也見過,因為種種的原因,國內高質量的程式設計師比美國要少很多,程式設計師不是一個青春飯,和老中醫一樣,是可以憑經驗和創新吃飯的,當然這種創新不一定是世界級別的,就和老中醫也有知名度不同的,優秀的程式設計師可以抵上幾十個一般水平的程式設計師,優秀的程式設計師需要懂很多知識,需要有優秀的技術能力,溝通能力,學習能力和業務理解能力。CAD,醫療軟體,管理軟體很多都是跨多學科的,必須懂多方面的知識,而且創新不是空想出來的,是經過大量的實踐和思考才得到的。

造成國內程式設計師生命週期短的原因是多方面的,有程式設計師個人原因,也有公司和市場原因。我先談談個人原因吧,我遇到的很多程式設計師不是因為喜愛程式設計而做程式的,是因為聽說當程式設計師工資高過來的。我一直認為優秀的工程師一定是有著內在的強大驅動力的,有著對程式的熱愛,有著追求完美的心的,這樣的人即使沒有機會,他也會去創造機會,如果有了機會,就會立即燃燒起來。我領導過的軟體工程師裡面,這樣的人很少,很多人就是打一巴掌,往前走走,你讓他去多學習些東西,你問問他學一點兒,你不問,他就不學習了。之前網上看到一個故事,一個工作10年的人去面試,面試官講他只有1年的經驗,只是把1年的事情,又做了9年。團隊裡面告訴大家需要把程式碼寫的優雅些,即使不是自己寫的程式碼,也應該積極去理解,很少見到人能夠做到。我一直提倡大家做有產品思維和測試思維的軟體工程師,你不罰他錢,他還是出很多低階的BUG。你跟他講寫程式碼之前,最好要想想怎麼去測試,不要出現大段的IF-ELSE邏輯巢狀,這樣可讀性非常差,跟大家講,明白了沒有呀,明白啦,提交程式碼看看,還是老路子。開個技術討論會,積極發言的就一直那麼幾個人,其他人好像和他們沒有關係似的。當然,我們的公司也不是什麼國內一流的技術公司,應該是2流公司吧,因為一流人才也不會流動到我們這樣的創業公司。

公司層面上面也是有原因的,很多網際網路公司是業務驅動的,技術被老闆逼的每天加班加點,根本沒有時間學習,提升自己,這種情況在外包公司尤其厲害。很多外包公司只是要求產品的短期完成,並不關心產品的長期發展,自然不會去關心程式碼的可維護性,持續發展性。對於一個有自己系統的,需要持續發展的網際網路公司,這以後可能會帶來致命的問題。我之前有個同事,去了一家比較知名的做票務的網際網路公司,老闆業務能力非常強,拉來了很多業務和融資,但是產品經常出問題,因為公司的軟體平臺經過幾輪人的手,沒有誰能夠掌握全部了,遇到問題只能修修補補,公司雖然有業務和錢,但是也沒有能力支撐重新開放系統,也就導致後來的不死不活。還有一個同事之前在驢媽媽幹過,他們曾經2套人馬,一套維護舊系統,一套開發新系統。要寫出擴充套件性強和易維護的程式碼,對程式設計師要求很高,也可以促程序序員技能的不斷提升,軟體開發可以使用更少的人,對於公司來說也是一件好事。

大的公司一般分工很細,外包公司更是如此,每個員工只是流程當中的一個螺絲釘,除了少數做系統架構的人,絕大多數人對系統都沒有整體認識。之前面試過一個在攜程做測試的人,工作了2年,只是測試一個固定流程,而且還是使用工具來做測試,完全就是一個搬磚的角色。華為的這篇文章當中,被迫離職的人出去以後失落感很強,發現小公司根本不需要他們這樣的人,也給不了他們那麼多錢。其實很多在大公司呆久的人,都是在經歷溫水煮青蛙的事情。之前,我還看到過一篇文章’ 創業公司為什麼要慎用大公司的人’,小公司需要的是技術全面的人,大公司需要的螺絲釘的專才。

公司維護自身的發展需要經歷新陳代謝的過程,這是自然規律,另一方面,對被迫退下來的人員又顯得非常殘酷,是一個非常難解決的困局,有沒有一個魚和熊掌兼得的辦法呢?我在軟體行業做了20年有餘了,看到聽到也經歷過很多不同的軟體團隊,我感覺現在技術研發的方式存在很大的缺陷。現在的研發模式很多是大兵團作戰模式,分工過於細化,其實很多時候人都是空閒狀態的,而且因為過於細化,每個人對全域性沒有概念,很多時候溝通的成本會非常高,而且很多錯誤都是在溝通上面產生的。根據我多年的軟體開發管理經驗,在溝通協調導致的錯誤會有90%以上,而且很多時候可能是致命的錯誤。這種大兵團的研發模式看似更加專業化,看上去很美,但實際上卻問題很多。在這個體系當中,每個人的創造性是被壓抑的,長期下去就成了機械運轉的機器,根本無法發揮團隊當中個人的創新力。一個看似100%完美的技術設計方案,還是會有問題的,而這種問題在研發體系當中一層一層傳遞下去,因為底層的機械執行特質,很難發現方案當中的問題,實際上很多優秀的產品都不是一次設計成型的,都是經過反覆演化的。大兵團作戰方式,為了保證任務傳遞的準確性,必須有很多很多的技術文件來支援。現實情況是,很多需求可能還沒有到測試階段,就發現需要調整了,這種大挪移的沉重做法很難適應現代的產品的快速生命週期特質。我們知道特種部隊在現代戰爭當中的作用越來越突顯出來,特種部隊小而精悍,有以一當十甚至當百的能力。其實軟體開發領域敏捷開發的提法已經很久了,但實際上我還沒有看到一個團隊是執行真正到位的。敏捷開發的實現不單單是學習它的理論的問題,就和你把特種部隊戰法教給一些普通的士兵就成了特種部隊了嗎?敏捷開發對人的單兵素質要求很高,這種體系是建立在人的素質的基礎上的。我感覺大公司今後的研發應該探求這方面的路線,減人增效,應該給公司的員工創造成為全才的機會,其實全才並不代表不專,就像軟體研發,很多東西是有想通性的,不是孤立的,當你打通了任通二脈,功力是大大提升的。我一直在團隊裡倡導做有產品思維和測試思維的程式設計師,程式設計師應該有不斷追求又專又全的心態,這樣的團隊在團隊溝通成本上面是大大降低的,而且開發可以幫助產品發現問題,大家可以互相學習,開發因為懂了測試,軟體開發產生的BUG減少了很多,這樣的團隊當中,每個人的積極性能夠被啟用起來。因為我們的一些程式設計師懂自動化測試,離職以後找到了更好的工作,現在自動化測試已經成為趨勢,懂測試懂開發的人就成了香餑餑,人的潛能其實是很大的,事實證明多件工作是可以同時做好的。當然實現這種團隊的難度是很大的,人員培訓是非常重要的,當一個人在公司裡面可以不斷的學到新的東西,不斷的提升自己,他就把自己的目標和公司的目標完美結合在了一起,得到了雙贏的局面。我有一個朋友是做底層控制開發的,應該是和華為交換機差不多,他也覺得大公司在底層開發上面靈敏度不夠,也在推進一種工具化的快速開發透明化模式。具體這個領域我也不是專家,但我非常認同的觀點,因為我在軟體行業看到了這些問題。如果以後打公司能夠提供員工更多的成為全才的能力,那麼技術人員的生命週期將大大延長,也就不會出現現在這種困局了。

其實實現這個目標還是很難的,這就像民主和集中怎麼來平衡,敏捷會製造混亂,規劃會抑制團隊的創造性和主觀能動性。這種平衡的藝術是對技術管理者的智慧的大大的考驗,強將手下無弱兵,雖然難,但不是不可能實現的。創新其實就來自於我們不滿足現狀,積極的去打破現狀,開拓新的思路。要實現這種目標需要注意下面幾個方面:

1.    人員的選拔,這種團隊需要個人的能動性很強,其實谷歌也一直把這種主觀能動性當做一個很重要的選人指標,需要有不斷學習的決心和願望。員工必須有強烈的願望去參加技術研討,積極參與進去,而不是旁觀者。

2.    公司需要提供員工這種機會,對於剛入職場的新人,做一些常規的執行任務是非常必要和正常的,成為全才的前提是你先做好一個螺絲釘,千里之行始於足下。職業剛剛開始,就大談創新,多數是不可信的(當然也有個別例外,實際上這些人在學校就已經經歷很多了,嚴格說也不是新人)。

3.    公司需要有很好的培訓機制,磨刀不費砍柴工,像谷歌這種大公司都是提供員工自己的學習時間和培訓機會的,而不是一味的加班加點。其實我感覺現在很多公司對員工的方式,都已經是在拼命壓榨員工的剩餘價值的感覺,把公司的利益高高的放在第一位,而不顧員工的利益,這種企業以後一定會被人用腳來投票的。

居安思危,公司不是福利機構,公司需要發展,個人努力,公司怎麼會有錢給大家發呢?要實現雙贏是雙方需要努力的,看看歐債危機吧,每天去公司打打醬油,如果公司長久下去,也就是這個結果。為啥以色列小小國家,科技那麼發達,因為可以居安思危,有危機感,我一直覺得人需要活到老學到老,沒有永遠不倒的大樹,看看幾年前的銀行和現在的銀行,保持自己的競爭力才是根本。公司需要保持競爭力,個人也是需要的。如果總是做千篇一律的工作,不要捨不得,猶豫不決,只能讓你越陷越深,每個人都是有選擇的自由的,不要等你老了才發現,你已經沒有選擇了。