“Sink or swim。(自生自灭)”这是Sean对我说的。(Ooyala的首席技术官,前谷歌创始人之一)这并不是多么鼓舞人心的箴言,然而这句话在在我初探创业世界时,给我的新员工培训理念埋下了种子。没有什么能救你——只能靠信念苦苦挣扎,然后竭力生存下来。

从我在Ooyala(当时有30人左右的一个创业公司) 的第一天,我就挣扎于含有技术缺陷和增强文档的代码库,还是用一种我并不熟悉的有点像Java的语言ActionScript。我用两周的时间来实现一个已经承诺给视频出版商的功能——传输在线视频。为了赶上deadline,我需要学习ActionScript,熟悉Ruby on Rails,Flash视频和图形库,同时每天处理着像“QQQ”一样的让我脑袋大的变量名和不时出现问题的“load2”和“load3”函数。

我在那一个星期就这样硬着头皮工作70多个小时,完成了这个功能。“Sink or swim”的入职经历我铭记至今,那真是我压力最大和最变态的工作经历。在最开始的日子里,我不断地考虑自己离开舒适的谷歌而迈入创业的世界是否是个正确的选择;最终我还是适应了新环境,在其他团队成员的帮助和无数次的工程实践下,早期含义模糊的代码早已消失不见。在那个团队两年的工作时间里,我从这个专注的团队中学到了很多,但是毫无疑问,新员工入职本可以是个更流畅、更积极的体验。

后来到了2010年8月,我又加入了已经拥有了12个人的团队Quora,这次的新员工入职没那么艰难,除了Charlie Cheever留给了我几个前期bug,但由于没有付费客户,所以没有时间压力,只有自我要求。新员工培训其实就是我去问一些问题,或许再做一个或两个特别的讨论会。在Ooyala的入职经历和在创业公司的两年高强度工作,让我作好了充足的战斗准备,所以相比之下,在Quora的入职过程相当轻松。

我的亲身入职经历后来启发我在Quora构建新员工的培训计划,计划的详细内容可以参考我在2012年11月写的《Quora的工程师新员工培训是什么样的·》

在新员工培训上投入时间真的值得吗·

创业公司有很多事情要做,尤其是要在资金用尽之前,需要争分夺秒地打造一个产品来获取用户。所以第一个问题是,把宝贵的资源转移到新员工培训上,这真的值得吗?许多初创公司不做或推迟新员工培训,他们仅仅依靠新人自己去发现问题,解决问题。

对于这样的入职培训,会出现以下问题:

·淘汰了一些优秀的员工,实际上了他们只要多一些指导,就能为公司创造更多的价值并留下来。这对于那些在招聘下很大功夫的公司是个嘲讽,注重招人,却不重留人。

·不能很快的识别出低效率的员工,因为你没有足够的机会来评估他们的工作或者因为你觉得他们只是这一次没做好。

·降低员工的生产率,因为他们真正入职所需要的时间太长了。

·新员工的压力不断增加,幸福感不断下降,尤其是对那些没在创业公司工作过的人。

招的人越多,风险就越大。特别是当你招聘渠道偏向于缺乏经验的员工时,比如大学毕业生。

随着一个团队的发展,非正式的入职培训慢慢变得问题百出。对于同一个概念,不同的员工在不同的时间有着不同的解释,缺乏一个标准化的新员工培训流程。对于那些非系统的零散的解释,很容易遗漏许多重要的信息。工程师可能在这个过程中对一些关键问题不甚了解,这会让他无法完全理解核心代码的机理,降低工作效率。又或者,因为没有沟通清楚,新员工可能需要花太多的时间学习新事物,一个月后才能真正为公司创造价值。创业公司刚启动时,没有很多的东西需要去学习。但作为一个公司,一个产品和一个代码库,随着它迅速成长,内容和复杂度不断增加,在没有任何指导的时候,一个新人对新事物的学习变得越来越困难。

新员工培训是一个指引他们学习和明确公司价值观的难得机会。设计一个好的新员工培训计划可以增加新员工入职上手的效率。所以,建立一个高效的新员工培训计划可以说是一笔一劳永逸的投资。

如何设计一个新员工培训计划?

在Quora期间,我带领新工程师的培训项目并直接负责工作指导、组织和安排新员工培训谈判、编撰培训材料,并开展了导师培训班。在Quora的新员工培训计划开始后,在2011年的12月,此时Charlie 和我意识到我们可能要有10多个全职程序员和实习生即将入职。我们的团队当时只有不到30人,其中包含14个工程师,所以如果没有一个好的入职培训,事情很容易变得一团糟。

