微软变了!招程序员的流程完全改了
【伯乐在线导读】:在微软新 CEO 萨蒂亚·纳德拉的领导下,微软试图改革公司文化,让整个公司朝着同一个方向发展。为此,微软在 2016 年开始研究「替代面试框架(Alternative Interview Framework)」。这是一种在开发部门进行面试的新方式,目的是减少偏见,更好地测试求职者在工作中实际需要的技能。该团队首先在自己身上测试了面试过程,并在过程中不断改进。
本文作者约翰·蒙哥马利(John Montgomery)是微软项目管理合伙人,他也是新面试流程的负责人。本文写于 2018 年 12 月 15 日,原标题:《Rethinking how we interview in Microsoft’s Developer Division | 对微软开发者部门招聘流程的反思》。以下是伯乐在线的译文:
几年前,我有了一系列的顿悟。我刚刚和团队讨论了我们将如何改变项目经理的角色。少关注待办事项,多关注业务;少强调“知道”,多强调“学习和质疑”;更多地关注与客户一对一的接触,而不是聚合数据。我们想把能帮助我们改变这种文化的人带到团队中,但我们仍然在问同样的面试问题,使用同样的面试风格。所以反思了我们是如何面试候选人的,并想出了一些适合我们的方法。
新面试流程我们已经用了一段时间了,我认为有必要分享一下我们所做的,以及学到的东西。
第 1 个顿悟:我们仍然在问一些过时(和无效)的面试题
第一个顿悟是我首次从程序员转为项目经理之后,我们注意到,我们仍然在问过去 10 年或更长的时间里一直在问的面试题。如果我们想寻找能够将不同技能和观点的新人带入团队,那些面试题就没有意义了。(补充:我在微软工作时,我们还在问为什么下水道井盖是圆的,一架波音 747 飞机能装满多少个乒乓球,以及如何反转一个链表。在微软工作的 20 年中,我还没有编写代码来反转链表,或用任何类型的球堆满波音 747。)
不仅如此,有时两个面试官会无意中问同样的基本问题。即使在协调面试题的时候,面试官之间也是共享着相同的面试题目录。有些基于行为的面试题并不可怕,但我们并没有特别有效地运用它们。
第 2 个顿悟:并不是人人都能在快节奏、高压力的环境中超常发挥
第二次顿悟是在一次会议上。点子冒出来的很快,与会者听着对方的话语,试图把自己的想法融入谈话,我们很快就做出了一些重大决定。至少,我确信这将是一件大事。(我当时被一个客户问题分散了注意力,我正与客户经理和工程团队一起解决客户的问题。这是另一个故事。)不管怎么说,这次会议已经达到了高潮,其中一位与会者,我团队中的一名 PM,他非常聪明,也很安静。他说,“我只是在网上搜索有关我们主题的信息,是的,这个想法行不通。”她的态度比这要好。但让我顿悟的是,并不是所有人都能在那些快节奏的头脑风暴会议中出色表现。很多人(包括我)更喜欢坐着喝杯咖啡,看看数据,试着把事情想清楚。更重要的是,在我的职业生涯中,几乎没有任何一次我们做出重大决定的时候,没有不是离开一段时间,然后用新的眼光、新的数据和新的客户研究来处理点子。
但大多数面试都是快节奏的,那些你从未遇到过的问题,你能有多快地解决?
第 3 个顿悟:观察新人工作能力的最佳方式,是和他们一起工作
在我和一些工程团队谈论他们是如何将新人带入他们团队的时候,第三个顿悟冒出来了。开发者部门做了很多开源工作(.NET Core、VS Code、TypeScript 等等。作为面试过程的一部分,我们开发团队已经开始与应聘者一起解决某个问题或特性。这就是候选人在和团队一起合作,解决实际问题的过程。
把点子写下来,然后迭代
既然“写作就是思考”,我就给自己写了一封电子邮件,讨论我们团队面试流程能有什么样的变化。然后我把自己的想法分享给团队成员,我们开始迭代。 Karen Ng、Amanda Silver、Cindy Alvarez、Nathan Halstead、Anthony Cangialosi、Jeff McAffer、Jessica Rich、Travis Lowdermilk 等成员参与了测试、迭代和测试。
当我们准备推出新面试流程时,我们从很小的地方开始,然后继续学习、迭代,然后扩展。现在,这个新流程(我们称之为“另类面试框架”,因为我们中没有人特别擅长命名事物)是我们的标准实践。我们不断地完善和学习,它对我们非常有效。
下面是我们做的一些不同的事情。
1、提前分享面试
首先,我们要提前几天让候选人知道面试日是什么样的,我们要解决什么样的问题。我们给他们时间去做研究和思考。这并不是说每天上班都是件惊喜的事,那么面试为什么要这样呢?
2、用真实的问题
其次,我们采用了团队正在努力解决的一个实际问题,比如:提高满意度、增加留存率、促进服务或特性的使用。事实上,这是我们正在解决的一个真正的问题,这有助于促进合作对话。
3、候选人可以查阅资料
第三,我们让候选人能拿到与正式员工相同的资料。在面试过程中,他们可以自由上网或搜索更多数据。我们经常向候选人提供我们的客户研究、使用数据、设计和模型——几乎我们所有的一切。
4、让面试更有互动性
我们不是简单地向求职者提问题。面试官和求职者要一起解决问题,所以我们就把求职者当同事看待,一起来解决特定的实际问题。
5、遵循单一场景/问题
第五,我们在面试日都遵循一个单一的场景/问题,带领求职者过一遍类似 PM 会经历的过程,从客户或业务问题开始,理解客户待完成的工作要,设计解决方案,将解决方案交到客户手中,最终让客户使用并爱上它。每次面试都侧重于这一流程中的某一不同的阶段。
6、两个面试官
第六,我们为面试官配对。与一对一的面试不同,我们每次面试都从团队中挑选两个人。我们的最初动机是培养更多的面试官,但有两个面试官在一起还有其他好处。与多个合作者的谈话,不仅更有活力,而且让我们有机会从多个角度观察同一场面试谈话。并不是每个人对同一场面试谈话都有同样的看法,所以,它给了我们一种方法来检查在相同谈话中的无意识偏见。
7、把反馈留到最后
面试官之间的反馈,我们把保留到面试日结束之时。我们希望每位面试官只根据他们谈话的优点来判断候选人,而不是根据他们之前面试官的意见。我们告诉面试官,不要向别人暗示他们是否倾向于推荐我们雇佣某人。他们把候选人交给下一轮面试官,并总结我们在上一环节中学到的东西。在面试日结束的时候,每个面试官同时提出他们的建议,并解释相应理由。
8、总结面试流程的优缺点
第八,在每次面试循环的最后,我们不仅要讨论我们在面试中所学到的东西,还要讨论在面试过程中哪些有用,哪些没用。我们再把这些反馈重新应用到面试流程中,流程会变得更好。
关于新的面试流程,我或许忘了一些,但上述 8 个方面是最重要的。
我们学到了什么?
嗯,我们担心候选人会紧张。面试日有两个面试官和候选人在一起,有真实的问题,还有真实的数据。几乎每个候选人都主动反馈说,新面试流程是独一无二的,真正帮助他们了解我们的业务和团队。即使是那些没有收到录用通知的求职者,也喜欢新的面试流程,明白我们为什么没有录用他们。
不断优化面试流程
我们发现还是有不少要改进的地方。例如,我们 PM 团队是非常有技术性的。许多 PM 将代码 check in 生产产品。这对我们来说是有意义的:我们面试流程的「客户」是开发者,因此拥有来自于创建软件的那种客户理解,是很有帮助的。但在这个过程中,我们并没有很好地深入了解应聘者的技术技能。因此,我们增加了一个面试环节,以进行更技术性的互动。
后勤
我们了解到,相对标准面试流程,新流程的一些相应准备工作真心不容易。举个例子,由于求职者正在处理同样的问题,并在白板上写下他们以后需要的东西,我们需要为求职者保留一个专门的空间(会议室或 Focus Room),面试官会去找求职者。
(补注:Focus Room 是一个消除压力的环境,可以帮助你在缓解压力的同时传递信息。)
面试过程的成本不菲
我们了解到面试是“昂贵的”。“每次两个面试官,我们的时间和人力投入翻了一番,大大增加了日程安排的复杂性。”然而,在最初对费用有些抱怨之后,团队中的每个人都开始看到了好处,就像团队中有更多的人见到了我们潜在的新员工。所以,我们愿意付出这些代价。
最终,招聘流程的目标是把优秀的人员带入团队或公司——确保他们是合适的,会成功,并为他们创造良好的经验,他们才会想要加入。我们和其他几家西雅图的大型科技公司都向一位求职者提供了竞争性的工作机会,她特别选择了我们的团队,因为她非常喜欢这个过程。她碰巧成为了我们在早期实验阶段的候选人之一,她还在这里上班,做的很好。其他很多候选人也类似。所以我说,我们的新面试流程表现的很好。我们仍在学习,但到目前为止,新面试流程的成果已超过我们的预期。