1. 程式人生 > >七年工作,幾個故事

七年工作,幾個故事

從畢業工作到現在,已經有七個年頭,年頭雖然不久,但是回過頭來看看那些經歷的好的壞的有趣的扯淡的事情,還是有很多東西可以總結。所有人都會或多或少走彎路,本來成長就是這樣一個過程,有時候想起來會感嘆,有時候會唏噓,有時候會一笑而過。我的前一半時間是在華為,這段時間留給我很多回憶(比如這幾個瞬間);後半時間在亞馬遜,也給了我不少感慨的機會。下面這些故事都是我經歷的真真實實的事,有的事情已經過去好久,但我不想把它永遠塵封。也許你和我在某些方面,會有共同的體會。

在我說這些故事前,或者說,吐這些槽前,我想說這樣三個觀點。

首先,為自己工作。不是為父母,不是為同事,不是為公司,不是為專案,不是為績效。幾年以後你離開,專案的成就屬於公司,績效已是過往雲煙,你獲得了收入,公司得到了效益。一身行囊離開的時候,除了一些積蓄,就是你的經歷,你的態度,你的身體,還有,你的技術。沒有人會為你的決定買單,父母不能,親友不能,只有你自己;沒有人再會在乎你前一家公司考評得到的是A還是B,你為公司專案付出了多少、贏得了多少。感情上有無數種結果,但是事實上只有一種。這個道理很簡單,但是為了明白它我花了很久的時間。

每一家公司都有它的企業文化,人在努力建立自己正確的職業觀的時候,總是會或多或少被這樣那樣的企業文化所影響,嚴重的可以說,被洗腦。我有點慶幸似乎這個影響並不非常深刻,無所謂對錯之分,但是人唯一可以減輕某一種激進的和單一的價值觀所造成的影響的方式,就是多走走看看,不同的價值觀,不同的文化,在不同的體系裡面生活,形成自己的主要觀點

其次,我對於工程師,或者說程式設計師,這些前同事,大多很尊敬。我們在一起的時候,相處融洽,我也受到了不小的照顧。但我對一些制度、文化,以及個別人的做法,非常反感,這個反感也成為了我日後引導我學習和工作的動力之一——“不要變成那樣的人”。

最後,給自己開闊眼界的機會,很多問題或者說是感受,當事的環境無法感受到,但是也許幾周、幾月、幾年後,回過頭來看的時候,有了別樣的觀點。所謂對錯,只有在蓋棺論述的時候才最公證。

到底這幾年工作教會了什麼?上面的這些觀點只是一部分而已,看完下面的五個短小的故事,心裡會有更好的答案。

1、加班

工作前幾年總是加班,週一到週五平均的回家時間是晚上八點半,沒有周六。週六公司根據工作的時間給雙倍的薪水補償,週日休息。加班時間大部分是為了專案的事情,也有時候是為了技術學習。專案計劃都是倒排的,就是這篇文章裡面提到的“進度驅動開發”。工作壓力不可謂不大。在專案最艱苦的那一年,我的模範同事榮哥基本上一週七天,總會有兩三天住在公司,早上起來到晚上入睡,連續從事慘無人道的專案工作。基層領導無不如此,專案經理也許編碼的事情做得少一點,但是壓力一點都不比程式設計師小。

沒有武力脅迫,整個大環境使然。

如果你覺得這很正常,或者評論“年輕時候奮鬥對自己有好處”,我通常不置可否,但是誰要是拿這個當正面例子來正兒八經地當面教育我,我一定吐他一臉唾沫星子。

有的同事累得哇哇吐了一地,有的同事累得發燒身體垮了,我的鄰座曉君連續工作幾天後,有一天突然發現眼前全黑,眼睛突然看不見了,雖然後來恢復了,但是這事兒可真夠嚇人的。有些變態劇情和狗血劇情,反覆在身邊上演,若非經歷過當時那種環境,我是絕對不會相信那個累死了多少人的傳言的。

最累的時間包括專案釋出和效能優化那兩段時間。

專案釋出是專案組裡面的大事,其實這個釋出不實真真正正的“釋出”,而是“轉測試”,就是在一個開發和測試嚴格區分的團隊裡面,開發團隊要把產品交到測試手裡,而這個“交到手裡”,是有嚴格的質量要求的。我們會做各種測試,會過checklist,整個團隊都留下來,通常都要熬夜,有時需要通宵。

效能優化則是那種絞盡腦汁的辛苦,這個事情並不是很容易做,尤其是在一期把那些顯而易見的東西優化完了以後(一段時間以後,我總結了一些效能優化的經驗在這裡)。領導就會給指標上的壓力,這點確實很煩人

最忙碌的幾個月,一切看起來都很瘋狂,但是沒有人提離職,是人被忙碌麻痺了,還是折騰傻了,我不知道。

這幾個月過去以後,專案組得到了喘息的機會,大家開始瘋狂地走人。

