為什麼美國程式設計師工作比中國程式設計師工作輕鬆、加班少?

Fundebug發表於2019-02-28

摘要: 低效的加班文化需要時間改變吧。

Fundebug經授權轉載,版權歸原作者所有。

先問是不是,再問為什麼。

難道美國的程式設計師就不加班嗎?他們就一天八小時工作,還想來就來,想走就走?非工作時間完全找不到人?還有什麼食物飲料都免費提供?

讓我來告訴你真實的情況吧,還...

真是這樣的。

加班文化應該是中美兩地最明顯的不同了,形成這種差異的原因不是一兩句可以講清楚的。我在兩個國家都工作過,也在不同崗位工作過,所以就儘量從不同角度來簡要說一下。

國內程式設計師加班嚴重,問題首先不在程式設計師這個群體。

產品層面拍腦袋決策多

產品層面,拍腦袋決策多,美其名曰:網際網路思維、小步快跑、試錯思維,其實是沒想清楚,反正我就需求一提,技術團隊來做,上線後成功了我是產品天才,失敗了也沒啥壞處,找個藉口說什麼“網際網路市場變化太快”也能搪塞過去,或者找個新專案,繼續畫大餅。

國內的產品經理實在是太多了,很多還是剛畢業的小鮮肉,沒有一點經驗積累,憑藉天馬行空的想象力,提一個需求,就能讓一幫技術專家為之操勞好幾個月去實現,這簡直是不可思議的。即使產品經理很厲害,但人數一多,每個人都要業績,都拼命想點子、提需求,技術團隊怎麼能招架得住那麼多需求呢。於是就會這些現象:

  • 節假日來了,我們上一個活動,或者節日小彩蛋功能。
  • 競品上了一個 xx 功能,看起來不錯,我們也抓緊上一個。
  • 10個產品經理同時跟你說:這個需求我跟老闆對過了,xx 之前必須上線。

產品經理沒有想清楚某個功能的價值,或者帶來的收益不痛不癢,而技術團隊則需要為此付出巨大的心血,也就是加班。當然這也不一定是產品經理的錯,國內公司,老闆的指令太多了,不說了,你懂的。

在美國這邊,產品經理大多是行業經驗非常豐富的人,要麼是從工程師轉過來,要麼是從多年的商業領域經歷然後讀個 MBA轉過來。上線一個功能,經過嚴謹的理論推演、多輪前期調研、科學的 AB test,從提出 idea 到終端使用者看到更新,經常耗時半年或一年。很多不成功的 idea 還沒面市,就因為資料不好而“胎死腹中”。這樣一方面提高了產品需求的質量,另一方面也給技術團隊足夠多的時間來設計和實現一個可持續發展的架構。

技術團隊話語權低

管理層在做決策時,往往更重視產品更新迭代,而忽視技術的建設。

比如說技術團隊有100個小時,老闆可能會把90小時都投入到實現產品功能,給技術優化、修補技術債務。於是就會出現技術實現非常粗糙的情況,舉個例子,給你一週時間,實現一個 IM 功能,你還會考慮什麼模組化、可維護性、效能優化之類的嗎?當然是怎麼快怎麼來,百度一下有沒有別人實現過的程式碼,ctrl+v / ctrl+c,一點執行,誒,跑通了,上線。

所以國內很多程式設計師看別人的程式碼,感覺都是一團 shit,完全沒法維護,乾脆自己重寫一個。

技術老大能跑到老闆面前說“我們先把產品需求停一停,讓我們的技術團隊好好地優化一下基礎設施吧。”嗎?只要他不是傻子,都不會這樣說。

話語權低還體現在,對產品幾乎沒有決策權,甚至不能質疑產品決策,提反對意見,總會被產品經理各種理由擋回來,產品經理有一句話終結爭論的尚方寶劍:這是老闆要做的。

久而久之,技術債務越堆越高,bug 越來越多,程式設計師不加班,誰加班?

