引言
在阿里,每一位新员工进来之后都会有一位导师,导师一般都是团队中非常优秀的员工。有些部门可能不叫导师了,而是叫师兄,可能更亲切,但是我觉得导师更贴切。
导师指导新员工的过程,我觉得应该是一个PDCA的过程,即计划,执行,检查和总结。
第一。定计划
对于新员工一定要给帮主他们制定学习和工作计划,做到计划驱动学习,互联网开发要学的东西比较多,对于新员工生来说不知道该先学什么后学什么,学到什么程度。所以计划驱动比较重要,在工作和学习之前给新员工列一份详细的学习和工作计划,并询问下新员工这个计划有没有问题,能否完成。学习之前我会大概和他讲解下,让他有个概念。比如sofa是一个什么样的框架,它是用来解决什么样的问题的,它和你用过的框架有什么优缺点。
第二。执行任务
让新员工理论学习的周期一般比较短,主要是让他在实战中学习和成长,刚来几个星期就应该让他直接进入项目,从小需求开始做起,然后让他做一下需求的设计,导师要学会逐渐放权,不要总想着这个交给他做会不会有问题,他会不会做不出来。要给新员工压力,有压力才能快速成长。
第三。代码检查
导师也是在实战中进行辅导,主要是做代码审查和提问。
代码审查。对于新员工的代码,一开始需要花大量的时间帮做Core Review,逐行审查,审查出有问题的代码,和新员工讲清楚哪里有问题,应该如何修改,帮助其在实战中提高代码质量。做到让新员工每日check in代码,导师每日进行CodeReview。
用提问的方式提高思考能力。指导学生采用引导的方式比灌输的方式要更好些,学生遇到问题会提问,如果直接告诉他答案,他吸收的会非常少,所以一般我会采用提问的方式引导学生思考,比如这段代码还能进行优化吗?这两个SQL语句能不能合成一个?培养团队合作意识也会采用提问的方式,首先和他讲一个真实的案例,在XX公司里来了一位新员工,因为对系统不是很熟悉,文档又非常少,也没有导师帮他review代码,所以他修改代码的时候引发了一个严重的BUG,结果导致自己得加班到1点才解决这个问题。从这个案例中你有哪些体会?通过案例和提问让他意识到团队合作的重要性。
总结是非常重要的一个环节,能够帮助新员工有战略性成长。总结分成两个步骤,肯定和建议。
肯定。在公共场合肯定他做得好的地方,在团队的项目总结会中提出表扬和肯定,肯定下他最近工作中做的好的地方。比如很擅长提问,做事情非常积极。肯定的地方就是希望他能保持住。
- 建议提高沟通能力。有时候同事问问题给出的描述信息太少,我必须通过不停的反问才知道他到底是在问一个什么问题,于是和他讲,沟通的时候要站在听众的角度来提问,提问的时候尽量多描述问题的细节,一旦听众听明白了就会马上回答你,否则听众必须通过不停的思考和反问去知道问题到底是什么,反问越少提问效率越高。
- 不要问重复的问题。说过的事情必须用东西记住,这样可以节约双方的时间。比如告诉学生开发服务器root的密码,就必须马上记在印象笔记里。
- 先思考再提问。如果每个问题自己都不思考就问导师,这样的成长就不容易成长,要养成百思不得其解之后再询问同事的好习惯。
- 定期提问。有问题首先先自己思考下,如果解决不了就先记下来,然后选择一个固定的时间一起提问。如果想到一个问题就提问,自己会养成懒得思考的习惯,而且会不断打断我的工作,影响工作效率。
写在最后。对导师的建议
作为导师在培养学生的过程中自己也会有成长,需要用心,有耐心和责任心。
- 用心沟通。如果新员工有需要改进的地方,要在私下说他有待改进的地方,并解释的非常详细,这样既不会打消新员工的积极性,也能帮助新员工提高。
- 指导需要有耐心,实习生写出的代码肯定存在很多问题,也有可能同一个问题反复出现,出现次数多了肯定会生气,但发现后指导就可以了,相信他不是故意的,下次会改正。不能一味的去指责他怎么会写出这样的代码,谁没有经历过这样的时候呢。指责多了反而会打消实习生学习的积极性,不利于学生的成长。
- 责任心。出现问题是自己的责任,如果由于实习生的代码引起的线上的故障或BUG,不要责怪学生,而应该责怪自己,因为自己没有严格执行CodeReview。
- 教学相长。不要抵触当导师,教学是相长的,在带学生的过程中,学生的很多问题能引起自己的思考,让自己学的东西能更加扎实,在教的过程中,自己要理清思路,整理好后和实习生讲,讲的过程中有一种温故而知新的感受,能够提高自己的技术能力。
写于2015年11月13日晚@杭州
方腾飞