為什么有些大公司的技術弱爆了?
最近好幾個大廠的讀者不約而同跟我聊到公司采用的技術棧很落后的問題,一個讀者還感嘆:是不是大廠的領導都是混子?技術這么弱還不如之前呆的小公司。
回復了幾個讀者朋友之后,這里也想跟大家分享下這個問題:
1.大公司業務極其復雜
畢業第一年在騰訊工作,做QQ游戲大廳,當時用的IDE是VS2006,用的版本控制工具,叫 ClearCase(估計用過的人不多),IBM 開發的。
特點是極其嚴謹、非常強大,但流程極為繁瑣,用起來簡直讓人抓狂,這還是騰訊花了3000萬找IBM買的。
而QQGAME這個產品的代碼量幾十萬行,DLL就有幾十個,工程編譯一次需要20分鐘以上。
離開騰訊多年后,問了問前同事,他們居然還在使用VS2006和CleaerCase,原因很簡單,更換新版IDE需要解決大量技術問題,而業務又在高速迭代,只好不了了之,更換版本控制工具?歷史的各種Log就會丟掉,要是出現什么稀奇古怪的突發問題,還得去看CLeaerCase。
業務的復雜性還會導致耦合嚴重,一但代碼工程產生耦合,改動一個地方就會牽一發而動全身,這種情況下引入任何新技術都會帶來極大工作量。
大公司的業務代碼,有時候明明感覺有bug,卻能運行良好。
這是一個前人留下的屎堆起來的一個克蘇魯縫合怪,看起來搖搖欲墜,有無數的蟲子爬來爬去。但勉強堆起了山一樣的形體,蠕動著為老板賺錢。
2.大公司技術歷史包袱重
大公司之所以能成為大公司,一定是找到了穩定持續盈利的業務模式,這些業務對應的產品,動輒橫跨幾年甚至10年,這些年業界的技術高速發展,但大公司要保證業務的穩定性,即便再落后的技術,只要能給老板賺錢,就是極好的。
你想嘗試引入新技術?能帶來多少用戶價值、商業價值?導致系統崩潰了怎么辦?小公司系統出點問題無非是影響幾萬用戶,大公司的產品要來點小問題,就算1/100的幾率,拿QQGAME上億用戶來說,那就是100萬用戶出問題,一下就給公司帶來幾千萬的損失,這么大的鍋,誰敢背?
所以大公司的技術leader在引入新技術這方面,一定是趨向于保守的,人都是趨利避害的,用了新技術成功了,并沒有肉眼可見的好處,失敗了?直接卷鋪蓋滾蛋吧。
3.大公司新人入職離職頻繁
鐵打的營盤,流水的兵講的就是大廠,大廠每年應屆招聘動輒數千,社招再來數千,離職也不下幾千甚至上萬。很多開發的還是外包人員,外包人員的流動性可想而知。
在這種人員流動速度面前,能勉強把舊的技術系統吃透就燒高香了,哪有心情和心思研究新技術,除非真的是遇到了某個技術困難非要迭代進化,否則很難有動力去驅動。
以上三點,是我在大公司工作多年后的一些心得,但這么說大公司的技術難道就沒救了?
當然不是!
大公司在以下幾種情況,也會爆發出驚人的技術戰斗力:
1.組成攻堅小團隊,開疆辟土
這個最經典的就是騰訊的微信團隊,2012年馬化騰接受張小龍的建議,要殺入移動通訊領域。公司并沒有只讓QQ團隊來研發這個新事物,而是同時啟動3個敏捷小團隊和QQ團隊一起賽馬。最后的結果大家也知道了。
微信團隊今天取得的成績不光是用戶量,同時也有多端通訊實時同步的領先技術,這項技術在2012年屬于絕對領先且碾壓的技術。微信團隊的前身是foxmail,張小龍創造性的把郵箱的實時同步引入到即時通訊領域。
哪怕到了今天,微信團隊從幾十人成長到上萬人,微信的技術依然保持著高速進化的狀態。
2.業務老人走光,無法延續
這種情況比較極端,但也會發生,大公司老團隊的業務leader跑路,然后帶走骨干,又或者自然流失殆盡,導致舊的系統新人完全無解,或者迭代極為緩慢。
新Leader這種情況下,選擇大刀闊斧,直接大規模重構,甚至重寫。在騰訊互娛大部門,某一個游戲團隊就發生過這樣的事情,反而讓各種新技術充分落地應用。
3.技術密集型的業務,必須不斷在技術層面取得突破
哪些是技術密集型的業務?比如谷歌的搜索、微軟的操作系統、亞馬遜的云計算、華為的5G。這些大公司的業務,你絲毫不用擔心技術上有任何落后。
他們事實上已經進入技術無人區,必須依靠企業的內發創造力,不斷取得突破。所以他們會大量招募全球最頂尖最聰明的人才。
比如華為會在俄羅斯廣泛招募數學天才,微軟亞馬遜吸引了大量能力智力雙高的華人。
最后說下我對大廠的總體看法:并不是大廠員工能力問題導致某些技術落后,完全是業務和商業市場的選擇導致。
另外,我認為程序員職場初期(前五年)進大廠是非常必要的,不管是不是最先進的技術,最起碼完善的技術培訓體系、薪資福利、更人性化的管理、人才密度等等,完全碾壓小廠。
你好,我是findyi,畢業于華科、清華,一位大廠的業務負責人,做過大廠技術總監,也做過小廠CTO的產品技術人,同時,也是一位信奉終身成長的職場人。