RailsConf 2014

Technical Onboarding, Training, and Mentoring

Technical Onboarding, Training, and Mentoring

by Kate Heddleston

This video features Kate Heddleston discussing the importance of effective technical onboarding, training, and mentoring of junior engineers, particularly in the context of a growing number of code academies producing new talent. At the RailsConf 2014 event, Heddleston outlines a structured approach that organizations can adopt to enhance the integration of junior engineers into their teams while fostering independence, productivity, and confidence.

Key points discussed in the video include:

  • Definition of Onboarding: Onboarding is described as the process of transforming new hires into productive, independent, and confident team members.
  • Characteristics for Success: The talk emphasizes three main traits—productivity, independence (or autonomy), and confidence—as the foundation for effective onboarding.
  • Consequences of Poor Onboarding: Companies without structured onboarding may face high employee attrition rates and declining productivity, which can ultimately affect their bottom line.
  • Team Debt Concept: Just as technical teams accumulate code debt when not maintained, organizations also accumulate team debt when they fail to invest in onboarding and training.
  • Diversity in Onboarding: The importance of structured onboarding is highlighted as critical for fostering diversity within teams, ensuring that individuals from varied backgrounds feel included and valued.
  • Onboarding Plan Overview: Heddleston presents a detailed four-week onboarding plan for junior engineers:
    • Week 1: Focus on getting the new engineer set up technically and integrated socially with their team.
    • Week 2: Provide context about the company's history, introduce them to company operations, and promote shadowing of senior engineers.
    • Week 3: Emphasize communication goals, feedback mechanisms, and allow junior engineers to churn in more independence.
    • Week 4: Continue scaling back oversight while encouraging independent problem-solving and facilitating shadowing with chosen peers.
  • Assessment of Progress: The video concludes with a discussion on assessing the progress of new engineers and the variability in their learning trajectories, stressing that everyone in the company can play a role in onboarding.

Conclusion and Takeaways:

  • Onboarding is crucial for making new hires feel confident, productive, and independent.
  • Effective onboarding processes can mitigate attrition and enhance the productivity of teams.
  • Involvement in onboarding can be shared across all team members, not just senior engineers.

The session aims to inspire companies to develop their onboarding processes to harness the potential of junior engineers more effectively.