而美國公司的現象是,技術話語權非常高,一個沒想清楚的產品需求,能被技術團隊直接打回去。同時,技術團隊可以自主地花很多時間在技術優化上面。產品不能按時上線?經理說:沒關係,延後,按照最優的技術方案來推進。有時候你想趕緊上線,提交一段粗製濫造的程式碼,會被同事鄙視死,被老闆罵死。

每個季度最後一個月,專門抽出精力,來彌補技術債務,產品需求放一邊先。

在這樣的環境下,短期看起來效率低,但長期是最高效的。國內是“欲速則不達”,美國是“慢工出細活”。

技術基礎設施差

知乎上有一個比較熱門的討論:騰訊的技術建設是否落後?

這不但是騰訊的問題,實際上絕大部分公司的技術基礎設施都非常差。

有多少個公司能養一個專門的 Infra 團隊?有多少個技術團隊能專門成立一個小團隊,進行 Infra 優化?即使有,有多少個公司能保證 Infra 團隊的成果能在全公司推行?

我相信能做到這樣的公司是鳳毛麟角的。

中小公司不必說,在這樣高度競爭環境下,哪有財力養一個不能直接帶來 KPI 提升的團隊,即使有錢,也沒時間搞優化。

而大公司呢,即使騰訊這樣的體量,有一個 TEG 事業群做基礎設施建設。但是現實情況是,依然沒有全公司通用的內部工具,各個團隊依然在重複造輪子。阿里算是做的很好的,前幾年開始推行的大中臺戰略取得了顯著的成果,解放了各個產品部門的生產力。

計算機程式這種東西,一個人寫和一群人寫,幾千個使用者使用和幾千萬使用者使用,是完全不同的概念。沒有強大的基礎設施建設,技術團隊越壯大,效率越低,使用者數越多,bug 越多。出來混總是要還的,今天沒有人關注基礎設施,未來就會又無數個程式設計師為此加班。

而說回美國這邊,專門的 Infra 團隊幾乎是每個公司的標配了。這也是工程師文化的結果,創始人、高管團隊一定有很強的技術背景,走過了很多彎路,所以非常重視基礎設施建設這種“重要而不緊急”的事情。

畸形的職場文化

最後再來說說文化的差異。

美國人非常注重個人和家庭,犧牲自己的時間來給公司加班,這是不可能的。一到下班時間準點走,非上班時間完全不查郵件。很多公司入職培訓就專門強調了怎麼平衡工作和生活,其實就是說:下班時間就是你的時間,你有權利不處理公司事務。

反觀國內,不知道從什麼時候起,加班就是約定俗成的。還出現了看似很有道理的人生經驗,比如“年輕人就應該多拼一下”,“加班能學到更多東西,對未來也有好處”。

加班,竟然成了光榮的、可以拿來攀比的現象,比如說加班到凌晨一兩點,拍個照,發個朋友圈,收到老闆的點贊很開心。而管理者呢,還就吃這一套,誰加班多、會來事兒,考核的時候就更有好處。

在這種加班氛圍下,甚至還出現了“偽加班”。早上十點到公司,上個廁所、看會兒新聞、刷刷朋友圈,就到十一點半了,什麼工作也沒做,然後準備吃午飯;飯後逛一逛、睡個覺,又到2點上班時間了,寫會兒程式碼、刷刷知乎,一下午又過去了,很多公司有免費晚餐,吃完飯回來7點左右,再寫寫程式碼,磨到10點。哦耶,又是充實的一天呢,發個朋友圈給老闆知道。

其實一天有效工作時間還不夠8小時,但就是“加班”了。

綜上,大概就是國內加班嚴重的原因。

我覺得這也是某個時代特有的現象,誰都沒有錯,誰也沒有辦法改變這種情況。在國內這樣一個高度競爭的環境下,公司為了生存必須跑快點,個人為了發展必須多做事,畢竟你不做就會有千千萬萬的人來搶。

等到中國真的發展到美國這樣的發達程度,生存的減小了,才有資格談更好的生活品質。

相關文章