Onboarding
May 1, 2019 · 11 min readMy aim with this blog is to document how I like to run my teams, and note the various things I’ve seen during my career. When meeting new people, there is a tendency to cover old ground (I’m skilled at this), which is useful in the sense you have a common understanding, but it can be time consuming. A few times recently I’ve wanted to provide substantial opinions, but the communication format doesn’t lend itself well to that style. With this in mind, I’m writing my thoughts down, so folks can read in an async manner, comfortable to them.
This post is going to focus around onboarding a new colleague into your software engineering team. It’s aimed at Tech Leads/Engineering Managers (potentially the same depending on your org).
Recruitment done, now what
I am going to detour around the recruitment aspect, for now, and consider the “what next”.
So, recruiting into your team was probably hard work (unless you have brand appeal, or your business is in a niche market). It was probably a lot of reading resumes, lots of meetings with recruitment teams (in house or agency), and ultimately lots of technical tests and/or face to face chats with candidates.
I’m tired just thinking about all the work involved before you can send the contract out to your new team member.
In this post, the successful candidate for your team was Louise. Louise has a 6 week notice period at her current gig, but is really looking forward to starting her new role with you. She has the passion to help drive the team and really focus on quality. She’s a star.
Great, however, the clock is now ticking against the big machine of corporate IT, and Property Services, and, and, and…
We need to sort the following:
- Find a desk (replacement, or additional team member?).
- Find a chair that hasn’t been abandoned six times because 2 out of the 5 wheels are missing (that’s the only spare chair).
- Order the laptop (what kind, what spec).
- Order 2 monitors (and have the chat about why 2 monitors again. You’ve had the chat before, and you will have this chat again. You’re good at it now).
- Order the keyboard / mouse / track pad (there are 6 lying around, with no owner, but they look awful [1]).
- Worry about if Louise sits next to Alan, there will be trouble (dealing with Alan is also on your long list of stuff to sort “soon”).
- Sort access to the code, and work management tools (more than likely a task for the first day, but if you are not in control of granting access, you need to have the team that is, ready).
- Make sure you are available on their first day (if office based, be in the office. If distributed, you need to be free for video calls etc).
If you do not deliver on the above in six weeks, you have failed. To me, this is your key role now. Fail on the above, and Louise’s first impression of you will be of failure. Failure to deliver. If you fail to deliver the above, what else will be missed (pay reviews, promotions, training budget, etc).
Work area
Clean the desk. No discussion. When Louise starts, the desk should be inviting to her. It should not be 2 old PCs, that no one “knows” about, some old books no one can decide if they are allowed to throw away [1].
You, personally, clean it. You set the standard for the team.
The desk should be spotless. The chair should be clean, not stained, or dusty, or god knows what else.
This is on you.
Equipment
This is a pet peeve for me, so you are forewarned here. This seems alien to companies (maybe not in the US), but ask Louise what kit she would like (you’re in touch with Louise right).
Sidebar - Are you in touch with Louise? Right now, her current employer are in the war room, disaster mode. They have lost their star, the project will fail. They need her. Money, perks, package, projects, whatever is required. They are trying to convince her to stay where she is.. Be aware of this.
Back to equipment. Ask, ask, ask. I am fully aware that there will be company policies etc, but hopefully a developer has some choice of Windows, Linux, Mac. If you hire me as a developer, and give me a Windows machine I am going to struggle (honestly). I’ve not used one in over a decade. I’m not going to be as productive.
Here comes my pet peeve - the form factor. I’m not kidding. I do not want a 15 inch MacBook Pro. This is a personal thing, and that is why you engage with your new colleague.
I’m on the train a lot, and I work in several different offices and at home. A 13 inch MacBook Pro is the perfect form factor for me. It fits onto a train table, easily. It easily fits on my lap if I don’t have a desk at the office. It does not weigh as much as the 15 inch. My current gig, when I work over in head office, is a 25 minute walk up a hill, lovely scenery, but the hill! That extra 2 inch of laptop would pain me. That extra 2 inch of screen is not worth it either. In reality you’re likely to have extra monitors at the office or home.
I once started a job, and I was presented with two laptops. Both 15 inch. A Dell, and a MacBook Pro. I have no idea what I was suppose to do with the Dell. None whatsoever.
People
Teams eh. Full of people. Full of personalities. It’s a tricky rope walk. Take some time to ponder where Louise is going to sit. Is it the “replacement” spot. Is it isolated. Is there some weird office joke about the desk (don’t ask, it’s a real thing).
Would Louise pair well with Rachel, or Ross?
Was Ross going for the same role that Louise was just offered, hmm, that may need some thought.
First day
This is it. You asked Louise to get there a little later, so you had a little time to get in and double check all was just so. You check one last time that the desk is clean from rubbish, the equipment is ready for her to unbox, and that it reflects positively on your team.
And, you are there, first and foremost. Not delegated to Rachel or Ross, because of $reasons
.
The first day is overwhelming anyway, which can often be compounded with 100 new faces, corridor meet and greets, meetings (why would you do this), hand shakes etc. I personally would not remember all that, so it would be wasteful on everyone’s time.
Again, at this point, it’s worth re-iterating that Louise is an Individual Contributor in the team. If you are onboarding different levels within the org, the details would be different, to some extent.
It’s about the individual, not the process.
Since you need to focus on the individual in all of this, below is the perfect first day for me if I was an Individual Contributor in your team.
- Hi to my boss (overview of what will happen in the first few days, no time slots for me to worry about just yet).
- Hi to my team (overview of what they are currently working on - context basically. I was once given a mentee the day before we were going live with a massive product refresh, I dread to think what this person thought of me, the team, the process, the org).
- Get me to my desk (phew, made it).
- Cup of coffee (where is the coffee machine? Chat with so and so at the coffee machine, they seem really nice, great start).
- Unbox all of the equipment, left alone (can see my team and boss, all seems well, no worried looks from anyone that they picked a bad’n).
- Setup my laptop (my development environment is fairly automated, so I’m up and running really quickly).
- Somehow, no idea how, my boss notices that I seem calm and ready for the next challenge of the day.
- “How you feel about fixing a silly typo we deployed last week?” [2]
- I feel pretty excited (and worried, but that’s normal).
- Rachel, the engineer next to me, now shows me where the code is, brief overview of the pull request process, and tells me once merged to master, it will be deployed for me. “Don’t worry about that bit, we will cover that later in the week, as we are keen to get your input”.
- It just gets better, starting to get a real vibe I made the right choice (I’ve been worried for 6 weeks actually!! My previous employer offered me a great package to stay!).
- I then start to poke around and see the documentation for developing the product is a little light (it always is). I see that there seems to be some automation files to spin up the environment.
- Environment spun up, ready to start.
- Somehow, again, my boss knows it’s a good time to chat - “Lunch”.
- I’m asked if I want to grab lunch or just get a quick tour of the surroundings. This is good as it sets precedent, lunches are not skipped, it’s part of the day etc.
- Chit chat about the morning.
- My boss talks about the next few days (no time slots again, vague, but contextual - helicopter view).
- Back to desk.
- Fix typo, raise PR.
- 3pm, first deploy.
- Left alone, with Slack/Wiki reading up on everything I can grok.
Remember everyone will differ, and the process needs to flex. But don’t pack everything into the first day is the key takeaway. If you are in a position to get an engineer to deploy something in their first day, try. It doesn’t have to be of any importance, maybe you have a humans.txt file or something.
It’s not about testing the individual either, it’s about re-enforcing to Louise and the team your principles. Engineers generally want to get hands on, this is a good way to do that.
At the end of the day, having deployed something to a system is more rewarding than meeting Joel in HR, and Elena in the Machine Learning team. That’s not to say these meetings should not happen, they should, but not on day one.
Introductions should be gradual and relevant to the expanding universe your new team member finds herself in. Maybe Louise is going to need to work with Elena in Q3, but it’s Q1, and Louise doesn’t need to know that yet, don’t overwhelm.
This is where the manager earns their money in my opinion. It’s a constant balance of knowing the individual and whether you need to hand hold or back off. It’s hard, very hard (or it has been for me, in the past). You need to fundamentally show that you are available, and approachable, but not micro managing.
First week
Louise comes back for day 2, that’s good. Now we start to ease into all the other stuff folks normally cram into day one.
So, team culture.
Is it documented in some form of process (I’ve recently heard it called “habits” to lesson the chagrin of developers hearing the word “process”). Can Louise go and read it somewhere, or is it more symbiotic. This is likely going to depend on the team and company, but Louise needs to know that.
Hopefully your team is using some form of communication tool. Let’s say it’s Slack. You need to curate some channels Louise needs to know about. I’d recommend inviting her to team channels, and then sign posting some other channels Louise may be interested in, but let Louise choose. Your job is to curate the list (again this depends on the org, maybe you have 1000 slack channels etc). It will be interesting to know what she chooses, and helps provide you knowledge of interests.
So, Louise fixed and deployed something yesterday, that’s awesome. Now provide context to all of that. Where Louise and the team sit in the larger business unit. A little backstory of the team. Be mindful of how in depth this backstory is, it’s largely irrelevant and more about you.
Now we need to start talking about terminology that Louise needs to know. Acronyms for example, it’s probably an alien language, or could be. Does the team use a certain emoji for certain situations in Slack, to acknowledge or block something. All that kind of stuff may be in your process/habits wiki, it may not. Again, curate this knowledge and sign post to where Louise can get more. These are the things that make teams stick together, but it can also be intimating to incomers, be aware of this.
Summary
The best experiences I’ve had in this space, is when it didn’t feel planned, yet everything happens in a smooth/effective manner. It felt like I naturally ended up at a given situation at a designated time, that my boss was waiting for, but they didn’t actually seem to be waiting.
Now it’s simply a matter of retaining Louise so she can make the difference you know she’s capable of.
Good luck.
Footnotes
- [1] Why is this always the case? Why will no one bin old/redundant kit? Why does no one come and collect it. Really vexes me this does.
- [2] Fixing a typo, whilst sounding trivial, is an interesting item to give to someone. At my first gig after university I was given some software to work on, and saw a typo. Easy fix, right? Wrong. There was so much abstraction, framework scaffolding, it boggled me for a couple of days! Whilst that may reflect badly on me, I’m not so sure.