孙鹏:在微软学到的几个小技能

开发
2005 年 7 月 11 日,我从学校毕业加入微软工程院,在 Exchange Server 团队做开发,当时的老板就是现在小米合伙人 KK Wong 和林斌。2010 年 4 月份我离开微软加入小米的创始团队,虽然当时差三个月到才五年,还是拿到了五年的纪念,一个玻璃砖,不小心摔碎了一角,我至今还保留着。

[[139119]]

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 并没有好好做日历,原因是统计表明我国人民根本不用日历,使用率非常低。现在好像开始发力了,估计是因为我厂员工自己有需求了,做好了可以提高工作效率。

 

 

责任编辑:王雪燕 来源: 博客园
相关推荐

2018-08-28 17:25:11

创业

2015-04-15 19:11:06

小冰

2013-06-25 11:06:51

编程技巧苹果

2015-02-04 10:32:57

Objective-CSwift

2012-10-09 14:53:47

微软

2015-01-26 16:35:12

O2O

2012-12-04 10:26:20

SAP TechEd

2011-07-11 10:34:40

编程技巧苹果

2013-09-23 16:15:15

轻应用超级App何小鹏

2023-03-10 13:30:47

2012-07-06 11:34:43

孙博凯微软

2012-07-06 14:33:00

CTO微软亚太研发集团

2022-11-16 09:04:36

SQL查询SELECT

2023-05-30 11:52:11

索引冗余索引

2011-01-19 09:07:20

Thunderbird

2021-12-14 10:45:59

智能飞行汽车

2012-07-22 23:46:30

大数据云计算数据市场

2022-06-07 23:28:05

线程安全后端

2020-10-29 10:59:44

Python开发数据

2011-06-13 17:36:43

外链
点赞
收藏

51CTO技术栈公众号