南京是個不算特別大的城市,大部分的同事也沒什麼野心,努力工作,圖個安穩,不願挪窩,而且工作機會也不多(人家說南京的軟體企業,一半是華為,另一半是跟華為打交道的)。但是,還是被逼迫到了那個份上,在接下去的半年內,專案組內的員工陸陸續續走了三分之二。考慮到小城市、公司洗腦等等因素,相較於往年的情況來看,這個數已經非常巨大了。

這個經歷以後,再有人和我講起當年加班苦專案苦的時候,我都仔細傾聽,然後,多數情況下,都會說出那著名的兩字箴言:

呵呵。

2、離職

一天早上我醒來,突然想到每天干的事情太tm沒趣了,我想離職。

想了三天,我和當時的專案組老大榮哥說了。我和榮哥私下關係不錯,我挺尊敬他,他也挺照顧我。當時榮哥挽留了我,說了一些好話,問我,開始找工作沒?我老實地說,沒有。

於是幾天後榮哥的老大找我談話,給我畫餅,大致是說,如果你留下來,薪水、晉升,都是大大的有。我先呵呵,然後,我說不,我要走。

然後我才開始找工作,我是次年一月份離的職,我想我前一年都幹滿了,應該有年終獎吧。

離開半年內,我還覺得之前的故事都算人生的經歷,還挺有趣的。期間有朋友還向我諮詢工作機會,我說你要能吃得起苦,還想圖安定,我可以把你推薦到華為,若干年以後,因為據我所知能扛的收入都不低。

我發現事實就在那裡,看你怎麼說,不同的說法效果截然不同。苦逼可以說是奮鬥,工作壓力大可以說是鍛鍊,大家埋頭幹活不知擡頭看路,可以說是人際關係簡單。

前一年的股票分紅是公司統一分的,果然一分錢沒差我,但是前一年的年終獎是基層領導做主的,結果我居然是零。打電話問差不多時間走的員工,有個案,但大部分人都是零。

我很不爽,託榮哥去問基層領導,得到的迴應是,這是長效激勵,是給“長期呆在公司的員工”的。意思就是,哥們你幹完活了,既然走人了,這事兒就結了,互不相欠,你難道還想拿事後的報酬?

這以後還有好幾人向我詢問去華為工作的建議,我都嚴格遵照著事實,給了並不算正面的回答。而且對於年輕人吃苦奮鬥的觀點,我在這篇文章裡給出了更多的論述。

這件事情以後,我在微博上面說:

華為是一個不錯的公司,公司直髮的股票還是N+1,一分錢都沒有少我;可是今年初離職的員工,去年年終獎都是0,這確實讓我很不理解,給我的理由我非常不喜歡,人走茶涼到這樣的地步。去年離職的人那麼多,我願意拖到今年走。該反思的人不應該是我:想想為什麼那麼多人要離開?只是因為累嗎?我不是什麼老好人,不喜忍氣吞聲,但也不像某前同事那樣對此破口大罵。不要和我講大道理,我一度想爭取一下自己的利益,但不甚值得,擔憂言語,便最終作罷。曾經的同事們都待我不薄,我依然感恩在心。一個團隊應當豁達、有包容,就如某離開阿里的同學依然會在生日那天收到祝福簡訊一樣,此乃好聚好散。

3、關於程式碼質量“改進”

一個人做傻逼的事兒不難,難的是整個team一起做傻逼的事兒。

而最最可悲的是,我是這群人中牽頭的那個。

簡言之,這個事情就是公司對專案組有指標上的要求,包括FindBugs、CheckStyle、PMD、Simian等等各種工具,都有一個嚴格的缺陷數目限制。這些工具的程式碼檢查規則由公司內的質量改進小組完成,凡是違背了這些工具的規則,被檢查出的程式碼“質量問題”,都要備案。

工具本無罪,用得好確實是正面的幫助,用得不好,人玩工具就變成了人被工具玩。

如果你無法理解這一點,你可以看看這篇文章,這個故事的過程我記錄在了這裡。

我則是去做“工具的工具”的那個倒黴蛋——去做一個工具,聚合和顯示這些工具檢查結果報告,在每次專案build的時候,程式碼提交的時候,都用這些工具檢查“程式碼質量”,有問題的提交會被駁回,或者報表、郵件通知。

這些工具和指標哪裡是在為了“程式碼質量”改進啊,這些完全就變成了程式設計師工作的絆腳石。

天,現在看起來,我在那段時間裡,成為了我最痛恨的一種人:

助紂為虐。

這是我至今無比悔恨的故事之一,而“身不由己”從來都不是什麼好藉口。

即便至今,因為這事兒,我依然會不斷對自己說:

我是程式設計師,不要做反程式設計師的事。

4、講下辦公室政治

有人的地方就有江湖。

其實還有後半句,有江湖的地方就有人渣。

但是話還是說重了,我想大多數程式設計師都不喜歡辦公室政治。因為他不符合程式設計師解決軟體問題的思維和觀念,也不符合我們從小接受的傳統教育。但是,它畢竟是存在的。我以前以為這件事情上中國國內會比美國嚴重一些,但是我錯了。

