In Software Development By Leigh Halliday November 21, 2014 Leigh Halliday

Onboarding Junior Developers

Having The Right Mindset

When bringing on junior developers to the team, you obviously have some goals for them, but you shouldn't forget that they have goals for themselves too. It's important to find out what their goals and interests are so that you can cater the learning process toward them.

Developers who enjoy what they do and view work as something that will help enable them to succeed will do a much better job than others who view work as just something to do to get a paycheque.

For the example of a ruby on rails full-stack developer, you have things involving databases (postgres, mongodb, redis, memcache), the back-end (serving web-pages, apis), and then you have front-end development with front-end frameworks (Angular, Ember, React), not to mention HTML, CSS, and Javascript. While a full-stack developer should know all areas of the stack, people have preferences and areas where they excel and shine, and by trying to give new developers a chance to work in the area they are most passionate about there is a greater chance they will succeed.

Creating a Positive Environment

For a plant to grow, it needs to have the correct soil composition, receive the right amount of water, the right amount of sun, and the temperature must be correct. I wish I was a better gardener... I've got an avocado tree in my house which is guaranteed to never produce fruit but, either way, I know the general principles.

For employees to succeed, especially for those who are new to the industry, you need to set up an environment for them that is positive, promotes growth, and one that removes barriers and the intimidation involved in learning what can often at the beginning seem like a daunting task.

Here are some ways you can create this type of environment:

  • Recognize when you see new employees make progress in things they may have struggled with at the beginning.
  • Create a positive environment for growth, allowing time for them to solve problems on their own. Those can be the best times for learning.
  • Encourage self-learning... ensure they have access to tools, websites, and books which can help them advance more quickly.
  • Remove barriers and intimidation by breaking things down in small chunks. By mastering and understanding certain smaller parts of the site it can give confidence.

Providing Mentorship

One thing that will help junior developers progress to become intermediate developers more quickly is having someone to mentor them. On our team, because we are small and have different strengths and weaknesses, it works better to have junior developers really treat all of us as their mentors. If there is a question better suited for one person or another, it makes sense to approach that person for help rather than someone else.

On a larger team, or for developers who have a more limited role (for example, they are Android developers and that is all they do), it makes more sense to have a dedicated mentor assigned to them. Someone who they feel comfortable with and can approach whenever a question arises.

Here is a talk given by Kate Heddleston at the Golden Gate Ruby Conference about technical onboarding, mentoring, and training.

Developers Are Humans

Even though we write code that is understood by machines, developers are not machines themselves. People learn differently and at different speeds, have different backgrounds and experiences, and this is something that you must take under consideration when planning and tracking progress, training, and having them fully integrated into the team.

Goals, Checkups, and Feedback

It is good to set goals for junior developers, such as shipping a feature, getting more comfortable with the code, and picking up new skills and techniques. You should also follow-up with new developers from time to time to get their feedback, find out where they are struggling, and also where they think they are getting the hang of things. Receiving feedback from junior developers also helps you plan for the next junior developer that is hired. If there is direct mentorship, this can simply come naturally out of that relationship.