Onboarding
This is a combined guide/checklist for onboarding new members into software development teams. Some of it is more relevant to 'in the office' vs working from home* Other parts are more relevant for more junior developers.
For many years I was a contractor which meant joining new organizations quite frequently. I had a mixed bag of onboarding experiences during that time, and generally the subsequent work experience followed the impression gained during onboarding.
As a tech/team lead or scrum master I've been on the other side of the equation a few times as well, bringing in a mix of junior, senior and contract developers and testers into my team and the organization I was working for.
I have tried to do a decent job and got some recognition for the quality of onboarding my teams provided, especially for recent graduates and new entrants to the industry.
One key idea I've carried with me is that the first couple of weeks for a new hire set the tone for their time with your team. If you want them to be proactive, it's your job to get them on the path to contributing early on.
Why onboarding matters
The bigger the project the harder and longer it takes people to become productive. You need to learn about
- Why and how the business functions
- The people on the project and how they work together
- The existing or proposed technical solution
- The way the project works, its flow
- The tools and software used on the project.
At the same time, the more important it becomes to get productive as quickly as possible alongside the feeling of becoming a valued member of the team and the organization.
A good onboarding plan can help the new joiner get a grasp on the above.
Working with Human Resources
A good relationship with HR can smooth the onboarding path considerably* Their goals and yours are aligned on getting the new person inducted into the organization as quickly as possible* Like you they're overloaded with work, and you're much better off owning as much of the process as you can.
The Materials List
This is a list of everything you're going to give or send your new joiner
- Printed maps of where everything is. Highlight the coffee area, the loos. If your team has fixed desks, write the name of everyone in your team and in the immediately adjacent ones on it. Include people 1 and 2 steps up the org chart as well.
- Login to HR system Give them a few minutes to check their details and how to book time off
- If there are any HR-required activities here, get them done now
- Likewise, there's going to be some online training to be done. Make sure they're aware how to get to it, what needs to be done this week and what can wait for next week or beyond. You need this to be as friction-free as possible since (whilst important) it's not
- Printed copy of the team charter. You want them to focus on this early.
- The Org Chart, with their name on it. The need to know where they fit into the organization.
- Email with info about all the key players your team interacts with.
- Email with links to the below. If you have this list in your wiki already then so much the better.
- New joiners guide / FAQ
- Your Jira board or equivalent
- Repo and build system for the current project
- Production monitoring tools
- A list of all the slack channels they need on Day one and a list of all the slack channels they'll need later. Be ruthless about keeping stuff out of the Day one list.
- Your review and deployment process
- Visual Studio subscription if necessary.
Timeline
This is a combined checklist and reminder of when to do what. I tend to print it out and use a paper copy, writing the date when I ticked something as well as scribbling anything else that comes to mind*
After Offer Acceptance
- Get their email and write to them. You're setting an expectation about communication from the very offset of your relationship.
- Update the team on the new hire, role and start date.
Month Before
- Ping the new joiner to remind them you're looking forward to them joining your team.
- Update the team on the new hire, role and start date.
Week Before
The goal for this week is to keep the new person on the "glide path" to day 1.
- Check with HR who is greeting the new joiner
- Agree arrival Date, Time and Location. Inform HR or vice versa.
- Confirm receipt of equipment, all setup with the candidate if they're being posted out. Otherwise check with tech.
- Active Directory or other credentials?
- Do they need an auth on their phone?
- Is VPN Access needed / sorted?
- Clear calendar for -30 minutes to +2 Hours at a minimum.
- Review new joiners CV and LinkedIn profile.
- Review onboarding docs from HR.
- Prepare the materials list!
- Send them an email to their work email address to check it doesn't bounce. Fix it if it does. This is a great chance to get an idea of their ways of working so ask about whether they're an early bird or a late arriver. Also find out about dietary requirements - you'll need this for booking team lunches etc so you might as well get it now.
- Work out what you're going to ask them to pick up, and have in mind what information they need and where they'll get it. The goal here is for them to do some meaningful work so that they can get familiar with process, personalities and tools, so pick something relatively straightforward in nature. The goal here is that this should be 'finished' by the end of the week for whatever definition of finished you use. For my current team, the answer is 'in production'.
- Remember to incorporate the new person into your sprint plan - tasks and capacity!
- Update (again!) the team on the new hire, role and start date, and arrange with a member of your team to act as 'onboarding buddy' to help the new joiner feel at home within the team. I like to ask the person who joined last to do this, as they're often more sympathetic and can remember all the things you forgot. If they're a junior then it gives them something to put on their achievements wall.
Day 1
TIP: Your day 1 all about setting your new team member up for success, building on the prep work you did already.
- Meet new person at the agreed location. (HR might manage the 'welcome' experience.) If possible arrive a few minutes early - they might be early or possibly late depending on their new commute experience. You on the other hand... Bring something to keep yourself busy if necessary.
- Get whatever goodies from HR are needed. If there's a security fob go and check it and make sure the new joiner knows how it works for the car park, the building and the office / level.
- Introduce them to the team, on your way to reviewing the materials list.
- Talk about your teams cadences - when and where you hold scrum ceremonies, or your equivalent.
- Go through The Materials List.
- Make sure they've got access to all the relevant systems, with them.
- Arrange a twice-daily 30 minute catch up session - first thing and last thing. High-frequency 1:1s. Book a room.
- Review their calendar with them, making sure you've invited them to all of the repeating items they need to be at.
- Get the Building! Obviously the details on this vary but they need to be able to get your primary product running under a debugger 'on their machine' (note to self: DevContainers!). Their onboarding buddy should be guiding them through this, from a script you have in outline in Jira and ideally as a shell/Powershell script.
- Review your 'first task' that you worked out last week, with them and their onboarding buddy, who will ideally be able to pair with them on it. Make sure that the buddy knows they're taking the back seat.
- Set the goal of completing all of the HR stuff that the new joiner needs to do. There will be several hours worth of videos to watch.
- Feed back up the totem pole regarding how day 1 went.
Day 2
TIP: Day 2 has perhaps the most crucial thing for the whole week - explaining how your build process works.
- First thing, handle any questions or HR business.
- Get feedback on the process from the new starter.
- Explain how you build your product. Really explain it. I'm going to write up some notes on this, so keep an eye out!
- Keep an eye on how the buddying is going.
- Arrange for a couple of other people from the team to take them for lunch.
- Check progress on first task.
Week 1
- Informal chat with onboarding buddy to identify any areas that need looking into.
- Run those review sessions! Do them away from the team - these are 1:1s after all.
- Go over in a bit more detail how your team fits into the organization
- Team OKRs can be helpful here, if your organization is making effective use of them
- How your current work fits into that picture.
- Keep an eye on that 'first task' to make sure there are no extraneous items blocking progress.
- This is a great time to do any 'nudge engineering' on your team. If you want to promote more pair programming (for instance), make sure that the new joiner does lots of pair programming.
New Seniors
If you are bringing in a more senior team member, make sure there's some forum for them to demonstrate why they are joining team. Can they contribute to code reviews, backlog refinement, estimating early on?
End of Week 1
- Review the week with the new starter.
- Review the 'first task' and confirm it got done. If not, it is on me rather than the new joiner.
- Agree a couple of OKRs for the rest of their first month. It might be useful to review what's the 'one job' that the person has been hired to do and to schedule a review of that for the end of month 1. The goal here is to make sure you and they are aligned on what the expectation is.
- Confirm all of the HR stuff has been dealt with
- Make a list with them of the other stuff they need to learn. Remind them that they can use their calendar to block out time to learn and that you can help them identify the materials and people who can help.
- Get feedback on the process from the new starter.
- Again, feedback up the totem pole.
:::tip Get Feedback Senior Engineers can offer valuable feedback on your onboarding process. Don't neglect to ask them for ways to improve it. :::
End of Month 1
- Review the month with the new starter.
- Get feedback on the process from them.
- Review how they're dealing with their 'one job'. Quality, timeliness. If it is working out then plan to add some non-core stuff to get them started on their pathway within the organization.
Making sure it's all working out
Remember the new starter is on probation This means a couple of things:
- They are wanting to impress but at the same time worried about making the grade
- Not used to the implicit stuff you and everybody else 'just seems to know'.
- They might not be the right person for the job.
At the end of every day make a list of everything that went well, and everything that went the other way. Track what you did about it. If they're not suitable you need to be able to defend every point on your list.
Getting feedback on the process from the new starter
- What's going well
- What's not going well - how can we improve it for you?
- Scale of 1..10 how are we making you feel appreciated
- What can we add or remove to make it work better.