有些國家的程式設計師包容性、適應性強,很容易就接納了這種文化,而中國的程式設計師普遍清高,“鬥不過還躲不起嗎”,受不了就撤的居多。這也是為什麼中國程式設計師相對較少能在美國一家軟體公司或一個團隊呆很長時間的一個原因。

我經歷的兩家公司都有這樣的情況,有的大有的小。其中一個非常典型的例子就是“半夜發郵件”,此半夜發郵件非真真正正的工作到半夜而發郵件,而是以顯示自己的勤奮美德。而要說大的,就是每當換大領導的時候,往往就要來那麼一次人員重組,大量manager和engineer離職、換組。這裡的動盪是顯而易見的,儘管和工程師們直接打交道的,都還遠沒到大領導。但依然會波及他們的離開。原因或許各種各樣,而且還“個人家庭原因”居多,但普遍原因從統計學上大家一分析,都清楚得很。一些專案上的事情,讓工程師不舒服的事情,都會成為導火索。這次輪到我也成為了其中的一員,但是最近走的人太多,被強留了一個多月。有時候聽到有的工程師討論,說要離開以示憤怒,但是其實呢,我們的影響都沒有那麼大,不會有那麼多人在意你我的心境。只有提升自己,為了自己的前途才是王道。這些其他的事情,大多就隨它去吧。

要有一個相對舒適的環境,工程師才可以創造最大的價值。否則,一樣是工作,“他一直在工作”,產出卻可以天差地別,混日子還是辛勤工作,外人還根本看不出來。能做到或者接近做到的公司和團隊,真是太少了。

但無論如何,我也會感謝一下當初的選擇,幸虧選擇了這個行業,才有那麼多可以換工作和環境,可以選擇的機會。

5、轉行

其實哪裡是真正的“轉行”啊,我只是從傳統軟體業轉向網際網路軟體業而已。

但是,就這一次改變。都讓我深深的感到,網際網路軟體在技術上已經甩了傳統軟體幾條街;我是該離開南京那個小城市了,我呆太久了,再不出來,就更難出來了——那時候技術上、理念上,甚至心態,差距會更遠。我開始面試,跑上海,跑杭州,跑北京,各路的IT公司,國企、民企、外企,到後來我都不知道面試該準備哪些東西了,各種路子,太不相同了。

改變總是很難。對於我們的“轉行”而言,生活的城市改變了,工作改變了,一切似乎都改變了,但是,同時,眼界也開闊了。

我的同事曉君,前面提到的那位,決定回到他曾經夢想去的公司,Thought Works,也回老家,回西安去。我當時說,你和我一樣,去北京、上海那樣的大城市吧,我們都只在小地方轉著圈圈,現在機會不抓住,免得未來哪一天後悔。你就甘心在西安待下去嗎?你肯定還想再出來見更大世面的。他說不會的,他想回家。

他於我先離職,我當時這樣勸他;到我離職,再入職新公司,我還這樣勸他。

大概兩年以前,他到北京參加QCon的會議,我們在一起吃牛蛙,五香味的鍋,他說,他也想走,離開西安,去澳洲。我說好,但其實沒太當回事,因為我覺得人有想法很容易,要做起來其實很難。走的時候我說,我們這一別真不知道什麼時候再見了,你老家在陝西,我老家在浙江。

半年前,他微博私信和我聊的時候說,他要加速了。我還是沒太當回事。

前幾天,他忽然講,月底就要離開西安,去澳洲了。他不甘心,決定接受挑戰,這幾年,他學英語,找工作。我很高興,但什麼也沒多說,只是呵呵。

這事情最終被我說對了,祝他一切順利,過上自己想要的生活。但我深知到一個新的環境中,拖家帶口的,這其中的艱辛。我經歷過這一步。

隨著經歷的增加,我更加佩服和尊重那些在面對各種困難的情況下,敢於邁出改變那一步的人。

如今,在我每天上班的van上面,一車都是博士(除了我)。我們每天一起上下班,吐槽各種工作生活上的奇葩事情,可能是一天最快樂的時間。大家都有一些悲催而牛逼的歷史。比如有學雷達專業博士畢業的,家裡已經兩個小孩,決定轉行改學計算機,這可是真正的轉行。半年時間,關在家裡,拼命刷題、夯實基礎,順利拿到自己滿意的程式設計師工作offer,這讓我們這些計算機和相關專業出身的人都感到無比佩服;還有一位則是最近找工作,家裡已有一子,每天要照顧小孩,還有沒法騰出時間,他說他只能開夜工,晚上學習。最近幾個月一直在面試,已經拿到了好幾個offer,package都非常棒。

我記得我老婆說過,這一行的好處就在於,不用託關係,不用送禮,只要靠自己。不擔心丟掉工作,拿的錢還乾乾淨淨。

你說呢?

原創作者:四火,原文連結:http://www.raychase.net/3196,先後任職華為、亞馬遜、Oracle,現居美國