Talks

How To Onboard a Junior Developer

Recorded in June 2018 during https://2018.rubyparis.org in Paris. More talks at https://goo.gl/8egyWi

Paris.rb Conf 2018

00:00:11.340 I would like to ask for a special round of applause for Christophe, who has been a frequent attendee at the Paris Ruby meetups for many years. He has given numerous talks, and it has always been a pleasure to have him with us. Please welcome Mr. Christophe Philemotte.
00:00:24.300 Thank you very much for having me today at Ruby Paris. As Thibaut mentioned, this place is full of memories for me. In fact, the first time I presented a talk at this meetup was in December 2013, which was about five years ago—time flies! Once again, thank you for the warm welcome. Let me quickly introduce myself. I'm Christophe from Belgium, and I lead the engineering team at your company, Nova. We help clients with data engineering and data science. For the past ten months, I've been working on a new product: a data platform that assists in transporting, transforming, governing, and archiving data.
00:00:50.700 Outside of work, I enjoy a variety of activities, including baking bread, scuba diving, and more. So, if there’s anything you’d like to discuss, feel free to approach me. I come to conferences to meet old and new friends, so please come and say hello. You can usually find me on GitHub, Twitter, and my website, which is bigsurftaco.com.
00:01:05.250 Today, I would like to share something a bit different from technology, yet closely related to it: onboarding developers, especially junior ones. I'll show you what we are currently doing at Nova, which is the result of several years of experimentation. I believe the first question we should ask is: why should we care about onboarding? Why shouldn’t we just neglect it?
00:01:29.700 Onboarding in a company involves integrating a new group member into an existing functional team. When you have a group that works well together—building products, selling, and running the business—it’s eventually necessary to bring in new members for various roles like security. Finding the right person can take time, and when they join the team, they naturally change the group dynamics. The key question is: how do you onboard them effectively? Do you do anything proactively, or simply hope everything will work out?
00:02:08.100 Onboarding is about creating a new version of the group—a working and productive team. The goal is to make the new member confident, autonomous, and ultimately reduce the need for additional support as they settle into their role. This might involve training them on new skills, for example, helping them understand frameworks or organizational culture, particularly in terms of communication.
00:02:34.650 It's also crucial to define how this new person wants to grow within the team and what their place will be. This brings us to the concept of 'team debt,' as discussed by Kate Edelstein. You can find her talks and blog posts on the topic. She illustrates that without proper onboarding, organizations can accrue technical debt. If you ignore the onboarding process, it can lead to inefficiencies, hindering the organization's growth and potentially leading to employee turnover.
00:02:58.640 Without effective onboarding, you risk disrupting the group's cohesion, which is detrimental. However, if you approach onboarding thoughtfully, several studies show it can enhance efficiency and even profit growth, illustrating that a great work environment leads to positive business impacts. So, if your management is skeptical, you can refer to these facts to make your case.
00:03:15.390 Now, let’s discuss how I perceive the onboarding process. I don’t believe there is a one-size-fits-all approach; it varies depending on the job, the company, the people, and the culture. Every environment, every team must define its own onboarding process. I envision it as a guided journey with specific goals to reach, designed to help the newcomer become independent over time.
00:03:36.630 In this talk, I will focus on junior developers, as they usually need the most comprehensive onboarding. For more experienced developers, you likely adjust the process, omitting certain steps and concentrating on what they don't know, such as specific technologies or communication protocols that your company uses. The entire onboarding journey takes about three months, although sometimes it may extend beyond that. However, it’s important to note that this period is not a hard endpoint but a beginning for continued development, including job shadowing.
00:04:04.650 Onboarding starts with the interview process. We see this initial interaction as the first collaboration opportunity between the candidate and the team. We aim for this experience to reflect how we will work together in the future.
00:04:14.750 During the interview, we engage in three main parts. The first is an informal conversation to share different viewpoints. Then, we conduct a design session focused on a real problem we've encountered, working together to plan the implementation. This collaborative approach differs from traditional interrogations; it’s about finding solutions together.
00:04:31.530 If we decide to work together, we begin preparing for the newcomer’s first day by ensuring all paperwork is taken care of beforehand. We think it’s important that everything is sorted before their arrival. This might seem obvious, but it’s easy to overlook. We certainly don't want a new hire to wait for two weeks because we forgot to arrange their laptop or spend their first day filling out contracts.
00:05:03.900 The first day should leave a positive impression. We want to create a welcoming atmosphere, so we ensure the new hire is greeted by an existing team member—what we call a 'buddy.' This person will introduce them to the team and show them around the workspace. Generally, the buddy is someone who has recently gone through the same onboarding process. They can relate to the questions and challenges the newcomer might face.
00:05:21.700 Another important aspect is the welcome pack we provide. We include instructions, information, and resources to set everything up, alongside a laptop and development environment scripts. This orientation helps the new hire avoid wasting time preparing their setup.
00:05:42.350 The mentor assigned to the newcomer plays a critical role in guiding them through the onboarding process. The mentor outlines what they can expect and sets initial goals for the first day and week. Typically, we suggest that the newcomer start by navigating our documentation, identifying unclear sections, and making their first comments. This engagement helps them start contributing right away.
00:06:09.390 Additionally, there is pair programming on their first week. During these sessions, the newcomer works closely with their mentor, collaborating on small tasks, whether implementing new features or fixing minor bugs. The intent is for the newcomer to establish a pattern of active contribution and integration into the team's culture right from the beginning. Also, they will participate in team activities such as retrospectives to ensure they feel like a valued member.
00:06:48.200 Throughout this onboarding period, we encourage a habit of contribution and continuous learning. In the second week, we focus on solidifying these habits and addressing any gaps in knowledge the newcomer might have regarding our technologies or frameworks. We keep track of learning objectives using a checklist, which helps identify what skills need to be developed.
00:07:06.330 At the end of each week, we conduct a checkpoint meeting with the mentor to review progress against expectations and assess what’s working well. This allows the newcomer to take an increasingly active role in their learning and professional development by defining their own goals for the upcoming week.
00:07:28.640 As the onboarding continues, we emphasize the importance of understanding our tools and processes, enabling the newcomer to effectively collaborate and contribute to the projects. This includes recognizing when it is essential to prioritize quality work versus meeting deliverable deadlines. It’s crucial that they grasp our methodologies and practices, such as Agile, while also being encouraged to discover these practices through their own experiences.
00:08:05.220 The onboarding journey typically lasts about four months, as we aim to establish both independence and a deep understanding of the team dynamics in this time frame. Throughout each month, the newcomer will progressively take more ownership of their onboarding journey, leading discussions about their goals and how they choose to contribute.
00:08:35.430 As they advance to the second month, we implement a structure where the new employee takes the lead in defining their own weekly goals and requests assistance as needed. In the final month, they are encouraged to consider what their long-term aspirations are and how they see their place in the company.
00:09:01.230 Each mentor has a crucial role throughout this entire process, regularly checking in to ensure that the newcomer has all the necessary skills and knowledge. This active mentorship can also involve guiding them to address gaps they may need to fill as they continue their journey.
00:09:26.050 This structured onboarding approach is based on several years of trials, reflections, and adjustments. I encourage you to take inspiration from this model and adapt it to your own company culture and needs.
00:09:49.350 It’s also important to be aware of certain pitfalls we’ve encountered. One major point is to engage new hires positively from the start. Make sure to explain the onboarding process and help them feel like an active participant.
00:10:08.660 Defining a social contract is essential at the start of the onboarding. It should clearly outline the responsibilities and expectations for both the new employee and the team, ensuring that everyone understands their roles.
00:10:36.310 Regular feedback is vital for the learning process. Providing consistent feedback allows newcomers to understand where they stand and identify areas needing improvement.
00:10:43.890 However, it's crucial not to rush the onboarding process. You may be tempted to push for quick results, but it’s crucial to ensure they have ample time to learn and adapt. I generally recommend allocating about 25% of the team's effort to successfully onboard one new hire; it may seem significant, but it ultimately pays off.
00:10:59.290 When giving feedback, it's essential to communicate constructively. Negative feedback should not be just criticism; it should come with guidance and clarity on how to improve. Instead of simply stating that something is bad, provide specific suggestions on how to address the issue.
00:11:33.880 To conclude, let’s talk about the surprising benefits of effective onboarding. A well-structured onboarding process enhances your projects’ overall performance. When you onboard someone, you tend to improve your documentation and streamline your development processes, making it easier to test and develop projects.
00:11:49.420 Onboarding also strengthens team dynamics. It fosters a culture of collaboration and knowledge sharing, where team members are willing to support each other. This is vital for overall success and cohesion within the group.
00:12:12.200 From an organizational perspective, effective onboarding often uncovers underlying issues, such as ineffective communication. By facilitating a smoother onboarding experience, you enhance the overall health of your organization.
00:12:30.150 Just like technical debt, onboarding can reflect the organization's state of health. A streamlined onboarding process indicates a well-functioning organization; if it’s easy to onboard new employees, it suggests strong internal processes.
00:12:51.540 That’s it for my presentation. Thank you very much for your attention!
00:13:11.130 If there are any questions, feel free to ask now, or we can talk afterward. You may also find me on GitHub and Twitter. By the way, we are hiring, so please feel free to reach out if you’re interested. Thank you once again!
00:13:39.330 Thank you very much, Christophe. We will now have a break, but first, do we have any questions?
00:14:07.400 Do you have remote employees in your company, and how do you onboard them? It seems like most of the processes you’ve described are tailored for in-person onboarding.
00:14:27.340 As the most remote employee, I can say that onboarding remotely is feasible. It largely depends on your company's culture and practices. For remote onboarding, pair programming and video calls are effective tools. I recommend integrating remote work culture from the start, which helps prevent isolation.
00:14:54.970 While building a remote culture is important, it's equally beneficial to meet new hires in person whenever possible to foster informal connections.
00:15:23.440 Thank you for the insightful discussion! This topic deserves greater visibility.
00:15:37.290 What would your advice be for newcomers who consistently do not meet the expectations set during their onboarding journey?
00:15:49.740 First, it’s essential to clarify why failing to meet expectations is a concern. For example, if listening is critical for teamwork, discuss why it is essential. Moreover, if after providing feedback, there's no improvement, it may indicate a mismatch between the individual and the company, which can lead to tough decisions.
00:16:14.070 To address shortcomings, open dialogue is necessary. Discuss issues as they arise without delay; prompt discussions will facilitate better resolutions.
00:16:29.130 Lastly, how does the team establish the social contract at the beginning of the onboarding process?
00:16:50.820 The concept of a social contract seems complex but at its core, it's about creating a culture of inclusivity and mutual support. We emphasize the importance of active participation in the team to help newcomers feel welcomed.
00:17:07.440 We remind existing team members to be attentive and proactive in assisting newcomers, encouraging them to reach out and offer help when it seems necessary, as some individuals may be shy about asking for it.
00:17:33.390 Does that answer your question?
00:17:42.120 Thank you very much for your attention and for the discussion today!