在第一次创建Quora的入职培训时,我明白我一定要让入职这件事变得比我当时经历的要简单、顺利。在确定培训材料、交流项目和导师制度之前,我首先为入职培训设定了一系列的目标。大家根据自己的经历分享了他们对入职培训的建议。我也联系了其他公司的工程师们(包括我在Ooyala的朋友们),了解他们之前是如何入职和开展工作的。

1. 尽可能快得让新员工成长

创业往往人手紧缺,而培训新员工还要再占一部分人力资源。这就要求入职培训的效率一定要高。长期来看,这既有利于公司的发展,也迎合新员工急于证明自己的心理。

一种快速提升新员工能力的方式是导师制。我们首先达成共识,强调入职培训的重要性,然后让老员工花费他25%的时间去带新人,尤其在前几周的时候。导师要做的事情有很多,包括新人最初的代码评审,挑选合适的项目,指出需要学习的技能 ,结对编程的技巧,工作次序的优先级,或者教他们如何高效地团队合作。

我在Quora时,辅导了很多人。入职第一天,我就会告诉他们,培训他们是我的第一要务。 这让我们彼此建立了共同的目标——尽可能快的帮助他们成为公司的一员。往后,他们会毫不犹豫地问我任何问题。

2. 让新员工接受公司的文化和价值观

每个创业公司的文化是不同的。虽然新员工可能已经从招聘面试和宣传材料中了解了一些。但入职培训本身就是一个让他们了解公司文化的机会。这些价值观可能渗透在工作的方方面面,比如完成业绩、数据处理、打造高质量的产品服务等。

以Quora为例, 公司文化的了解是一个很自然的过程。但实际上,我们给新员工的学习量太大了,尤其对于应届毕业生们。为了确保新程序员们能跟上公司的节奏,我们让新员工在第一天的时候只做一些简单的事情,比如搞定一个小bug,实现一个小的功能。极力简化入职的第一天就是为了让他们有足够的时间和精力适应新环境,只是设置好开发环境、修改一些代码、做一些运行测试。这也意味着导师需要做一些准备,找一些适合新员工的任务。我通常建议导师选择一个一天能完成的启动项目,这样即使项目未能按时完成,导致工作延期,也有机会在一周内弥补上。

3. 教给新员工最重要的东西

·在前两个或三个星期,我们会安排一系列新员工会谈,这些会谈介绍了代码库,解释git的数据模型,演示调试和分析工具,或是涉及各种话题。最重要的(如介绍代码库),我会亲自为每一位新员工安排,即使是只有一个人。

·写一个codelabs来解释公司的抽象数据和必备工具。Codelabs是我从谷歌借用来的概念。codelab是一个文档,它用来解释一些抽象问题的原因以及它的解决方法,遍历相关部分的代码库,然后提供了一组练习来验证的你对其的理解。这实质上是一套代码培训系统。我花了三天时间完成第一版,然后派其他人去完善那些每个程序员必备的代码知识。

这些投资主要涉及前期,是一件一劳永逸的事情。后续只要花费少许精力更新部分代码即可。

4. 让新员工融入公司的社交圈

刚入职时,你很有可能花费很多时间来和同事搞好关系。所以,帮助新员工快速融入团队很重要,尤其对于内向的人。

在Quora的早期,我们主要依靠导师帮助介绍新员工。后来,团队的一些成员开始组织小组午餐来为新员工提供更多机会去认识他人。分批次的集中培训新员工,也让他们之间互相熟悉,并对公司更有归属感。

以上提到的只是一些例子,为你设计入职培训提供参考。随着公司的成长,新员工培训的目标也可能改变。例如,在Facebook(当然,它现在不是创业公司了)新员工培训时,每个程序员会通过一个名为Bootcamp的训练营选择自己心仪的技术团队。之后只要通过一个与该团队工作相关的工作测试即可。但Bootcamp这个计划可不是Facebook一成立就有的。

重要的是意识到建立新员工培训计划是一个反复迭代的过程。也许开始的时候,你只教她如何设置开发环境,这样他就能在第一天改改代码了。也许你以后意识到并非所有培训计划都有用,培训过程中你可能一遍又一遍介绍同一个代码库或架构,那样还不如专门针对它开一节课。

无论你在哪家公司设计入职培训,都要想想自己的入职经历并多问问他人,勤加思索,建立一个高效的入职培训。想想新员工会遇到的困难以及解决办法;想想有什么概念、工具是你认为应该更早学到的。一旦你有了点子,那么去尝试最有价值的那个,再接受新员工和同事的反馈,看看它到底有没有用。

取其精华,去其糟粕,不断迭代,希望新入职的员工不会像我在Ooyala那么痛苦!

(下载iPhone或Android应用“经理人分享”,一个只为职业精英人群提供优质知识服务的分享平台。不做单纯的资讯推送,致力于成为你的私人智库。)

作者:Edmond Lau
来源:董老师在硅谷