The Art and Science of Developer Onboarding: Insights from Google
Parthipan N.
Full-stack Developer | JavaScript | TypeScript | Python | MERN | AWS | PostgreSQL
Key Insights from “Developer Productivity for Humans†Studies Published by Google
In the software industry, the journey of a new developer at an organization is crucial, not only for the individual developer but also for the organization at large. This process, commonly referred to as ‘onboarding’, plays a critical role in shaping the productivity and success of both parties.
A few experts at Google delved deep into research titled “Developer Productivity for Humansâ€. One of the aspects they studied was developer onboarding and the metrics behind it.
The following insights, drawn from the comprehensive study conducted by experts at Google, shed light on the intricacies of onboarding and ramp-up in software development.
For the ease of the readers, I have condensed the important findings and highlights from the report published on this topic. If you are interested in reading the complete report, please look at the link attached in the reference and further reading section of this article.
Key Insights on Developer Onboarding
The Human Factor in Productivity
The research underscores the importance of understanding and measuring productivity in a human-centred way. It reveals that junior developers, who are less experienced, face unique challenges compared to their senior counterparts. These challenges stem from their relative unfamiliarity with tools, infrastructure, languages, and organizational nuances.
Tailored Onboarding: A Critical Need
A significant finding of the study is the need for onboarding programs to be tailored to the individual’s background and the team’s specific requirements. For instance, experienced developers prefer engaging with real tasks on their primary projects rather than participating in generic training sessions. This preference highlights the necessity for onboarding programs that are adaptable and relevant to the developer’s actual work context.
Measuring Ramp-Up Time
A novel aspect of this study is the development of metrics to measure ramp-up time. This measurement is crucial for assessing the effectiveness of onboarding resources and practices.
The research at Google diverged from traditional methods that compared newly-joined developers to tenured ones, instead choosing to evaluate developers against their own progress.
Key metrics included active coding time per line of code, reviewed lines of code, and submitted lines of code, which correlated with developers’ self-reported efficiency in performing various engineering tasks.
The above metrics of an individual were aggregated on a weekly timeline These were then normalized as a percentage value of the stable aggregate value that an individual eventually reached (referred to as the engineer’s “cruising speed†in the research).
Cruising speed on Week X
= ((aggregate of the individual on week X)
/ (stable aggregate of the individual at week N))*100
Ramp-up Time = N Weeks
For a cohort of new joiners, the ramp-up time was inferred as the number of weeks it took for the difference in the aggregate percentage (aggregate obtained from all the individuals’ cruising speed in a specific cohort) value to become approximately 0% and remained that way for at least 4 consecutive weeks.
The key point here is that the metrics don’t compare an individual against another or a generic threshold but rather an aggregate of metrics measured for individuals against their own previous week's metrics until they reached a stable value.
The Impact of COVID-19 on Onboarding
The pandemic brought unique challenges to the onboarding process, particularly with the shift to remote work. The study found that developers who joined during the pandemic took longer to reach their “cruising speed†compared to those who onboarded pre-pandemic. This highlights the need for organizations to adapt their onboarding strategies to suit remote or hybrid working conditions.
Future Directions
Based on these findings, several recommendations emerge for enhancing developer onboarding:
- Differentiated Approach: Recognizing that new developers are not a homogeneous group, a one-size-fits-all approach is less effective. Tailoring the onboarding process to individual experiences and backgrounds can significantly improve ramp-up efficiency.
- Interactive and Practical Learning: Encouraging live coding collaboration, mentoring, and interaction can help new developers overcome common onboarding challenges, such as the inability to ask questions or build rapport in remote or distributed team contexts.
- Well-Designed Starter Projects: Selecting appropriate starter projects that align with the developer’s level and learning goals can facilitate a smoother ramp-up process.
- Streamlined Documentation: Centralizing and streamlining onboarding documentation to act as a self-contained curriculum can empower developers to make informed decisions about their learning path.
- Feedback and Continuous Improvement: Using surveys and qualitative research to gather feedback on onboarding experiences can help organizations identify areas for improvement and refine their onboarding processes.
Conclusion
Effective developer onboarding is crucial for fostering a productive and satisfied engineering workforce. By incorporating human-centric approaches, tailoring the experience to individual needs, and continuously measuring and refining the process, organizations can significantly enhance the onboarding experience. This approach not only benefits the developers in their professional growth but also contributes to the overall success and innovation of the organization.
Reference, Citation, and Further Reading
- C. Green, et al.,†Developer Productivity for Humans, Part 5: Onboarding and Ramp-Up†in IEEE Software, vol. 40, no. 05, pp. 13–19, 2023. doi: 10.1109/MS.2023.3291158 [Published Artifact Link]
This article was originally published on my Medium blog