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