Onboarding developers like a pro

Onboarding developers like a pro

Or: Why they leave your company too soon

Featured on Hashnode

As a freelancer in the last few years I had the pleasure of both onboarding myself and having a lot of “first days" with clients every time I start a new project. I also met people from various company cultures with their own good or bad past experiences which all started - in the first day.

These first few days are crucial because it’s the first time people see your company, how it works and how well (or not) it is organized. This impression acts as the cornerstone of your relationship and time together.

Having a great first day (or days) is beneficial not only to new members but also to managers and others in order to build a strong and productive company culture that integrates new members easily, creates a smooth flow and is well organized.

Like relationships, people usually tend to remember the first and last days more so it also can benefit or harm your reputation in the future.

So for those first days to be great, here are some tips I collected over the years:

(P.S most tips are also helpful to non-developers)

Say hello

daniel-jensen-UDleHDOhBZ8-unsplash.jpg

Yes, simply saying hello on this day has a great impact.

Why?

First, Nowadays with COVID-19 and remote working it's easy to forget there is a human on the other side because come on, it's not a person, it's an avatar of a cat or a koala bear that just happens to like Vim.

But the truth is it's a person with feelings and right now he or she:

  1. Doesn't know anyone.
  2. Doesn't know what to do.
  3. Doesn't know who to ask help from.

Secondly, There is nothing worse than going to a place where everybody ignores you (oh god it's 1st grade all over again), so the least you can do is to write at the beginning of the day "Hi X, welcome aboard". First in private so they'll know you know they are here and then in a group chat or email so other people will know too.

So let everyone know there is someone new in your company so they can greet them instead of thinking there is a new slack bot that deploys to production.

Create their user accounts

cookie-the-pom-siNDDi9RpVY-unsplash.jpg

Have their Gmail, Slack, Teams, Github or anything else you use for work ready or have someone do this before they start because right now, surprise surprise, they are locked outside of the system.

You can even use SSO (Single-Sign-On) Solutions as Okta, OneLogin etc' to have "one account to rule them all" and by a single login to have access to the rest of your services.

Have a knowledge base

will-van-wingerden-dsvJgiBJTOs-unsplash.jpg

Whether it's README.md Confluence, Notion or a folder with 50mb of PNG files (it's a start), having any shared source of knowledge can help the new person to:

  1. Know how the system looks like
  2. Know what the system is made of.
  3. Know what’s the future plan (the roadmap)

If you develop an API there is a plethora of API documentation tools such as swagger (OpenAPI) and if you are using GraphQL you can use the playground that comes with it to explore the api.

Are you working with Adobe XD, Zeplin, Figma or similar? Believe it or not but they are knowledge bases too (each one with its own role and scope). Everything that encapsulates shared knowledge can help.

Of course - it's easy to get lost in knowledge bases but that's other topic to another article.

Tell them what to install

pexels-andrea-piacquadio-874242.jpg

Put in your knowledge base (which you already created in the last tip) a list of software they need to install in order to get the system working. If you can put links there - even better. No, Netflix is not something everyone needs for work. Neither Call Of Duty.

Use Docker

todd-cravens-lwACYK8ScmA-unsplash.jpg

Often you hear many people argue about which operating system is the best: OSX, Windows, Linux or Solaris (fine, maybe not Solaris). You see people throwing chairs at each other just for having the wrong system in the wrong place at the wrong time, ok I'm overreacting but the point is your team can waste a lot of time on software that works great on one system and not on another.

Luckily, there is a great almighty tool that solves everything called Docker which emulates the same system for everyone (and it's free).

Creating your development environment dockerized (and also using dockers in production in the future) will reduce a lot of setup and configuration problems so that people can focus on more important things as which text editor is the best.

Use a password manager

michal-hlavac-Ci3xHBGvdU8-unsplash.jpg

There are many great tools, both free and commercial, to have all your shared passwords in the same (secured) place so that everyone knows where to get them at first and when they are changed.

Some of the examples are: KeePass, Bitwarden, Keeper, 1password, etc'..

Sending "Hi, the password to X changed please update from Y" can save you a bazillion of "I can't login" messages.

Let them have a quick win

jason-dent-WNVGLwGMCAg-unsplash.jpg

I like to start almost every day with the smallest tiniest task I can solve, why? because it reinforces the brain forward and helps to create a flow of "success".

And on the first day this is even more crucial because after giving them a small task (that they can finish) they will also have something valuable for the group which can help them to get along with other members and build strong relations. One Koala avatar - bad, a lot of koala avatars working together - good.

Finale

I hope some of the tips here helped you. If you have more tips to add, subtract or just want to put memes in the comments I'm more than happy to hear from you.