在 Stripe,我们经常考虑规模问题。随着我们的产品规模不断扩大,每年为数百万企业处理数十亿美元的业务,我们也需要扩大工程团队的规模。对于快速增长的公司来说,尽快组建工程团队是一种诱惑。然而,快速发展也会带来风险,包括造成各自为政、随着时间的推移工程师对用户的影响越来越小,以及限制了快速改变工作方式以应对不断变化的用户需求的能力。
我们有意选择以低于用户群增长速度的速度增加工程师,而是采取迭代的方式来招聘和开发我们的团队。我们能够保持较小的团队规模,在每个人身上投入更多,并根据需求变化灵活改变工作方式。由于对五十名工程师有效的方法不一定对十名或一千名工程师有效,因此我们建立了一种反馈和迭代思维文化,使我们能够在发展过程中不断做出改变。
本指南将介绍我们一路走来的一些心得体会。
招聘与雇用
不断改进您的流程
每家公司的招聘流程与用人需求都具有独特性。我刚加入 Stripe 时,全公司只有 1 名专职技术招聘人员,却要对接数十份员工推荐和新求职者申请。从那以后,我们几乎对招聘流程的每个环节都进行了优化、新增或替换,而工程团队的规模也几乎扩大到了原来的 4 倍。我发现,我们的招聘流程通常能稳定运行 6 到 9 个月,之后就需要进行更新。若想安全地尝试并逐步优化招聘流程,你需要做到以下几点:
- 确定满足组织需求的招聘方案。
- 在招聘流程中建立一致性,以确保效率和公平性。
- 永远不要忽视求职者的体验:无论结果如何,您都应该给公司和团队留下积极的印象。
- 定期重新审视您的招聘流程,以衡量进展情况并根据需要做出调整。
建立统一的招聘平台
连贯一致的招聘可提高效率、防止偏见并提高招聘标准。明确界定您用来识别、评估和聘用求职者的流程非常重要;您引入的一致性越强,您就越能依靠可预测的结果,利用数据来了解哪些工作做得好,并改变那些做得不好的地方。我们与招聘团队一起定期为新招聘经理举办培训课程。清晰的文档不仅能帮助培训新经理、分享最佳实践,甚至能覆盖“何时给求职者发邮件”“录用通知如何发送”这类细节。每位招聘经理、招聘人员和面试官都清楚自己在面试流程中的职责。
培训课程对所有经验层级的人都有价值;即便是在其他公司主导过招聘工作的新任经理,也会反馈了解 Stripe 具体的招聘方法非常有用。开展这类培训,既是为了保证招聘流程的一致性,也是为了让团队成员能更自信、高效地开展工作。
记录您的招聘实践,以确保您的团队使用统一的流程。
我们面试流程的设计借鉴了行业研究和我们自己的最佳实践。我们的问题旨在了解人们如何应对现实世界中的问题,而不是测试您可能在白板上展示的深奥技能。在Bug Squash工程面试中,求职者和面试官并肩坐在一起,用求职者选择的编程语言解决开源项目中的一个真实历史错误。对于工程经理,我们使用团队角色扮演来模拟在与队友一对一谈话时解决问题的过程。
我们使用书面评分标准将问题标准化,这些评分标准明确规定了如何进行每次面试、如何对这些问题进行统一评价以及如何比较求职者的得分。一个好的评分标准可以概括面试的目标,并提供评估求职者表现的明确标准。面试前,每位面试官都要阅读评分标准,了解他们将评估哪些技能。对于每项技能,我们都会举例说明不同熟练程度的求职者可能做出的反应。我们还将评分标准直接集成到我们的申请者跟踪系统中,这样面试官在提供反馈时就可以统一参考评分标准。
以下是我们用来评估求职者沟通效率的评分标准示例:
沟通技巧
- 他们回答问题清楚吗?
- 他们是否提供了有关其工作的具体细节,尤其是在被提示时,而不是泛泛而谈或仅仅描述团队/公司的工作?
- 他们是否能够处理对话过程中的提示和反馈?
面试评分
- 求职者的沟通散漫、不稳定或不清晰。求职者即使被问及,也不提供细节或具体情况,或只谈论个人工作和贡献以外的事情。求职者可能无法与面试官进行有效的双向交流,例如,对改变话题的请求置之不理。
- 求职者的沟通并非始终清晰。当被问及细节时,他们只提供了部分而非全部的细节,或者他们提供的细节并不能支持他们更高层次的观点,或者大部分细节都是关于他们自己工作以外的内容。在双向交流中,求职者可能是一个不稳定的伙伴,例如,在回答某些问题时长时间地喋喋不休。
- 求职者的表达始终清晰明了,观点高屋建瓴,并能用具体事例和细节加以证明。他们能有效地与面试官进行双向交流。
- 求职者的陈述极为清晰,并提供了具体细节以支持其一般主张。求职者能表达其个人发展轨迹和影响,以及与所参与项目/团队/公司的关系。求职者能流畅地应对面试官的谈话和提示。
除了建立清晰的评分标准,我们还开始无意识偏见培训,以保持一致性和客观性。我们还将标准化问题纳入了新的求职者评审流程,用于在面试结束后向面试官和招聘经理提供反馈。
“求职者评审”是由一组经验丰富的评审员定期举行的会议,用于评审所有面试结果。在每次会议上,评审员都会仔细阅读面试结果,向个别面试官提供反馈,并找出我们可以改进整个流程的方法。评审员不会对决定进行事后猜测,但会确保每个人都留下足够详细的反馈,并仅根据我们看到的信息做出决定。
“求职者评审”最初规模很小,我本人在六个月里参加了每一次会议,一方面协助培训新评审员、阅读反馈,另一方面也通过第一手观察积累经验。短短时间内就能看到我们带来的改变,这种感觉非常棒。工程师们很认可有人会逐字阅读他们的记录,而我们也很快发现,无论是反馈的详细程度还是对评分标准的遵循度,其质量和一致性都有了明显提升。更关键的是,这还帮助我们对面试本身做出了多项优化。
确定明确的招聘目标和有效的流程
明确的目标使您能够衡量成功与否,并在必要时对流程做出正确的调整。如果您主要依赖被动的内部申请者和推荐者渠道,最终可能会招到“刚好上门的人”,而非“当下真正需要的人”。
Stripe 推出后的数年里,我们主要聘用能够在整个堆栈中高效工作的通用工程师。随着我们要解决的问题越来越专业化,比如扩展我们的安全凭证存储基础设施和构建国际移动支付流程,我们不得不改变方法来吸引我们当时需要的专家。作为前端专家的招聘经理,我经常遇到这样的求职者:“Stripe 不需要前端工程师,您们是一家 API 公司。”
在一次面试中,我向求职者解释了我们如何解决 API 开发以外的问题,但很明显,我很快就让求职者丧失了兴趣;很明显,他们无法想象如果加入我们,会从事什么工作。我跑去拿我的笔记本电脑,花了 30 分钟向他们展示我们的网络和移动管理平台的真实演示。我的推销奏效了:他们立即开始提问并提出产品建议。不久之后,他们面试并加入了公司。这次经历启发我们为前端工程师设计一种无需即兴发挥的全新应聘体验。如今,我们在整个 Stripe 有许多前端工程师——有些直接嵌入产品团队,有些则构建共享组件和基础架构,让每个人都能快速轻松地编写更好的前端代码。当您扩展到不同的产品领域时,重要的是将您最初为通用型人才建立的结构,调整为更专业的角色。
我们最初从少数岗位(基础设施、前端工程)入手,了解如何逐步调整我们的招聘业务。如今我们已覆盖多条不同的招聘线,从 Android 开发、机器学习到安全均有涉及。这些调整稳步提升了我们的录用接受率,且每条招聘线现在都配备了专属专员。招聘流程的每个环节都会受到各类细节的影响,具体包括:
- 公开发布不同的职位说明
- 决定为哪些职位配备哪些招聘人员
- 为每个职位创建专门的面试问题、评分标准和求职者准备指南
当我们推出用于支付流程的 UI 工具包 Elements 时,Elements 团队从安全、前端工程和用户体验专家的集体经验中获益匪浅,解决了一系列难题:使用 iframe 安全隔离银行卡信息、解决浏览器特有的错误、增加国际化功能、采用现代 JavaScript API 设计以及优化转换流程。
创造良好的应聘体验
面试过程是每位求职者对公司和工程团队运作方式的第一印象。无论面试表现如何,我们都会努力为每个人提供良好的面试体验。我们开发了一些最佳实践,在流程的每个步骤中提供一致的接触点,帮助人们做好准备,设定适当的期望值,让每个来到现场的人,无论是虚拟的还是亲自到场的,都有同样的机会成功面试并展示自己的最佳工作。
为了更好地了解我们的招聘漏斗,我们最近对旧金山湾区的几个招聘团队进行了一项内部调研。根据调研得出的基准数据,这些团队从现场面试到接受录用的接受率在 12-20% 之间。大多数公司都专注于达到这些数字,然后再加以优化。但很容易被忽视的是:每成功招聘 1 人,就会有 4-7 人选择入职其他公司,而他们会带着面试体验离开——这意味着,即便您之后不再与这些人接触,外界也已存在一支“隐形队伍”,在潜移默化中代表着您的公司及其价值观。您未来很可能会从求职者的社交与职业人脉中招聘人才;若能给求职者留下良好印象,即便最终未录用他们,这些人也可能为您推荐优秀的潜在求职者。
面试过程可能是他人唯一一次与贵公司互动的机会,因此要为每位求职者创造良好的体验。
面试前,我们会分享书面指南,帮助他们了解 Stripe 的企业文化并为面试做好准备。工程师可以选择多种不同的编程语言,并可以使用自己的笔记本电脑和开发环境。面试结束后,我们会向求职者发送后续匿名调查,以了解他们的经历,并找出我们可以改进的地方。
我们使用 Culture Amp 调查工具,与面试求职者形成反馈闭环。
我们会在面试后与每一位求职者交谈,即使是最终没有在 Stripe 工作的求职者也不例外。对于那些没有接受我们录用通知的求职者,我们会安排一次电话沟通,以了解他们的选择以及他们对这个职位的感受。如果我们没有发出录用通知,招聘人员会向求职者提供个性化的反馈,帮助他们吸取经验教训。
我们的调查全面显示,求职者在 Stripe 的面试体验很好:在上述问题上,没有获得录用的求职者对他们体验的平均评分为 4.1 分(满分 5 分)(获得录用的求职者的平均评分为 4.5 分)。更令人吃惊的是,没有加入 Stripe 的求职者后来往往会向他们的朋友和同事推荐我们。
小窍门与练习
- 为最常见的面试问题编写评分标准,并将其集成到您的申请跟踪系统中。
- 编写面试准备指南,并与新来的求职者分享。
- 设置快速调查,以了解面试经验和改进方法。
培训与入职
有效培养新员工
不断扩张的团队会全力以赴招聘新员工,却可能忽视在他们入职后助力其成长。加入一家高速发展的初创公司本就可能让人望而生畏,若缺乏指导,新员工就得付出双倍努力才能掌握高效工作所需的知识。
在 Stripe 创立初期,我们犯过一个错误:在入职培训上投入不足。员工将他们的磨合期定义为“不成功便成仁”的经历。我刚加入 Stripe 时,有几位同事把这种缺乏支持的情况当成了一种考验——他们以为这是公司在员工入职后重新评估每个人的方式。但事实并非如此,只是因为我们没有在入职计划上投入足够的精力,这无形中向员工传递了“只能靠自己”的信号;而错误很容易演变成不经意间形成的公司惯例。如今,我们在入职培训以及帮助所有新员工提升影响力方面,投入了大量的时间和精力。
投资于专门的培训和入职计划
新员工入职后的头几个月至关重要。让工程师入职第一周就着手开发功能,这种想法很有诱惑力,但投入资源做好入职培训,才能培养出更有归属感、工作效率也更高的团队成员。
我们为所有新员工开发了 Stripe 101——这是一项通用入职培训项目,旨在让全公司的新员工建立联系。在短短几周内,新员工通过参加课程、与联合创始人交流、搭建 Stripe 集成功能、处理支持工单等方式了解公司。他们还能早早获得与公司多个不同职能部门人员协作的机会。这个项目的规模令人瞩目,全公司有 82 名讲师牵头开展了 30 多场培训。去年,有 200 多名 Stripe 员工参与了该项目。员工调研显示,Stripe 101 给大家带来了积极的体验,在向新员工传递关键信息方面效果极佳:
- 在 Stripe 101 课程结束时,100% 的 Stripe 新员工都能总结出至少三种 Stripe 产品的功能。
- 94.5% 的 Stripe 新员工认为他们在 Stripe 的第一周是一次积极的经历,并认为 Stripe 101 课程有效地利用了时间。
- 90% 的 Stripe 新工程师在课程结束时了解了 Stripe 堆栈的各个组成部分。
- 新员工培训结束后还能立即拥有一个在 Stripe 不同职能部门工作的同行网络。能帮助他们在日后的工作中,以更人性化的方式熟悉公司运作——例如,在开发新功能时,他们可能已经认识用户运营团队或销售团队中的某个人,可以向他们寻求早期反馈。
Stripe 101 对通用知识很有帮助,但我们认为有必要为新工程师提供额外的入职体验。他们喜欢结识整个公司的人,但又急于与技术团队打交道,潜心研究代码。我们开发了一个新项目,通过解决主要应用程序代码库中的实际问题,向他们介绍我们的技术堆栈。我们将其命名为 /dev/start 计划,并首先进行了小规模试点,其中包括少数新工程师、志愿者导师、从团队积压工作中抽取的项目以及一对一的反馈。几个月后,它扩展到多个组织,并很快用于所有工程部门。
如今,我们将新员工编入临时虚拟团队,为期三至四周。团队与专门的导师合作,学习我们的开发流程,同时交付一个具体的工具或产品改进方案。经验丰富的 Stripe 工程师通过担任导师获得项目领导和指导经验——他们与团队坐在一起,将项目分解成可执行的任务,回答技术和产品问题,审查代码,并充当与其他工程人员沟通的桥梁。
/dev/start 将导师与新员工联系在一起,为他们在小组项目中的入职体验提供支持(每个人都会收到一件限量版 T 恤)。
不要忘记软技能和文化
心理安全是团队成员的共同信念,即承担风险和分享知识以相互支持是安全的。在谷歌的亚里士多德项目中,一项旨在了解高效团队秘诀的研究发现,心理安全是团队成功的最重要因素。
我们的目标是通过编写文化和团体规范指南来营造这种安全感;我们的指南既包括一般的沟通方式,也包括针对特定团队的做法。《Stripe 101》中有一门名为在 Stripe 沟通的课程,不仅介绍了公司邮件列表、电子邮件最佳实践和错误跟踪器,还介绍了如何安排会议等非显而易见的沟通模式。日历规范看似常识,却蕴含着重要的文化知识:了解它们可以帮助人们避免令人尴尬的日程安排错误或发现重要事件。
工程团队为特定工具(如 GitHub 或 JIRA)或代码审查等常见做法提供专门指南。这些指南可作为真相的来源,让团队事先就流程达成一致,减少持续的争论或混乱。自助式文档还能减少我们对口头相传的依赖,帮助我们更快地扩大规模。
Stripe 电子邮件
- 非紧急信息使用电子邮件。如果您需要快速回复,而又不能等到收件人查看电子邮件,那么请使用 Slack。
- 如果您将离开办公室 (OOO),请考虑设置自动回复,告诉大家您的回复时间以及谁会代您处理事务。此项并非强制要求,是否设置由您自行判断。
- 在结束一个单元的工作时,您应发送一封 shipped@ 电子邮件。
- 您不应该随意“潜入”别人的讨论主题。您可以尽情浏览,但这种主动的“潜入”是否有必要?如果能给出有价值的观点,完全可以礼貌地在列表里插话;要是没有,就别妨碍别人推进工作。
- 在 Stripe,坦诚沟通要想真正奏效,前提是我们要营造并维护一个让所有 Stripe 员工都感到安全的环境。没必要的“潜入”,或是让他人感到不自在,都会打击大家坦诚沟通的积极性。不过,您可以温和地鼓励其他人——尤其是新加入 Stripe 的员工——坚持用列表沟通。这件事可能不会一直让人觉得轻松,也确实需要些勇气,但这样做的好处是值得冒一定的风险的。
这是我们用来帮助新员工了解我们的沟通规范的指南示例之一。
小窍门与练习
- 试点开展 1-2 期入职培训课程,以提供您公司和产品的概览。
- 为团队撰写一份以文化或小组规范为导向的指南,例如,如何发送电子邮件、日历和完成代码审查。
参与和保留
投资于您所拥有的团队
员工的幸福感通常取决于两个因素:他们是否了解自己的工作所产生的影响,以及在日常决策中是否拥有自主权。除此之外,成功的团队还需要通过结构化管理,让成员长期保持投入状态。具体来说,团队需要积极倾听反馈、明确个人成长路径,并培养管理者更好地支持团队成员。
在招聘并完成新员工入职培训后,企业有两个选择:要么聚焦短期产出,要么着眼团队的长期生产力。对于高速成长企业而言,业务环境变化迅速,早期做出的决策可能产生深远影响,即便日后人们很容易忘记这些决策最初是如何制定的。早期员工往往比新员工掌握更多关键知识,执行效率也更高,同时因既懂技术背景又熟悉公司运作模式,会成为企业最宝贵的导师。但与此同时,他们也可能逐渐感到负担过重,或被困在公司的某个业务板块、某项技术栈中难以脱身。要避免这种情况,需与早期员工协作,为团队搭建合适的支持体系。
不要把产出结果与投入状态混淆
在之前的公司担任早期管理者时,我曾负责一支协作顺畅、生产力极高的团队。某天,一位资深工程师在一对一沟通时,悄悄递给我一封辞职信。此前,他一直稳定输出高质量工作,主动承担有挑战性的项目,甚至还在指导新员工和实习生。当我问他离职原因时,他说自己再也感受不到挑战了——虽然清楚自己的工作对公司很重要,但看不到既能提升个人影响力、又能学习新技能的路径。我现在把这种情况称为意外离职:当员工陷入局部最优困境,会觉得与其在公司内部接受一个看似影响力更低的新岗位,不如离开公司去寻找更有吸引力的机会。
我很快意识到,虽然我没发现任何预警信号,但只要简单聊一聊他的职业抱负,就能察觉到他的顾虑。员工只有在感受到个人成长时,才会持续投入;要做到这一点,你不能只盯着日常产出,还要通过恰当的提问提供支持。我们每年会开展两次名为 StripeSat 的员工调研,用来衡量大家的投入度。以下是上次调研中我们重点关注的几个问题:
- 您在工作中有学习和成长的机会吗?您想学习或提高哪些方面的能力?
- 您预计未来三年还会在 Stripe 工作吗?为什么会,或者为什么不会?
- 您认为在 Stripe 有好的职业发展机会吗(例如有挑战性的任务、承担更多职责、内部调动等)?如果没有,什么样的机会会让您感兴趣?
为职业流动和学习搭建支持路径
帮助员工发现新机遇并创建独立项目,使他们能够塑造自己在公司的故事和角色。在 Stripe,我们创建内部资源来宣传新团队,鼓励员工轮流参与新项目,并举办黑客马拉松来培养创造力。
员工通过轮岗学习一门新语言、探索技术堆栈的其他领域,有些情况下还会因此永久性地转至新团队。过去六个月里,已有十多位工程师在不同项目间完成轮岗,包括 iOS 移动开发、核心支付 API 功能开发以及机器学习应用等。我们还会重点标注那些最适合内部调动的岗位——比如新团队的组建工作,或是复杂技术问题的攻坚任务。突出这些有挑战性的工作,能引导资深工程师投身到最能发挥其价值的项目中。
尝试新事物未必需要数周的规划或组建新团队;我们也会通过举办内部黑客马拉松,鼓励大家开发新工具和新产品。在最近一次黑客马拉松中,来自多个办公室的 80 人参与其中,最终有 7 个项目成功交付给了内部和外部用户,包括 Stripe Elements 中的从右到左语言支持功能,以及提升员工工作效率的内部工具。
黑客马拉松帮助我们创建了很棒的内部工具,比如 Stripe 内部公司目录上的这张座位表。阅读有关我们如何在这篇博文中使用“主页”的更多信息。
征求反馈意见并作出回应
随着公司的发展,回应员工的反馈意见既需要可扩展的方法,也需要认真倾听个人的意见。员工总是能发现公司存在的问题,但他们往往并不知道如何将所看到的转化为有效的变革。我们通过三个步骤来回应员工反馈:
- 确定问题。
- 设计一种收集结构化反馈意见的方法。
- 处理反馈;交付成果。
两年前,工程师一致认为我们的开发环境缓慢而低效。为了解决这个问题,我们组建了一个由经验丰富的 Stripe 工程师组成的团队,专注于内部开发人员的体验。尽管他们拥有直觉和专业知识,但在确定最具影响力的项目时却遇到了困难。该团队发起了一项开发人员体验调查,以指导他们的工作,其中包括以下问题:
- 在上周,由于开发过程的问题,您损失了多少个小时?
- 利用我们的工具或基础设施,我们可以做哪一两件事来提高您的工作效率?
- 在您工作的代码库中,有哪些问题比应有的更棘手?
调查结果显示,最常见的请求(是原来的两倍!)是更快、更可靠的编辑-同步-测试循环。团队将此铭记于心,并开展了一系列项目来提高代码同步、重载和测试的速度和可靠性。几个月后的下一轮调查结果显示,这些方面的满意度提高了 50%-80%。这在团队和用户之间形成了一个积极的反馈循环,让工程师们感觉自己的意见被听取了。从那以后,我们每个季度都会进行开发人员体验调查,并不断从调查结果中吸取经验教训。
小窍门与练习
- 创建一个内部招聘栏,重点介绍需要有经验的内部调动人员的特定团队或职位。
- 开发黑客马拉松试点项目:可以在一定时间范围内进行,如月度黑客马拉松和周度黑客马拉松。
- 实施公司调查,并根据反馈意见确定一个您可以开展的项目。
总结
随着组织的发展,如何扩展团队对企业文化、生产率和员工参与度有着巨大的影响,进而影响企业的成功。在快速发展的公司中,情况瞬息万变,今天行之有效的方法明天可能就会失效。到目前为止,这些做法已经帮助我们扩大了规模,但随着公司的发展,我们还将继续迭代和开发新的做法。我们希望这些经验对您的规模扩展之旅有所帮助,我们也很高兴能与您分享我们一路走来的发现。
听起来有趣吗?加入 Stripe 工程团队——查看职位空缺。