在微軟 5 年,我學到的幾個小技能



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

【作者介紹】孫鵬,小米生態鏈產品規劃總監,文章來自他的知乎專欄:智能水桶 (點擊進入知乎原文)


資料來源:雷鋒網
作者/編輯:孫鵬

如果喜歡我們的文章,請即分享到︰