00:00:17.340 Welcome to my talk! I'm Kate Heddleston and this is about technical onboarding, training, and mentoring.
00:00:23.890 I am a software engineer based in San Francisco, and I primarily focus on contract work related to full-stack web applications. I work closely with many early-stage startups.
00:00:30.310 This presentation was originally co-written with Nicole Zuckerman, a software engineer at Eventbrite. Unfortunately, she couldn't be here today because she is currently vacationing in Italy.
00:00:42.520 Nicole attended a code academy called Hackbright Academy, where I teach one day a week. We decided to collaborate on this presentation because we both had similar experiences at our respective companies.
00:01:02.559 When I graduated college, I joined a small startup as its sixth engineer and twelfth employee. The company grew significantly during my time there, and I eventually reached a certain level of proficiency.
00:01:13.930 Looking back, I realized I could have progressed much faster with just a bit of help and structure. This realization led me to create the onboarding program at my company. Nicole had a similar experience at Eventbrite, where she has been working on onboarding as well.
00:01:31.990 It's important to note that this presentation was specifically designed with junior engineers in mind. However, about ninety to ninety-five percent of what I discuss can easily be adapted for those with more experience.
00:01:52.540 So, what exactly is onboarding? For the purposes of this talk, onboarding is the process of taking someone from outside of the group—be it a new company or team—and transforming them into a productive, independent, and confident member of that team.
00:02:11.860 I chose these three characteristics because they are incredibly important. Productivity is self-explanatory; we naturally want productive engineers. Independence—another term for autonomy—refers to creating engineers that can operate within your organization without needing constant oversight.
00:02:46.290 They should be able to make decisions and understand the company structure well enough to avoid unnecessary overhead. Independence and autonomy are also crucial because we all have a fundamental need for control over our own destinies.
00:03:09.900 I recently read an article emphasizing the importance of autonomy using a surprising example from prisons. In many prisons, inmates can choose their TV channels or rearrange their furniture, which has been shown to drastically reduce rebellions.
00:03:41.390 Independence is vital not just to prevent rebellion among engineers but also because feeling autonomous fosters motivation and investment in one's work. Finally, confidence is arguably the most important of these three traits.
00:04:16.640 Confidence is about instilling in employees the belief that they are valuable. Studies have shown that confidence directly impacts performance; when individuals believe they can succeed, they generally do better.
00:04:39.040 Now, you might wonder why this matters to you. I hope to convince you that you should care about building an onboarding program at your company as soon as possible. In this section, I will discuss the perspectives of the individual joining the company, the company itself, and the specific team they will be joining, and I'll conclude with a discussion on diversity.
00:05:13.590 To start with the individual, let's consider what can go wrong without effective onboarding. Attrition is a primary concern for many companies, and rightly so. It can cost upwards of 1.5 to 2 times an employee's salary.
00:05:48.180 While employees may not leave specifically due to a lack of onboarding, poor onboarding can contribute to several dissatisfactions that lead to resignation. For instance, the top reason employees quit is dissatisfaction with their managers.
00:06:06.690 However, effective onboarding can address many issues early on, helping new hires gain confidence and a positive trajectory in their skill development, thereby increasing their likelihood of staying with the company long-term.
00:06:41.440 Now, from the company’s perspective, productivity is a significant concern. Here is a graph depicting productivity decreasing with each new engineer added to the team. This phenomenon was also observed at LinkedIn, where the addition of new engineers actually reduced overall productivity, affecting the company’s bottom line.
00:07:24.060 When Kevin Scott, the new SVP of Engineering at LinkedIn, stepped in, he had to undertake extensive work to revamp their organization and onboarding processes. This was no small task—LinkedIn employs thousands, and the goal was to ensure each new employee contributed positively.
00:07:38.550 The challenge lies not with the new hires themselves; they are not inherently negative in their value. Instead, this issue relates to the company's processes. Onboarding is crucial for evaluating and enhancing these processes to support new employees’ effectiveness.
00:08:27.170 This concept speaks to what I refer to as 'team debt.' Many are familiar with the idea of code debt in engineering. It refers to the accumulation of technical debt when you build something quickly without considering long-term implications.
00:08:49.050 The same concept applies to personnel. Companies that neglect onboarding and fail to invest in their staff will inevitably accumulate 'team debt.'
00:09:00.250 As companies begin to grow and reach a hundred or more employees, the need for onboarding becomes acute. At this stage, onboarding individuals is significantly more complex than it would be if initiated when the team was smaller.
00:09:30.330 This complication arises because larger teams have established structures, which makes it harder for new hires to acclimate. Starting our onboarding practices early, when we have fewer than one hundred employees, and maintaining them incrementally, is substantially more manageable.
00:10:02.620 The third critical aspect of onboarding pertains to the immediate team the engineer joins. There's a saying that you don't truly understand something until you teach it.
00:10:40.760 This holds true for understanding your company's culture and code process. If you can’t adequately explain to a new engineer how your company operates, it may indicate a significant knowledge gap.
00:10:49.530 Moreover, adding new team members fundamentally shifts small teams. Therefore, it's crucial to iterate the team's process to introduce the new engineer effectively.
00:11:10.730 Reiterating team processes benefits not only the newcomers but also the existing engineers by ensuring everyone is aligned. To illustrate my point, I have a background in sports.
00:11:38.560 Having played sports for a considerable part of my life, I coached junior varsity girls' water polo at a local high school. During our team meetings, I would hold deep discussions with them, emphasizing that their success in games was not solely reliant on their individual skills.
00:12:12.410 While their skills were undeniably important, the essence of teamwork often meant they could defeat more skilled teams simply by collaborating effectively.
00:12:32.500 Teamwork serves as a multiplier in productivity, and this principle extends to engineering. The productivity of an engineering team is the sum of each member's skill, multiplied by how well they work together.
00:13:03.200 For the bonus category on diversity, let’s reference Dr. Seuss's work, particularly his story about the Sneetches. In the story, some Sneetches develop stars on their bellies, leading to social rifts within their community.
00:13:27.500 This tale serves as a poignant reminder that diversity encompasses many aspects: gender, race, communication styles, and more. Onboarding processes become crucial when we engage diverse talents.
00:13:51.220 Typically, technology companies start with a homogeneous group due to a phenomenon known as homophily—we tend to associate with those similar to ourselves. If onboarding structures are lacking, new hires who are different from existing employees may struggle.
00:14:26.530 Hiring individuals who are similar to the existing group can result in an environment that implicitly favors some types of behavior and communication methods over others. To mitigate this, we need an explicit onboarding structure that integrates diverse individuals into the team.
00:14:56.770 Every new hire should have a solid chance of succeeding in their new role, irrespective of how different they are from the existing team. I hope by now you are convinced that onboarding is vital.
00:15:30.460 Anyone at your company can participate in onboarding processes. It doesn't have to be solely on senior engineers; even those who were junior engineers themselves can help newcomers feel welcomed.
00:15:51.920 Onboarding can start as soon as an offer is accepted. In upcoming sections, I will describe an onboarding plan that spans from the new hire's start date until they reach what I define as 'reliable independence.'
00:16:10.980 Reliable independence refers to a state where a new engineer can independently build features and deliver adequate work without constant supervision.
00:16:27.700 Now, let's discuss the 'how' aspect of onboarding. There are several concepts to consider when designing an onboarding program, which I will follow with a four-week onboarding plan outlining specific tasks for junior engineers.
00:16:47.220 First, maximize your return on investment. Ensure that the effort you put into onboarding provides equal or greater value in return. One common but inefficient approach to onboarding is excessive 'hand-holding.'
00:17:06.590 Often, mentors may mistakenly believe that they need to guide new hires through tasks in detail. This model is unrealistic; becoming a senior engineer in three months is simply not feasible.
00:17:26.610 This unsustainable method can lead to burnout and disappointment for both parties. A more effective approach would be similar to bumper bowling, where the environment encourages independent exploration but still provides support.
00:17:48.770 Automation plays a critical role in this context. By automating the development environment and deployment processes, junior engineers can learn within a safe space.
00:18:13.330 Setting clear and defined boundaries is key when scoping projects for junior engineers. Experts understand the landscape well enough to set these boundaries, while junior engineers need guidance.
00:18:28.200 I categorize onboarding tasks into three categories linking back to productivity, independence, and confidence: technical knowledge, company knowledge, and personal development.
00:18:55.020 While many believe technical knowledge constitutes most of the onboarding process, I argue it only accounts for about a third. This is the easiest part to teach because resources are prevalent online.
00:19:13.800 Company knowledge and process represent the second third and are generally more challenging to convey, as they often reside in the minds of existing employees rather than documented.
00:19:35.590 The final third focuses on personal development. This is crucial to building confidence and helping employees understand their career trajectories.
00:19:57.930 I'm going to lay out a specific onboarding plan designed for junior engineers. Some tasks are tailored for new hires, but the timeframe might be condensed for those with more experience.
00:20:27.620 Throughout the first week, focus on shipping code and familiarizing the engineer with their immediate team. Setting up the development environment is crucial for new team members.
00:20:47.680 The most recent hire will be the best person to guide the newcomer in setting up their development environment smoothly.
00:21:09.590 Setting a goal for how quickly a new hire can be ready to ship code—ideally on the first day—demonstrates well-designed automation and onboarding processes.
00:21:34.040 Junior engineers should be encouraged to ship small code changes as soon as their development environment is set up. Assigning a small bug fix or minor feature task can make them feel productive and part of the team quickly.
00:21:54.930 Encourage journaling and note-taking, as new employees won't memorize all necessary commands. Facilitate a discussion about three things they've learned each day or week to enhance retention and understanding.
00:22:15.080 Lastly, organize social events for any incoming engineer. It's essential that no one starts their position isolated, so some casual meet-and-greet is vital.
00:22:34.590 The second week should focus on immersing the new hire in the company culture and allowing them to shadow more experienced engineers.
00:22:54.310 Share the company's history, detailing the founders, early employees, and significant milestones, as well as providing the context for the company’s process and culture.
00:23:11.160 Creating a team map displaying everyone’s photo, name, and responsibilities can also support the new employee in remembering who does what across the team.
00:23:35.170 Implement code labs as a safe space for developers to ask questions. For example, you could dedicate an hour to front-end development where junior engineers can expose their queries in a non-threatening environment.
00:23:50.490 Pairing junior engineers with senior staff for shadowing is also beneficial. Observe how they navigate their tasks and learn various tools and methods of code development.
00:24:06.240 Ensure that the junior engineers are paired with senior staff who demonstrate effective practices and avoid bad habits. Encourage open communication about mistakes or alternative approaches to avoid confusion for new hires.
00:24:48.500 The third week should focus on developing communication skills, set goals, and provide feedback. By this point, you should balance support and independence.
00:25:11.500 Schedule regular one-on-ones for feedback on their progress or any challenges. This structure is essential in helping them voice their thoughts.
00:25:29.650 By week three, junior engineers should have a clearer idea of their interests, whether it's focusing on front-end features or gaining expertise in DevOps.
00:25:50.560 Frequent feedback aids their growth and development. Provide constructive criticism, and try shifting from negative to positive language when addressing their areas for improvement.
00:26:06.300 Encourage them to practice presenting technical topics to their peers, as communication is a critical skill they will require throughout their careers.
00:26:19.650 In the fourth week, continue giving them reasonable autonomy. Scale back your involvement and guide them to problem-solve independently. Set expectations that they will attempt to troubleshoot issues before reaching out with questions.
00:26:40.180 Also, make shadowing voluntary so that they can control who and when they wish to shadow during their onboarding.
00:26:54.360 Pair them for larger projects, akin to a driving instructor who has a brake pedal to ensure safety while the junior engineer gains like hands-on experience.
00:27:10.200 Keep checking in on their goals and note any adjustments needed for their projects, shadowing, or code labs.
00:27:30.080 This week is also essential for informal apprenticeships, allowing new engineers to learn from someone more senior as they start honing in on their long-term focus.
00:27:46.200 As their skill set develops, they may be assigned more advanced tasks, diving deeper into areas of interest. Ongoing assessment throughout this process is crucial.
00:28:11.210 You'll likely encounter different levels of progress among your new hires. Some may excel quickly, while others may struggle at first.
00:28:38.470 Establish five assessment categories: confidence, code quality, communication, judgment, and technical knowledge. This will help you recognize and address areas for improvement.
00:28:52.670 For instance, if a junior engineer is hesitant to ship code, they may lack confidence. Providing encouragement may yield significant results.
00:29:02.810 If they seem to lack judgment in their design choices, getting them acquainted with customer support can help them understand user needs better.
00:29:10.310 Your takeaways from this should focus on the essential aspects of onboarding.
00:29:17.000 First, onboarding aims to develop confidence, productivity, and reliable independence in your new hires. Remember, it does not turn someone into a senior engineer overnight.
00:29:27.000 Second, onboarding is beneficial for everyone; it enhances the individual experience, contributes to the company's success, and improves overall team productivity.
00:29:48.000 Lastly, everyone at your organization can participate in onboarding, not just senior engineers.
00:29:57.000 I encourage you to start refining your onboarding process now. We have created a GitHub repository with assessment rubrics, detailed plans, and additional resources for online learning. Thank you for your attention!