数据人才们可以处理不确定性。不管我们打交道的数据有多“大”,它含有有限个有偏的潜在样本。我们的模型在太简单以至于无实际意义和太复杂以至于无法置信这两种极端情况间平衡选择。为了能找到控制数据噪声的方法,我们不断尝试模拟、测试验证。一个杰出的数据人才能够对他的数据、方法以及结论保持适度的怀疑态度。
那么当有一天数据科学家面对出现的全新挑战:评估将成为他们团队中一员的面试者。这个样本空间下降的很快,实验方法看起来不会那么实用,面试中的偏差比我们实际工作中精心控制的数据偏差更呈现数量级的显著倍增。
许多数据人才的领导者借助于下面传统的招聘技巧(实际上他们本不该这样做):
在开始建立我的新团队时,我与许多数据科学人才沟通收集他们的想法和最佳实践经验。Riley Newman(Airbnb公司的数据科学领导,他设计并实施了招聘数据人才完全不同的方法,他也是我之前沟通过几次的这套系统的设计人)的想法对我的影响很大。我也从Florida项目中从Drew Conway身上学到了很多,他持续不断的改进他的数据人才招聘流程,在他著名的数据科学维恩图上正中目标。
在这篇文章里,我将阐释我所采用的Riley开发的新流程目标,描述它的潜在原则,体验我们开展的实验。当然,这个向导离开发掘改善的机会同时更好的改进流程将是不完整的。
如何开始一场招聘改革?
在开展我们的招聘流程时,我们设定了以下测量目标:
准确:使新聘员工成为优秀员工的机会最大化
损失:使有好的应聘者过早离开招聘流程的机会最小化
成功:使聘任意向书被接受的机会最大化
努力:减少招聘团队注意力长期分散机会。
任何有经验的招聘经理乍一看,都会觉得同时提高这四项目标不现实。前三项目标在实际上是相互矛盾(例如:应聘者越优秀,让他们接受聘任意向书的困难越大)。除此之外,提高全部目标看起来会给团队施加更大的前行压力。
在传统的招聘流程中,如果他们的准确性高于50%,多数招聘经理会感到幸运。也就是说,他们所聘任的员工最终被证明优秀的机会将不超过一半。损失则很难测量(毕竟流程中失败的应聘者将不会为你工作),同时多数招聘经理担心他们会时常失去优秀人才,原因是冗长并困难重重的招聘流程。
在招聘数据人才这种竞争激烈的领域,强有力的应聘者经常会接到3个甚至更多offer,因此成功率通常低于50%。
通过设计更智能的招聘流程——提高识别优秀应聘者的机会同时降低失去他们的风险——可以同时提高前三项目标。同时,增加早期投资,团队当下的努力和精力分散状况将会得以改善。
为了保障达成我们的目标,我们设置了一系列核心原则能够用以招聘中任何模块。促使每个人聚焦并使其流程化的原则能够显著的改善整个流程。这也在你不断重复这个流程时也成为一个健康的生态基础:
1、确保你的招聘流程持续完善。
招聘经常被认为是一个你所偶尔参与的任务或者一场周期性强消耗的闪电战。相反,将你招聘流程构架为一台经常运转的发动机,伴随人才通过招聘漏斗不断进入明确的下一步。这保证你不断招聘,无论优秀的人才何时进入市场,你将都有机会参与。
投资一个常规运转的流程将要求你将招聘作为铁律。这将保持协议与结果的一致性,使你能收集你成功和失败数据,促使你能够像管理你的数据管道一样用心的管理人才管道。
2.无情的事实:标准化的面试问题是致命的缺陷
询问应聘者他们之前的经验,你会发现他们是否能够陈述另一项工作发生了什么。问他们技术性问题,你会发现他们重新组织知识的能力。让他们在白板上解决“玩具”一样的问题,你会发现他们能怎样快捷的解决玩具问题。一个能够顺利通过所有障碍的应聘者或许在实践中是完全无用的数据人才。
为了重视这些缺陷,你必须首先对你想要应聘者在实际数据工作做什么有一个非常清晰的理解。最高的要求是,你应该清楚你的团队应该最终呈现什么样的最终产品。是否它是供决策制定者可视觉呈现和可分析的?设计或者原型是否给予开发者?或者实施者能够在生产环境中被测量并给与支持?
接下来,你应该对你想让成功的应聘者做什么有一个清晰的理解。确定给一个数据人才5个解决问题的机会。对于每一个问题,保证你有(或者应该有理由能收集到)所需的数据,能够呈现有效的结果(即使你不能亲自设计它)。这些机会与你公司的近期目标,你的组织或产品如何可靠运转,数据的现有或有理由产生的限制相关。
知道你的团队如何完成数据项目以及你最想让应聘者能够处理什么问题的挑战,你能设计一个近似反映你的工作条件的招聘流程。这意味着你应该把应聘者放进一个近似代表你们天天面对的环境。如果他们能够成功的在面试过程中适应环境,那么他们长期成功的机会将大大增强。
3、有潜力成为最优表现者的应聘者可能会在传统面试流程中失利
元凶是面试官的偏见。一旦你进入应聘者的面试房间,你就开始形成对他们能力的判定(很可能是无意识产生的)。有很多种这样的偏见(这里可查询100多种认知偏见),但最常见的偏见是偏好那些与我们自己相似的人。
优秀的数据人才必须具备强大的数理及编程能力。这一点不折不扣。因此我们首先设计流程来测试这方面,接下来轮到问题解决和沟通能力等更主观的能力(仍可被测量)。
越到最后阶段,主观原则越多,评估最耗时,也最容易产生评估偏差。使优秀的应聘者能够在招聘流程漏斗的后部继续将要平衡减少团队工作量的益处和降低过早损失一个优秀应聘者的风险。
大多数面试流程在向高水准应聘者的应用中是失败的。面试最好的情况是充满压力,而最差时单调苦闷。应聘者经常被迫向4个或更多面试官重复他们的故事并不断回答他们的问题。之后当他们可以问几个自己的问题时,他们会经常尽量设想自己在公司工作的样子。接下来他们会为少有真诚的面试结果而等待很长时间。你将如何处理这种支离破碎的状态。
创造一个你能给予应聘者数据以及能够反映他们将在你的组织中面对实际挑战的问题的流程。在此之上,确保你的招聘流程与你团队的实际动态和文化相符,以使应聘者能够获得很多与实际工作相同的体验。每一位应聘者应该带着加入你的团队可获取的信任感完成整个面试流程。
不管如何招聘,每一位招聘经理都不得不面对艰难的抉择。建立对招聘漏斗每一阶段应聘者的清晰的评估框架,并依据此自信决策。这包括定义团队所共识的目标和测量。
同时,与团队一起开放的决策。这保证招聘经理能够从参与招聘流程的每一个人那得到对于应聘者的直接反馈。更重要的是,这确保你们在寻求同一质量标准。开放的讨论帮助你不断改进招聘要求和策略。
最后,在评估应聘者时引入跨领域的招聘伙伴。数据科学领域从不是真空中工作。你将与决策者、工程师、产品经理合作。引入这些领域的关键招聘伙伴能够使你所挑选的人才能够跨越组织各部门。
优秀数据人才的招聘市场竞争激烈,因此你的流程应该确保你能够快速在招聘漏斗中前行,保持高动能,降低他们接受竞争者offer的机会。快速的招聘需要有流线型的流程设计以确保速度与置信。投资能够追踪应聘者在招聘漏斗中每一阶段多长时间的工具和后勤设施并快速到位的优化你的招聘系统将会为你赢得竞争优势。
在电影《模仿游戏》中,Alan Turing的管理技能使英国对德国编码设备的反情报破解工作几近破产。当他意识到他需要帮助时,他已经在Bletchley公园孤立无援。无论如何,千钧一发时这个知名计算机科学家的优秀品质帮助他尝试另辟蹊径招募新的团队成员。
为了打造他的团队,Turing通过发布在《伦敦每日电讯报》一个猜字游戏来寻找新的人才,邀请那些12分钟之内完成该游戏的应聘者申请神秘职位。成功的应聘者被召集在一个房间里在可控的环境下限定时间内挑战他们的数学和问题解决能力。Turing最终给大约30个应聘者其中表现最好的2人发放了offer。
从这个案例中可以学习到很多东西。
这样的流程确保Turing最大可能的向现有人才广撒大网,用挑战性问题和工作机会吸引他们,然后在可控的环境下验证他们的技能。 影片中的一个虚构环节,Turing招募了一个叫Joan Clarke的女应聘者,她成为了非常紧密的一名合作者。Joan是一个难得的天才,但是如果不是Turing采取了科学的招聘方法,而是存在一定的偏见,Joan几乎可以确定从密码破解团队的角色中被忽略掉。
就像电影《模仿游戏》,我们将应聘者放进一系列可以模拟他们工作环境以及容易评价他们在聘任后能否胜任工作所具备的问题解决能力的体验环节。令人惊讶的是,通过正确的规划和前期投入,这种方法比传统的面试更加有效率,节省你的团队时间。面试流程在高的水准要求下包含两个关键要素:
开放答卷:一种测试应聘者解决一系列逐渐增加难度问题的简短练习
数据工作日:需要在团队中针对一个或更多开发性问题工作一整天时间,用一个他们整体的工作报告向面试团队做总结。
我们将这个流程作为招聘流程漏斗。在500个进入的申请者中,250人(50%)提交了开放答卷,25人(10%)通过了测试,20人(80%)参与了数据工作日,4个人(20%)将会通过测试,
最终3个人(75%)接受了offer 。这意味着每发现一名优秀的雇员,我们需要超过150名申请者。
提升的关键几个环境是(A)漏斗中申请者的质量,(B)申请开放答卷和数据工作日的成功率,(C)开放答卷和数据工作日的准确率。通过跟踪你在漏斗中应聘者以及检测每个阶段的损失率(如:他们从哪里来),你能确定成绩较好和较差的测试环节。
给定我们四个直接目标——准确率(聘任优秀的人才)和成功率(确保他们接受offer)最大化,同时降低损失(应聘者过早放弃)和团队时间精力损耗(团队的长期时间精力损耗)——我们投入大量的时间来设计一个数据驱动并且有吸引力的清晰高效的流程。
这个流程包含如下6个阶段,从简单客观逐渐过渡到复杂主观:
前期核查:诊断脉搏
开放答卷:测试各项技能
销售宣传:确保他们能参加数据工作日
数据工作日:在现实、可控的环境中测试能力并评估文化
决策:进行快速决定性决策
沟通:跟进每一个数据工作日应聘者
让我们看看每个阶段更深入更策略的分析。
前期检查
值得说明的是,我们不用提前筛查数据应聘者。我们不必核查他们的简历或者探讨他们的经验或认证。如果他们有兴趣(并且有email地址),我们给他们开放答卷测试。这是我们版本的《模仿游戏》字谜,这节省了大量的时间和精力去更快速服务更有希望的应聘者。
但是不进行核查的最重要的原因是它将会移除大量初始的偏见来源。很多非常有才智的应聘者没有招聘者所期待的教育和经验信息。这不仅仅意味着你将失去优秀的应聘者,同时也让你更加激进的去寻找少数文案测试表现好的应聘者名单——每一个其他应聘者都想成为名单中的人。
开放答卷
开放答卷是极其重要的。这是过滤应聘者的第一道保障线,因大量的潜在申请从而需要你的团队大量工作。这也是应聘者第一次能了解你的团队工作的机会。这个阶段不仅是一道阻拦在不合适的应聘者上浪费过多时间的屏障,同时也是向匹配角色的应聘者极其重要的宣传窗口。因此,当你通过招聘漏斗收集了应聘者成绩和兴趣数据时,你应该不断的优化该流程步骤。
有效的开放答卷应该具备如下的特征:
可自我解释——你想减少应聘者有问题询问或者需要说明的机会
时间限制——对于有技能的应聘者完成应该花费不超过2个小时
分散脱敏——分布应该宽泛,不包括任何财产性或敏感性数据
相关性——与你实际工作中面临的挑战问题匹配
直接——清晰准确的表明你想通过测试考察的答案,你想怎样评估应聘者的业绩
循序渐进——逐步提升所问问题的难度,以便于简单的辨认应聘者的实际技能水平。
设计开放答卷测试,首先从你数据团队中现存的重要问题开始着手。在这些问题中,你可以从(A)拥有或者可以编纂出好的数据,(B)对于应聘者乐于解决,(C)能够被简化(大概粗略)成2个小时内被优秀的应聘者解答的问题,中挑出一个或者两个。
当你收窄了问题的范围后,编纂开放答卷中问题答案数据。理想情况下,这些数据来源于你的生产环境并足够清晰,进行过修改或者加工汇总的,以至于当它落入任何人手中也不造成公司损失(假设数据最终将会这样)。
替代方法是你能构造完全的虚假数据,但是要谨慎对待一些因数据不连续或者异常点引发的很多数据处理难题。我建议提供一百万行数据(可能涉及多个文档)——足以对代码成效引起关注也不至于成为负担。
一旦你配备了数据,创造2-3个非常清晰的,由易到难依次排列,并且具有确定性可测量答案的问题。确保你的问题不仅能测试应聘者的数据处理能力,同时也能测试他们的逻辑分析能力和模型解释能力。
给出了配备的数据、选择的问题和撰写的指导文档。应该有一份简短易懂的文档来描述所提供的数据并包含最终的问题;同时你应该指出应聘者应该用多长时间,不是强加给他们时间限制,而是暗示你评估需用多长时间,以便他们不会花费几天时间在一个本应该花费几个小时时间的问题上。
更重要的是,包括一个如何期待应聘者回答问题的部分。你希望他们使用什么工具?你希望他们提交什么样的答案结果?代码的质量方面你有何期待?可视化或者解释是否对你重要?认真对待这些问题。这是你推荐你和你的组织的关键机会。
接下来,让你其他的团队成员或者社区朋友们测试开放答卷。通过这些让你的答卷标准化,确保对你的判断答案有反馈。你所要做的最后事情是避免给应聘者问题混淆。
销售宣传
当应聘者通过开放答卷测试,你的下一个挑战是确认他们能参加你的“数据工作日”面试。多数人会以为在你的办公室的进行不超过4个小时的传统面试——当然不会是一整天。让他们相信值得花费一整天在你这里是必要的。
销售宣传的关键部分是你如何与应聘者联系,你如何表述你将呈现的令人兴奋的机会,你如何描述并准备“数据工作日”。这些应该指向建立他们的兴趣和热情——这不是你评价他们的时候。
每一个应聘者会被不同的因素所激发兴趣,因此对于你来讲认真倾听并与他们直接谈论他们在意的话题变得尤为关键。根据我的经验,我发现如下的关键因素:
产品与公司的总体潜力
数据工作是如何开展的?哪里报告的?对日后有什么影响?
不久的未来数据工作的主要挑战或机会是什么?
数据工作如何跨部门与其他团队配合?
所需数据的未来的范围、大小与质量,未来可收集的机会
团队如何管理他们的工作并协调不同优先事项与决定。
团队要用到什么特定的工具与技术。
最终你会发现那些不愿或不能参加“数据工作日”的应聘者。或者这意味着你将失去一些应聘者,但也不得不承担这个风险。“数据工作日”会成为你评估所有应聘者的良好标准。
“数据工作日”
“数据工作日”是整个招聘流程的核心部分。它把对应聘者最终的技术、策略和技能评估以及对他/她在工作日中对于团队和公司的文化体验的适应性汇集在一起。有了充足的准备,完成这些并不比你的团队开展传统面试多需多少时间。
这些准备清单包括:
介绍:言简意赅的描述工作日挑战任务、数据和评估原则、应聘者成功所需指导的其他事项等介绍文档。
数据:丰富的被抓取的生产数据可以挑战并激发你的应聘者。优秀的数据人员应该能不知疲倦的在数据中工作长达一周时间。
笔记本电脑:崭新性能良好的笔记本电脑将会和他们未来实际工作使用和处理数据所需的预备工具相同。
筹备是成功的数据工作日的关键。确保应聘者有激发他们更有产能的环境,可以最大限度地提高他们达成出色工作的时间。
准备介绍:
当应聘者来到他们的“数据工作日”现场,你该做的第一件事是给他们提供一份打印的系列指南。其中的部分包括(尽可能的详细):
简介——一封欢迎信和对“数据工作日”的日程及任务介绍
免责声明(或许是保密协议)——向你的法务部门咨询是否需要免责声明
目标——工作任务的总体精要概况和你所期望成功的“数据工作日”应得到的成果
建议的时限——你预期应聘者需要多长的时间。让他们了解自己最大的挑战是时间的限制。
数据——你所提供的数据的一个宽泛的描述,足以给下面章节的一些背景信息。
主题——4个或5个精简的主体列表。
评价——你想从成功的应聘者中得到什么
技术安装——笔记本电脑提供的简要的工具解释。
数据信息——
所提供数据的更全面详尽的描述。每一个文档,作为一个整体的内容描述,每一个包含的领域,和数据集的大小(行或观测值的数量)。
最重要的事情是选择研究主题。主题应该尽量差异化以便不同背景的应聘者能够找到他们自己感兴趣同时也是可进行的主题。同时,确保这些主题聚焦在对于你工作有价值的实际应用上。这样既可以确保你所需要测试的技能,同时也能给应聘者关于你们团队工作更加真实的感触。
最后,研究主题应该只是作为建议。我更愿意给与应聘者自由发挥的空间。最重要的是在结束时他们能够对自己所做的有意义的分析和记录感到自信。
记住,如果你的说明清晰切中要点的话,应聘者将花费更少的时间回答问题。
笔记本电脑
向应聘者提供一台在可查询的路径下预装了说明、数据和软件的笔记本电脑。我们使用苹果的MacBook Pro(所有的数据科学家和工程师使用Mac或者Linux工作),我们安装了如下软件:
HomeBrew
Anaconda(Python distribution)
R
RStudio
EmacsandVim
Java 7
Eclipse
在HomeBrew的帮助下,数据人员能很快安装其他需要的软件。同时,我们把.CSV的数据文档放进他们的根目录下。我们建议应聘者使用开源的编辑语言(如Python,R或者Julia)提交他们的开放问卷以便每个人都习惯使用它。
时间表:
在公司一个典型的数据工作日是这样的:
上午10:00—签到
应聘者签到,受到我们招聘团队的欢迎,并参观指定地点
上午10:05—搭档
应聘者的搭档(指定的数据科学团队成员)带应聘者喝咖啡并带他/她参观办公室。
上午10:15—培训
数据工作日拍档给候选用笔记本和简要说明向应聘者在哪里可以找到数据
上午10:20—指导
应聘者坐下来阅读行动指南检查数据,并决定选择一个研究方向
上午11:30—筹备会
应聘者认真听取团队筹备会,了解他或她的工作内容,并陈述他或她的研究方向是什么。
上午12:30—午饭
一些拍档带着应聘者去吃饭,过程中了解更多关于他/她的背景和性格,并让应聘者问一些问题。
如果需要问问题:
应聘者可能会问团队中任何成员数据、技术或背景相关的问题,但往往从他们的拍档开始(如果可行的话)。
下午4:30—提醒
我们提醒应聘者,他/她将在5:30提交结果,并鼓励他们开始准备他们的演示。
下午5:30—结果呈现
应聘者用20分钟呈现他/她一天中所发现的内容,然后是10分钟的团队及其他与会者的问答环节。
下午6:00—反馈
我们要求应聘者给我们对他/她的体验反馈,然后搭档或招聘人员引导应聘者暂时离开并约定期望沟通最终结果的时间。
下午6:15—决策
总体而言,从招聘团队给出的时限是很合理的。拍档在早上花15分钟时间,也许下午再花15分钟回答应聘者问题。筹备会和午餐会不可精简。演讲和问答一组五人需30分钟,然后通常再需要15分钟做决策。总的来说,团队花费超过4人小时和应聘者在一起,不会比花在传统面试上的实际多。
到目前为止,从文化匹配视角看当天最深刻的部分应该是午餐时间,你可以看到应聘者在一个非正式的社会场合的行为表现。从技术角度来看,这一天最深刻的部分是成果呈现后的问答环节,我们为了验证应聘者方法的严谨性并确定他们如何应对我们的团队中很常见的激烈的技术或分析辩论,会想尽办法去提出探索性和挑战性问题。
4. 决策
我们基于如下的维度评估应聘者。
a.问题分析结构
如何进行问题的解构分析,有什么假设条件,如何限定研究范围?
b.技术严谨性
你所代码编写的代码在完成任务方面可靠性、可读性和灵活性如何?方法的可扩展性如何?
c. 分析的严谨性
你所运用的方法(机器学习,统计,分析,可视化)的逻辑是否通顺完整有意义?
d. 可沟通
你将如何清除的表述你的工作,方法和结论?你问他的答案有效性怎样?
e. 有用性
如果生产过程有意义,这些结果在你的工作中是否有用?
我们在数据工作日包括了这些指导原则,应聘者知道后就更容易成功。
在应聘者完成他们的演讲和问答后,他们的拍档出现在办公室。然后我们立即开始讨论应聘者,尽管大家的印象都是陌生的。我们给每位参与者一个机会来分享对上述标准的反馈(如果他们有意见),从我们团队以外的人先开始。我们团队成员中经验最少的人先说,最有经验后说。这会有助于事先防止房间里其他人的意见受团队或领导人的偏见影响。
一般来说,如果任何面试官对应聘者是一种强烈的“拒绝”态度时,这是足够的理由来拒绝应聘者。
因为技术原因(开放答卷应使大多数考生完全符合产出要求)这种情况很少发生。但当它发生时,你应该认真地重新评估你的测试以确保它的有效筛选应聘者。
如果每个人都对应聘者不冷不热,这也是一个明显的“拒绝”。这通常是因为局限于他们的工作限制——他们工作完成情况,他们思维的严谨性,或他们的技术实施情况。如果僵局存在,那么要么团队的领导者应该做出最后的决定(判定是否是错误的拒绝),或者在更少数情况下,你可能需要邀请应聘者回去进一步讨论。
5. 沟通
这个流程的最后阶段是向应聘者沟通结果。那些开放答卷测试中失利的人从会我们的招聘者那里获知信息。我们都希望给每位申请者直接的反馈,但鉴于申请者的数量规模不甚可行。
可以说,数据团队的成员被参加数据工作日后没有收到offer的每一位应聘者跟随着。这确保这些应聘者收到建设性的反馈从而可以从经验中学习更多。
最终,我们因每天大量的数据工作日应聘者而感到兴奋,同时也要尊重他们的时间并保持联系的情况下以期我们会再见。数据科学领域是一个小社群。
挑战与未来的机遇
招聘优秀的数据科学家是很难的事情,而我相信,这个流程公司的招聘中已经产生了非常积极的影响,我也相信我们有更多需要学习的地方。这就是我们继续拼搏的意义。
我们的招聘流程中可能会产生太多的错误,即非常适合数据科学工作的应聘者没有收到offer。最大的错误来源可能发生在开放答卷阶段,考生可能不愿意花时间来完成测试。对优秀人才来讲使测试更容易完成并提高我们在社区组织的品牌都是我们可以采取的步骤。最终,这是一个通道的优化问题,问题的根源是它会降低你能招聘到最优秀的人才的能力。
淘汰那些在数据工作日积极拼搏的优秀应聘者远不是我们的初衷,这些应聘者投资了我们,而我们已经投资了他们。发生这种情况有几个原因,但最常见的是数据工作日是一个高压力的环境。应聘者必须在短短的8个小时内了解一个新的数据集,谋划解题框架,制定解决方案和进行结果呈现。
有些应聘者在这种压力下脱颖而出,而另一些被迫屈从,并不能向我们证明他们通常能够做到的。不幸的是,我们无法在我们的决策中考虑这一点,因为这无法将其与无能或低效区分开来,两者都是我们积极反对的。
应聘者在数据工作日不能胜出的另一个原因是他们不熟悉工具。他们可能对专有的或商业的工具或者另一个操作系统有更多的经验。这可以通过提供更多的商业软件许可证和在虚拟机上提供Windows使用来缓解问题。这些选项会花销大量现金和运营成本。同时,对Linux操作环境和开源工具是我们强烈认为必须的。
最后不要再担心招聘优秀的科学人才了。