2005年7月11日,我从学校毕业,加入了微软工程院,成为ExchangeServer团队的开发人员。我当时的老板现在是小米合伙人KKWong和林斌。2010年4月,我离开微软加入小米创始团队。虽然只有三个月到五年的时间,但我还是得到了五年的纪念。一块玻璃砖的一角不小心摔坏了,现在还留着呢。五年来,除了偶尔和老同事聊天挖几个人,偶尔索要Windows注册码外,我和微软没有任何业务往来。直到春节,Windows团队才联系到小米,打算在小米4上移植Windows,我也没有大规模接触到微软团队。回顾过去,有几个在微软学到的小技巧让我和我的团队受益匪浅,我会写下来与大家分享。CodeReview(代码审查)在我加入微软之前,我在学校写了无数代码。和其他自学成才的程序员一样,大家都各干各的,很少和别人交流,大部分时间都在网上找资料,然后自己想想。到微软后,我加入的团队是和美国总部的工程师一起工作,我指派了一个高级工程师给我做CodeReview。我还记得他的名字叫布兰登。他其实比我小一岁,但是我研究生毕业开始工作的时候,他已经工作五年了,囧rz。在微软的工作流程中,CodeReview是非常重要的一步。翻译成中文就是“codereview”。我不喜欢这个翻译,因为它不代表上级和下级的认可。在工作中,没有必要让有经验的老手给新手做CodeReview。新手也可以给有经验的人做点评。只要他们不明白,他们就可以提出来。如果他们看不懂,说明对方写的代码不好维护。以后写的人走了,换成个人负责人,就会出问题。而这个来来回回的过程,也是一个互相学习的过程。你会发现这个地方还可以这样写。既然要互相学习,做CodeReview的人就应该和写代码的人一样认真思考,假装如果是我写的话会怎样。刚加入公司时,给我印象最深的是美国同事的耐心。他非常仔细地阅读了我写的代码,并给出了很多意见。我根据他的意见修改后提交给他。等我再改的时候,来来回回顶多十几个。有时我感到恼火,但我忍住了。诚然,对方提出的意见是正确的。几年后,我加入了一个团队。我是团队中资历最高的员工。有一次,在CodeReview的时候,我给新人提了很多意见,还帮他做测试,给出了我的解决方案。他觉得很不要脸,对我表示不满。我很淡然,有一种轮回的感觉,因为CodeReview就是这样。加入小米后,我发现国内大部分公司都没有CodeReview机制,这让我很怀疑他们的代码质量。幸运的是,MIUI团队最早的工程师都来自微软。虽然我们放弃了所有可能降低效率的流程,比如从不写DesignSpecs,减少不相关的测试等等,但我们始终坚持CodeReview,与微软合作同等重要。当时另一家公司的同事不接受别人给他的意见,固执地坚持自己的风格,我们就让他去其他团队做新的职能。因为只有这样才能在团队快速扩张的情况下,保证项目的质量和代码风格一致。还要感谢Google提供了代码管理工具Gerrit,让我们做CodeReview比在微软的时候方便多了。EmailandRules(邮件与规则)工作中不可避免地会收到大量的电子邮件,但是我们国家的人似乎并不喜欢用电子邮件来交流工作。每次看到同事邮箱里几千封未读邮件,我都觉得是??一种无奈。当我遇到可以教我的新同事时,我会告诉他每天处理邮件并确保没有未读邮件是一种美德。不信你看看我的邮箱,没有一封未读邮件。事实上,没有必要努力工作。秘诀是删除所有不应阅读的电子邮件。一般来说,正常的邮件原则是,如果发件人需要你回复,他们会把你放在To,如果他们只是需要你的信息,他们会把你放在Cc,如果他们不想让你以后插手,会把你放在密件抄送中。因此,应将出现在To中的电子邮件单独列出并首先处理。然后把出现在抄送里的列出来,随便看看。其他的如果发到你的小队里,其实和Cc差不多,看看就知道了。对于其他人,只需将其删除即可。不看也没什么损失。如果有问题,也是发件人的问题。谁让他不按规矩出牌的?比如你不把收件人写在To或者Cc里,而是在正文里写@,你以为是微博啊亲?当然,公司行政部门发送的通知不包括在内,所以重要人物(CEO、部门主管、行政主管等)发送的邮件应该单独列出。如何整理不同优先级的邮件?这就是邮件规则的作用。为什么我知道这么多?因为那是我在微软时所做的。如何设置邮件规则?Outlook里面有很多介绍,我就不赘述了。当然,也有谷歌的同事说,只要你把所有的邮件导入Gmail,Gmail就会自动帮你处理。我说我还没拿到。Calendar/Freebusy(日历)这是个高级技能,因为一般人不用,我也是最近才用到。公司最大的表现就是开会多。很难找人开会,因为对方经常有其他的会议,而且时间不对。有时候想想都觉得很可笑。这种情况往往需要打很多电话,或者微信/微信沟通才能搞定,也有临时变通的。其实微软提供了一个很好的工具,那就是日历。首先,在日历中记录自己的日程安排;然后,打开权限让同事看到你的日程,你只能看到时间段。这样,如果大家都这样做,召集会议的同事就可以把大家加到日历里,找个大家空闲的时间段。此技能仅适用于服务器为ExchangeServer的邮件系统。我现在把我所有的安排都记在日历里了,不管是不是工作相关的,甚至是理发和足球,我已经养成了一个习惯,只要不在日历里,它就会自动忘记,所以我做了不放过一件事我在日历的时候很着急,手机就在身边,加起来很方便。公司外的人要约我,电话也很多,但我会提醒对方用邮件发个MeetRequest,让大家记住时间,很多时候我都是小心翼翼的怀疑从对方的语气中。没有日历。以前MIUI做的日历做的不好,因为数据显示我们国家的人根本不使用日历,使用率很低。现在看起来工作很辛苦,可能是因为我们厂的员工都有自己的需求,做好了可以提高工作效率。
