通常,自愿担任导师者一般是想做人事经理的,也就是对人员管理、对与人打交道感兴趣的人。现在Facebook硬性规定,所有可能升职为经理的候选人,必须至少做一期新兵训练营的导师。比如我就是在升职为经理之前,被我的老板推荐去做过两期的导师。另外,做导师一般要求是技术牛人,因为在训练营里,新员工每天都要完成大量具体的技术任务,需要导师在必要的时候在技术问题上加以指导。导师也要有能力在结束时准确判断新兵们的能力和所长。
截至我离开Facebook时,大概每两周会进来一批新工程师,那么每期新兵训练营是六周,每期有2~4个导师,每个导师要带5~9个人,大概每周需要花10~20小时的时间。所有的导师有一个负责人,就是博斯沃斯,他还有一个助手,负责所有的导师和新员工的分配,基本上是把背景类似的(比如校友、原同事、有相同的技术兴趣点等)分配给同一个导师,这样每个小组里成员之间更好沟通。
导师需要做什么?
新员工在训练营里60%~70%的时间要用在修改程序错误上,而遇到任何困难,都可以寻求导师的帮助,关键是方法、理念、文化的传递。
那么,导师具体要做些什么呢?新员工有任何问题,尤其是关于公司文化的,除了尝试自己解决以外,都可以寻求导师的帮助或指导;导师不会在任何时候给新员工脸色看,而是会全力支持他们的学习。
首先,导师每周和被指导的新员工做“一对一”的重点讨论,比如他最近的学习进展,表现如何,哪些方面做得好,哪些方面需要加强。公司要求导师对新员工给予最直接的反馈,以帮助他们迅速成长。另外一个交流的重点是对于公司内现有的哪些团队和项目感兴趣,因为新兵训练营的最终目的就是让他们顺利融入公司,找到合适的小组。什么才算是合适的小组呢?从新员工的角度来说,就是既能发挥他的长处,又是他感兴趣的;从公司的立场看,当然希望重点的项目能够得到合适的人力分配。如果能做到双方都满意的匹配,就是理想状态了。Facebook非常鼓励员工到他感兴趣但不熟悉的领域,这样可以给一个项目带来新鲜的视角。当然,这么做的前提是这些人是很聪明的、非常有学习能力的工程师。
其次,导师每周都要参加导师碰头会,参加者包括所有正在训练营的导师、博斯沃斯及其助手,会议就训练营中遇到的一些具体问题进行讨论,找出解决方案。大多数时间会花在一些表现特别出色或特别逊色的新兵身上,如果没有这两类人的话,会提早散会。对于表现特别出色的,导师要着重考虑哪些组最适合这些能力强悍的新兵。公司希望将最好的新兵用在最重要、最需要他们特长的岗位上。有好几次,在一期新兵营刚开始的时候,几个组的组长都发信要招同一个人,这样的“抢人”就需要在碰头会上商量如何进行引导和解决。对于表现特别逊色的,则会花时间讨论如何帮助他们改变以有所起色。因为,对于通过Facebook层层面试的人,公司相信他们还是有实力的。不经过多次努力,公司不会轻易得出他们不适合Facebook这一结论。
还有,导师会分配一些代码错误给新员工进行修补,这类任务通常会占到新员工60%~70%的时间。设想一下,作为一个新人,你的工作成果很快就被数以亿万计的用户使用,多么有成就感的事情!这样做可以给他们极大的自信。修改错误的过程中,新员工可以了解到相关项目的前因后果,需要跟相关程序的小组及工程师打交道,熟悉很多内部工具……这就又回到了新兵训练营的最终目的上——帮他们找到最合适的组。
如果新工程师在修改错误时遇到了困难,那他是先跟自己在训练营里的朋友互相商量,一群菜鸟找出答案来,还是直接寻求导师的帮助呢?当然,菜鸟互帮互助是最受鼓励的,解决问题的方式往往不止一种,而是有很多,每个人都可以构想自己的方法,自己什么尝试都没做就直接问别人则是非常忌讳的。如果实在不行、确实需要找导师时,导师往往也不会给出直接的答案,而是告诉新人们,可以去找代码错误涉及的原先的工程师聊聊,哪些人对这个部分更了解。正如中国的谚语,“授之于鱼,不如授之以渔”,希望新员工能够自己去思考这些遇到的问题,然后找出解决方法;当然,也不能在困难面前自己一个劲死磕,要学会适当寻求别人的帮助。一个简单的原则是:至少要在相关的代码里花了半小时而没有任何头绪,这时候才适合去寻找导师或者问相关的工程师。这样你在和导师或者相关工程师请教的时候,可以在解释完遇到的问题之后,再迅速描述你已经查看的代码和已经排除的一些假设;当别人知道你做过功课的时候,会更加愿意帮你。不懂就问,而不是自己先钻研的人,在Facebook不受欢迎。
训练营里很多时候碰到的情况是,解决一个问题其实有好几种方式,但新员工还不明白哪种方式是Facebook通用的,这个时候导师可以告诉他去代码库里看看其他类似的地方是怎么处理的,看以前的工程师是怎么做的,重复这种方式保持一致性一般没有问题。所以如何高效地做代码查看成了每个员工都要学会的技能。
如果涉及的是具体产品的技术性问题,Facebook不建议导师进行深入的帮助,因为这样就变成我来帮助你做一件非常具体的事情了,而关键的是教给新员工方法、理念、文化上的东西。
如何为新员工找到合适的工作职位
导师在跟几位需要招人的经理讨论之后,就会安排大致匹配的新员工与之见面,通常是经理在做“推销”;而新员工好比是在“面试”那些小组,最后由他决定自己想去哪个组。
为了让合适的组找到合适的人,新兵训练营负责日常运营的人(博斯沃斯的助手)会在每一期开始前一周把所有新兵的简历E-mail给有招人名额的经理。如果经理看到一个特别合适的,新兵营会配合这个经理去引起目标人选的兴趣,比如说会鼓励他参加该组的讨论会,多分配该组相关的代码错误修改任务等。但最后能不能成功,最大的决定来自于新兵本人。
另外,导师也会主动跟目前需要人手的那些组沟通,看自己负责指导的新员工更适合哪些项目。Facebook专门有一个页面,叫团队优先级页面(Team Priority Page),负责产品技术的各个组都可以把自身的用人需求放在上面,还有一个由博斯沃斯和工程总监们组成的委员会,每两周开一次会,讨论每个组的用人优先度。博斯沃斯的强势在这个会议上大有用处。根据这些情况,导师会跟相应的几个经理做一些探讨,比如挑几个最重要的组当中要招人的几个职位,看起来跟自己的所负责的新员工背景比较符合,进行一个大致的匹配,相当于导师帮新人做了一次初选。毕竟让一个新人在完全没有指导的情况下去了解每个组,效率太低,也不现实。导师再鼓励新员工去跟这些备选组的人去接触、沟通。