Current Problems with Engineering Onboarding

Codeflow
3 min readMar 19, 2020

--

As companies scale, there are a number of hurdles each faces. The first challenge is raising capital. The second is acquiring talent. And the third is onboarding that talent. No matter the stage of the company, onboarding remains a bottleneck in increasing capacity and improving productivity.

Onboarding is the journey an employee takes from zero to hero. When an employee is hired, they are not familiar with a company’s processes and cannot contribute. However, onboarding familiarizes the employee with the company’s knowledge base and enables them to help the business grow.

Furthermore, the implications of employee onboarding are significant and last much longer than when a new employee starts work. Without effective onboarding, the impact to productivity will carry across the next couple generations of employees hired — costing a team time and money.

Specifically, we focus on the onboarding of software engineers. There are multiple aspects to onboarding a software engineer; there is general onboarding (becoming familiar with a company’s tools, rules, and standards), business context onboarding (understanding the business and use case that the company serves), and technical onboarding (becoming familiar with the codebase(s) specific to a team). We hone in on technical onboarding, the final piece that enables new engineers to contribute.

The status quo for technical onboarding today is unideal, to say the least. Typically, companies employ a buddy system where they pair a senior engineer and a recently hired engineer with a new engineer to guide them through the codebase. A large part of the experience is ‘throwing engineers into the deep end of the pool’ and letting them grapple with the codebase. Companies typically augment this with some form of documentation ranging from Confluence to screen recordings or presentations. On average, it takes engineers much more than even 2 months that get fully ramped onto a codebase and make contributions at the level of the average engineer on the team.

After conducting over 75 interviews of software engineers, engineering leads, and engineering managers, we’ve arrived at three focal inefficiencies that exist when onboarding.

  1. Too Detached from the Codebase: Today’s onboarding documentation is too far removed from the codebase. Companies typically use options like Confluence, wikis, READMEs, and Notion to maintain documentation that new engineers can read. However, these solutions only provide new engineers with a high-level understanding of the codebase and lack the context an engineer needs to start making meaningful contributions to the code repository.
  2. Goes Out of Date Easily: Perhaps the biggest similarity between software engineers is aversion to documentation. Companies that hire and onboard frequently also tend to have high code velocity. Thus, documentation frequently goes out of date and is difficult to maintain. Doing documentation today is a separate task from software development and frequently falls on the back burner. Some documentation options, like taking screen recordings of code walkthroughs, go out of date as the codebase changes and re-recording is cumbersome.
  3. Too Repetitive and Disorganized: The variety of documentation techniques not only differs between companies but also between teams in a single organization. The lack of centralization and standardization make it difficult to work cross-functionally and maintain effective onboarding processes. Furthermore, the buddy system quickly becomes repetitive for senior engineers training new engineers and ties up valuable developer time.

Here at Codeflow, we believe that onboarding is an important enough task with inefficiencies that are worth solving. We envision a centralized, easily maintainable onboarding experience that it integrated directly with the codebase. To give you a taste of how we envision onboarding, check this example out.

Moving forward, we plan to analyze the best practices of other companies and share some of our own. Sign up for our mailing list and stay tuned for more updates! Check us out at https://usecodeflow.com/.

--

--