Spoiler alert: Don't let them touch code on Day 1.
Onboarding is one of the foundations that companies and managers need to get right for new software engineers to become productive, loyal, and engaged employees.
We all know this: First impression matters. The first impression for a new software developer starts the moment they join the company, and that impression lasts for a long time, sometimes for the duration of their tenure with the company. Set the bar high by making them feel valued and setting them up for success.
The three stages of onboarding new software engineers
There are three main stages to onboarding software engineers. They are:
Stage I: The Big Picture
Stage II: The Process
Stage III: The Code
As you can see, learning about and writing code is the last stage, which is for excellent reasons. As an engineering manager onboarding a new software engineer, you will need to guide the engineer, so they don't get tempted to start coding right away. They need to understand the big picture and know about the processes so that they don't encounter landmines that will slow down their progress later.
Let's take a look at what to cover at each stage of the onboarding journey.
Stage I: It's About the Big Picture
The goal of stage 1 is for the engineer to understand three critical pillars - the company, the product, and the role. On the company pillar, they need to know the culture and values, the dynamics, and how things get done.
On the product pillar, it's recommended that they play around with the product and use the features as a typical customer would. Doing this will build their customer empathy and accelerate their efficiency when they start writing code.
The role pillar ensures they understand what's expected of the role. This includes how they work with their peers, stakeholders, and colleagues. What they need to deliver in the role is critical to their success.
When should a new software engineer learn more about the company, its culture, and its values?
Small startup: On day one
Large enterprise: Within the first three days
When should a new software engineer learn more about the product, its features, customers, and value proposition?
Small startup: Within the first two days
Large enterprise: Within the first week
When should a new software engineer understand what's expected from their role, who they will be working with, and what outcomes they need to produce?
Small startup: Within the first three days
Large enterprise: Within the first week
*When should a new software engineer start talking about their career aspirations with their manager?
Small startup: Within 30 days
Large enterprise: Within 90 days
Stage II: It's About the Process
Every software engineer can write code, but code just sitting on a developer's machine is not much value to the company or customers. One significant risk engineering managers need to prevent with new software engineers is the Not Invented Here syndrome. We want to avoid re-inventing the wheel for things that have already been done or defined in the company.
The process stage of onboarding ensures new software engineers know how to get their code to the hands of customers, leverage current systems and mechanisms that already exist within the company, and become team players that contribute to the success of the team that they are joining.
When should a new software engineer start being on-call for their team's services, especially if the company practices You Built You Release It (YBIYRI)?
Small startup: Within the first month.
Large enterprise: After they've shadowed an on-call rotation. Usually after a few months.
When should a new software engineer put their hands up to drive a team activity, e.g., running a retro?
Small startup: After they've seen how it's done at least two times.
Large enterprise: Same as above.
When should a new software engineer be comfortable being an Approver for someone else's Pull Request?
Small startup: Within 15 days
Large enterprise: Within 60 days
When should a new software engineer know about the build and release process?
Small startup: Within the first week
Large enterprise: Within the three weeks
When should a new software engineer start being an active participant in various guilds and charters, e.g., Frontend Guild, Technical Architecture Guild, etc.
Small startup: In one month
Large enterprise: In three months
When should a new software engineer start contributing to technical discussions?
Small startup: In three months
Large enterprise: In six months
When should a new software engineer have good knowledge of operational aspects of engineering?
Small startup: Within the first 20 days
Large enterprise: Within the first 60 days
Stage III: It's All About the Code
The last and final stage is the favorite stage for most software engineers. Coding is their comfort zone. One of the reasons this is the final stage that a good interview process would have ensured that the new software engineer has the required technical capability for the role, and this stage is relatively straightforward.
When should a new software engineer set up the development instance on their machine?
Small startup: On the first day
Large enterprise: Within the first two weeks
When should a new software engineer make their first commit?
Small startup: Within the first three days
Large enterprise: In the first two weeks
When should a new software engineer expect to see their work live on production?
Small startup: Within the first ten days
Large enterprise: It depends. The next release cycle after their first month.
When should a new software engineer learn about best practices and coding standards?
Small startup: Within the first week
Large enterprise: Within the first two weeks
When should a new software engineer understand the system's architecture that they'll be contributing code?
Small startup: In the first week
Large enterprise: In the first month
When should a new software engineer start contributing to story estimation?
Small startup: After your first sprint
Large enterprise: After two sprints
One sprint=Two weeks
When should a new software engineer independently pick up and complete a task from the team's backlog?
Small startup: Within the first sprint
Large enterprise: Within the first month
Regardless of whether they are a junior software developer or a senior one, you, as their engineering manager, should have some tasks that they should be able to pick up independently based on their seniority level. Make sure you communicate the expectation with them.
Best practices for onboarding new software engineers
As an engineering manager who's onboarded hundreds of new software engineers at tech companies ranging from interns and graduates to staff engineers, there are five best practices:
- Design an onboarding journey with clear milestones, from getting to know about the company, understanding the customers, learning about the product, knowing how to get work done, and lastly, being aware of coding standards. Do not skip milestones.
- Create an onboarding document that can be collaborated by both parties. Think Google Docs, Trello, or the likes. This would help avoid the new hire from feeling like they are asking too many questions if they were to do it via slack or in-person.
- Create a checklist of tasks but indicate which ones are important and which ones are nice-to-know.
- Provide an architecture document, technology vision, coding standards, etc., as a must-read before the engineer jumps into coding tasks.
- Assign a mentor buddy (a fellow software engineer) who has a good understanding of the role of the new software engineer to help onboard them and be the single point of contact for them.
- Provide a frictionless device onboarding and management, for example, giving Administrator access on the laptop for software engineers to install necessary programs and libraries, firewall policies that allow download packages from 3rd party domains, etc.
- Help them get early wins - be it fixing a minor bug, contributing to the team activity, or sharing their subject matter expertise. The goal is to get them excited and energized right from the beginning.
- Give them exposure to executive leadership and high-level strategy. They don't need to have a 1:1 with the CEO or CTO if the company is large and the leadership is five levels above their current status. However, hearing from the leadership via something like a company All-Hands (or Town Hall) will give new hires a glimpse of company culture and business priorities.
High-performing software engineers are happy and engaged engineers
The success trajectory of software engineers at a company relies heavily on the onboarding process they encounter and the first manager they have within the company. A great engineering manager is intentional with onboarding new software engineers and is thoughtful about the engineer's long-term success and growth.
Apart from coding and technical tasks, there are a few wholesome activities that an engineering manager should plan as part of the software engineer's onboarding process:
- Make them feel welcomed and included in necessary Slack, Microsoft Team, or any other communication channels
- Include them on mailing lists and calendar invites so they don't miss out on company or team-wide activities and announcements.
- Set up a regular 1:1 with them - minimum weekly to begin with
- Help them learn about social groups and make connections with fellow employees
- Be clear about role expectations what success looks like in the role.
In a recent Microsoft survey of 30,000 workers in 31 countries about work, 41% of workers globally are thinking about quitting their current jobs. It doesn't require a genius to figure out that tech companies will be the ones most impacted by this, as tech is one of the fastest-growing industries amidst the global pandemic. As an engineering manager, you will likely be onboarding a new software engineer soon, so make sure you follow the best practices and go the extra mile for your new hires so they can go the extra mile when you need them to.
CTO Toolkit - Essential tools & resources for technology leaders
If you want to transform from being a mediocre Engineering Manager to a masterful one, check out the CTO Toolkit. It's designed for technology leaders by a technology leader and contains essential tools & resources for CTOs and the likes:
- Organization Design
- Hiring
- Technology Strategy
- Engineering Excellence
- Career Development
- Alignment & Delivery