How to Onboard Your Newly-hired Software Engineers

How to Onboard Your Newly-hired Software Engineers

“Hey, I’ve sent you an email which contains all the materials you will need to get familiar with what we do. You will find 30-hour long videos that will help you understand the business domain and around 15 different tools and components to set up on your machine to start playing with our source code. Any questions? Cool, welcome onboard!”

A software engineer onboarding is one of the most important processes that affect the new engineers' productivity, morale, and retention for the first year, at least. Unfortunately, many software organizations invest a lot of money, time, and effort in sourcing and interviewing processes, but underestimate the importance and impact of crafting some solid onboarding plans and checklists for their engineers.

In order to have an efficient and effective onboarding, software development teams and their managers should collaborate together to come up with a task list that can be completed during the first month, and it should cover many aspects that help the new engineer to gain familiarity and confidence.

For any newcomer to be ready to kickstart his career with the team, these are some of the topics we need to focus on in the first days of landing within a new team:

  1. Company culture and core values.
  2. Product business domain knowledge and orientation.
  3. Team structure, dynamics, and how that new team work together and with other teams or departments.
  4. The technology stack used, and tools the team utilizes in the software development life cycle.
  5. Having 1:1s with team members, including engineers, managers, and also some people from different teams as well.
  6. Day-to-day activities and job duties and responsibilities.
  7. Clear expectations of what is expected from the software engineer, and from the company.

Below are some of the most important checklist items that should be included in the onboarding plan for a newcomer:

  1. Ensure employee access to all important accounts and tools (email, github, slack, development environment, etc.)
  2. Have an assigned onboarding buddy who will be responsible for helping the newcomer to complete the tasks list and guide him when needed during the onboarding phase.
  3. Prepare a list of important slack channels, mail aliases, and recurring meetings and events that he/she should be invited to.
  4. A recommendation of reading documentations and/or videos that explain the business domain and the product/project the team is working on.
  5. A virtual space for the newcomer to share a brief about him/herself, his interests, and preferences as well.
  6. Clear responsibilities list for the role.
  7. Technical onboarding materials which include tutorials and other stuff required to speed up the familiarity with the technical stack the newcomer will be working with.
  8. List of the meetings that should take place during the first weeks, these meetings include business and technical orientation, source code walkthrough, 1:1s with team members, and any other needed meetings.
  9. List of shadowing activities that he/she should be pairing with the onboarding buddy working on.
  10. The newcomer should find 3–5 issues waiting so that he/she can start working on them, getting familiar with the code base, the process the team follows and, of course, the assigned issues should be straightforward and clear enough to help the new starter to understand the development process in our team, then they focus on getting familiar with relevant parts of the code base, and then with getting basic domain knowledge.
  11. After 2–3 weeks, the newcomer can have a story assigned to him, and with support from the onboarding buddy, he/she could be ready to start getting things done and delivered.

It is worth mentioning that, to make the onboarding process looks more exciting and engaging, you can add a set of missions to the newcomer, like fixing a performance bug, documenting something in a way that would help the team and make their lives easier, or just using the product we are working on and enhancing anything looks valuable.

Generally speaking, We need to have a task list to keep the new hire busy for three-four weeks — maybe more or less based on his experience and environment dynamics. After that, it is clear what tasks should be best for them to continue working on for the team.

One last important thing, that we need to receive continuous feedback from the newcomer regarding the onboarding process, the onboarding buddy, and any other stuff that we need to hear about, and this feedback should help us enhancing the process and finding ways to improve it moving forward.