在微軟學到的幾個小技能

zhihu發表於2015-07-06

  2005年7月11日,我從學校畢業加入微軟工程院,在Exchange Server團隊做開發,當時的老闆就是現在小米合夥人KK Wong和林斌。2010年4月份我離開微軟加入小米的創始團隊,雖然當時差三個月到才五年,還是拿到了五年的紀念,一個玻璃磚,不小心摔碎了一角,我至今還保留著。

  最近五年,除了有時候去找老同事聊聊天順便挖幾個人,偶爾要個Windows的註冊碼之外,和微軟沒有任何業務往來。直到春節的時候Windows團隊和小米接觸打算移植米4上的Windows,我才又大規模接觸微軟的團隊。回首過去,有幾個在微軟學到的小技能,讓我和我的團隊受益很大,寫出來分享給大家。

  Code Review (程式碼審查)

  加入微軟之前,我在學校寫了無數程式碼,和其他自學成才的程式設計師一樣,大家都是各做各的,很少和其他人交流,大多數時間是在網上找資料,再自己琢磨。到了微軟之後,我加入的團隊是和美國總部的工程師一起工作,分配了一個資深的工程師來給我做Code Review,我還記得他的名字叫Branden,其實年齡比我還小一歲,不過我研究生畢業參加工作的時候,他已經工作五年了,囧rz。

  在微軟的工作流程裡面,Code Review是非常重要的一步,翻譯成中文是“程式碼審查”,我不喜歡這個翻譯,因為其實並沒有上下級審批的意思。在工作中不一定是有經驗老手的給新手做Code Review,新手也可以給有經驗的做Review,只要看不懂的地方就可以提出來,看不懂說明對方寫的程式碼不容易維護,將來寫的人走了換了個人負責就會有問題。而且這來來回回的流程也是互相學習的過程,你會發現原來這個地方還可以這麼寫,既然要互相學習,那做Code Review的人也要像寫程式碼的人一樣認真思考,假裝如果是我寫的話會怎麼辦。

  我剛入職的時候印象最深的是美國同事的耐心,我寫的程式碼他非常仔細的看,提了非常多的意見,我按照他的意見改一遍,再提交給他,他再提意見,我再改,最多的時候有十幾個來回的,有時候我都覺著煩了,但還是忍住了,確實對方提的意見都是對的。幾年後我到了一個團隊,我是裡面最資深的員工,有一次在Code Review的時候給新入職的同事提了很多意見,還幫他做了測試,給出了我的解決方案,可能讓他覺著很沒有面子,他對我表達了非常不滿的情緒,我非常淡然,並感受到了一種輪迴的感覺,因為Code Review就是這樣的。

  加入小米之後,才發現中國大多數公司是沒有Code Review機制的,這讓我非常懷疑他們的程式碼質量。還好MIUI團隊最早的工程師都是從微軟過來的,儘管我們拋棄了所有可能降低效率的流程,比如再也不寫Design Spec,減少無關的測試等,但是始終堅持做Code Review,並且和在微軟的重視程度一樣多。當時有從別的公司過來的同事拒絕接受別人給他提的意見,頑固堅持自己的風格,我們就讓他去別的團隊做新功能去了。因為只有這樣,才能保證在團隊快速擴張的情況下,保證工程質量和同樣的程式碼風格。這裡還要感謝Google做的程式碼管理工具Gerrit,讓我們做Code Review比在微軟的時候都要方便。

  Email and Rules (郵件與規則)

  工作中難免會收到很多郵件,但是我國人民好像不喜歡用郵件來交流工作,每次我看到同事的郵箱有幾千封未讀郵件的時候,就感覺到了一種無奈。遇到孺子可教的新同事,我會告訴他,每天把郵件處理掉,保證沒有未讀郵件是一種美德,不信你看我郵箱,一封未讀郵件都沒有。其實這裡面並不需要勤奮,祕訣就是把不該看的郵件都直接刪掉。

  一般來說,正常的郵件原則是,如果發件人需要你來相應,會把你放到To裡面,如果只是需要你知情,那會把你放到Cc裡面,如果以後不希望你再介入,會把你放入Bcc裡面。所以要把出現在To裡面的郵件單獨列出來,優先處理。然後再把出現在Cc裡面的列出來,看看就行。其他的如果是發給你在的小團隊的,和Cc其實差不多的,看看就行。其他的,刪掉就行,不看沒啥損失,如果有問題,也是發件人的問題,誰讓他不按牌理出牌呢。比如不把收件人放在To或者Cc裡面,但是正文裡來個@,以為這是微博呢,親?當然公司的行政發的通知除外,所以要把重要人物(CEO,部門老大,行政主管等)發的郵件單獨列出來。

  怎麼把不同優先順序的郵件分出來?郵件規則就是幹這個的。為什麼我知道這麼多?因為我在微軟的時候就是做這個的。如何設定郵件規則?Outlook裡面有很多介紹,我就不多說了。當然有從Google來的同事說只要把所有的郵件匯入到Gmail,然後Gmail會自動幫你搞定,我表示還沒有得到。

  Calendar/Freebusy (日曆)

  這個是高階技能了,因為大多數人用不到,我也是最近才需要的。公司大了最大的表現就是會多,找人開會難,因為經常對方有別的會,時間對不上,有時候想想也挺可笑的。這種情況,經常要打很多電話,或者在微信/米聊裡面溝通才能搞定,還有臨時變卦的。

  其實微軟提供了一個很好的工具,那就是日曆。首先,把自己的安排都記在日曆裡面;然後,開放許可權讓同事看到你的日程,可以只看到時間段。這樣,如果大家都這麼做,那召集大家開會的同事就可以在日曆裡面把大家都加進來,找一個大家都有空的時間段。這個技能只適用於伺服器是Exchange Server的郵件系統。

  我現在所有的安排都放在日曆裡面,不論工作有關還是無關的,連理髮和踢球什麼的都有,還養成了一個習慣,只要不在日曆裡面的都會自動忘掉,所以一件事沒有放在日曆裡面的時候就很焦慮,還要手機就在旁邊,加起來很方便。公司外面的人要和我約一個會,打電話的比較多,但我都會提醒對方通過郵件發一個Meeting Request過來,這樣方便大家都記住時間,大多數時候從語氣來看我謹慎懷疑對方並不用日曆。

  以前MIUI並沒有好好做日曆,原因是統計表明我國人民根本不用日曆,使用率非常低。現在好像開始發力了,估計是因為我廠員工自己有需求了,做好了可以提高工作效率。

相關文章