从我们的工程实习计划中吸取的教训:第二部分
作者:Adam Anthony / 用例, 开发者, 公司
2019年11月07日
导航至
2019年,InfluxData 聘用了有史以来规模最大的工程部门实习生,共有 5 名实习生加入我们的存储和查询语言团队。本系列博客文章讨论了我们从构建该计划中获得的经验。(您可以在此处找到本系列的第一部分。)
在本博客系列的第二部分中,我们将分享一些关于如何成功管理远程实习生的技巧。
远程实习生成功的秘诀
招聘远程工程师的一个常见趋势是他们必须具有一定的资历。毕竟,对于初级工程师来说,独立工作和在非持续指导下工作可能具有挑战性。 InfluxData 拥有以远程优先的工程文化,在这种文化中,无论是在旧金山总部还是在世界各地的任何城市工作,一个人所做的贡献几乎没有差别。当我们决定增加实习计划以加强我们的远程团队时,我们知道我们必须提前计划,以确保我们已做好充分准备来适当地支持远程实习生团队。
我们如何看待实习生
我们看待实习生的第一个方式是作为开源社区贡献者。凭借有限的经验和清晰的思路,一位技能娴熟的实习生为我们提供了关于开源项目结构的绝佳见解,从代码结构到工具再到构建流程,再到质量保证。我们还会每天收到他们关于特定库或工具是否难以使用的反馈。通常,在完成一个困难的过程中,我们发现有更好的方法来解释它。有时,实习生的工作可以验证我们关于社区成员如何使用我们的代码库的假设。
我们看待实习生的第二个方式是作为内部团队成员。在对其经验水平的合理期望范围内,我们确实希望实习生从我们的积压工作中挑选问题,并提交拉取请求以将解决方案合并到我们的生产流程中。现在,由于他们在公司的有限和临时身份,这一切都发生在一些保障措施下。首先,他们被授予较少的 git 权限,以防止意外损坏我们的存储库历史记录。其次,实习生不进行任何随叫随到的或运营工作来支持我们的产品。最后,实习生的代码必须始终由一名全职工程师审查。
我们也把实习生视为学生。我们重视教导他们构成高质量软件工程的风格和工艺要素的机会。我们提供额外的会议和支持,以确保他们获得自信行动所需的指导。如果他们自信地行动但失败了——那也没关系。根据我们的核心价值观我们拥抱失败。成功的实习生不应被置于以代码是否合并来定义成功的情况。相反,我们的目标是提供工作项,如果完成这些工作项是有益的,但如果未完成,则不会对团队造成阻碍或损失。即使是最优秀的学生也可能会在某个任务中遇到困难,并且必须放弃它。对于团队文化和实习生的福祉而言,重要的是要理解从经验中学习本身就是有价值的。
远程实习计划成功的技巧
在我们 2019 年夏季实习计划结束后,我们进行了一系列离职面谈和回顾,以找出哪些有效,哪些无效。在这里,我们将讨论我们的发现,并提供一些我们认为可以复制的技术,以帮助其他远程团队成功整合实习生。
首要原则:防止隔离
隔离会给任何远程员工带来许多问题。在我们最孤立的时刻,可以听到内心的微弱声音:你做不到这一点;其他人都知道自己在做什么;如果他们想知道你的想法,他们就会问。经验丰富的远程员工知道如何避免这些感觉,我们都有适合自己的技巧。实习生由于缺乏经验,可能会因深深的孤立感而损失数周的生产性工作。因此,本节中的大多数建议都涉及一个单一原则:防止隔离。
团队组织原则
- 以至少两人的小组形式招聘实习生。 为他们提供一个可以联系的同伴群体,将在信心和动力方面获得回报。
- 为每位实习生分配一位个人导师。 这是一个实习生理解会随时解答所有问题的人。他们应该感到可以随意打断这个人,并相信如果提问过多会提供适当的反馈。
- 明确整个团队都有责任帮助所有实习生。 导师会休假、生病等。
- 培养新的管理者。 如果您的一位工程师表现出或表现出领导才能,请分配他们管理整个实习生小组。这是对个人导师的补充。实习生经理将每天领导一次单独的计划/scrum 会议,以补充全职工程师的会议,在全职工程师的会议中,决策可能会过快地通过,以至于实习生无法完全掌握正在发生的事情。额外的会议使他们有机会提出澄清问题,这些问题可能会扰乱常规会议的流程。它还使经理有机会确保每位实习生都为当天/周制定了工作计划。
团队工作原则
- 不要在培训上浪费太多时间。 他们需要充分了解自己在做什么,以防止他们对您的存储库造成损害,但除此之外,让他们在工作中学习。他们渴望编写有意义的代码。在实习生合并他们的第一个拉取请求后,您会看到实习生的生产力发生巨大的变化。让他们尽快达到这一点!
- 在他们一起工作的第二或第三周, 为小组分配一项包含小任务的大型史诗。 这在几个方面对他们有帮助。首先,他们有一种快速找到合适工作项的方法。其次,如果您选择好的问题,他们正在为生产性贡献做出贡献。最后,当他们看到长长的问题列表逐渐减少并最终关闭史诗时,他们将围绕集体成就感形成团队联系。好的工作集包括编写测试、低优先级功能、不太复杂的需要修复的技术债务,甚至只是一系列不相关的“实习生友好”标记的问题。
- 导师应进行每日签到。 是的,我们告诉实习生“您可以随时问我问题”,但有时,他们不会。特别是对于远程实习生,我们没有诸如肢体语言或猛摔笔记本电脑之类的线索来让我们知道有人感到沮丧。签到不必花费任何时间。在 Slack 上发送消息:“进展如何?有什么问题吗?” 有时他们没有任何问题,这很棒。有时他们有问题。几周后,他们会觉得他们的工作关系需要频繁、公开的提问,您会发现有意的签到变得不那么必要了。
- 代码审查必须有两位审查员。 这些是一位全职工程师和一位实习生。
- 偶尔进行现场审查。 这是指全职工程师将像往常一样进行代码审查,但会在视频会议中大声思考,以便实习生获得团队对编码质量和标准的直接体验。
- 在季中于中心地点举办一次聚会。 如果贵公司有总部,请安排一周时间将所有人聚集在一起进行实体聚会。我们在计划聚会时做出了几个最终非常成功的选择
- 计划将大部分时间用于黑客马拉松活动,实习生将在不同的团队中组成更大的小组,并共同应对重大挑战。
- 不要安排得太早:给他们几周时间来学习代码平台,以便他们能够感到有能力产生新的、有用的想法。
- 不要安排得太晚:我们观察到,这次经历是一次很棒的团队建设和友谊建设活动。确保他们可以在之后的一段时间内享受这一周的好处。
- 在实习结束前给实习生时间探索新事物。 在他们结束日期的前 2 周内,停止分配问题,并鼓励他们尝试任何他们想尝试的事情。他们为您辛勤工作,他们理应花一些时间追求自己的兴趣。