I've recently been asked by my superior to coach a junior developer. I'm thrilled about it and love the prospect. I have a bit of experience in coaching a Junior (once in the past) but I would like to up my game and bring the best out of him (and possibly for next Junior for me to coach).
The previous experience was good but unprepared, I looking for an analytical approach and maybe some milestones for the Junior to reach.
How can I best prepare for coaching a junior software developer?
[Edit to answer comments]
It is not as I'm facing a problem per se. I have been very fortunate with my first experience as the Junior was very curious and had a mind very much logic oriented (awesome combination!). My 'coaching' was more about reassuring him about his capabilities and permits his confidence to grow. I'm also very lucky now with the Junior as he is very independent and tend to crack his skulls on problems long enough before asking some help. At the moment, I feel my role is not so much on a technical coaching as a 'work environment' coaching and setting standard of professionalism. I didn't want to go too much into details to not influence the answers but it seems I have to give my own guess and ask for guidance on those:
The answer I would have expected would have been something like that: There should be 3 axis of improvement for a Junior. 1 - The Technical part 2 - The understanding of the (software) shipping flow 3 - Work behaviour
As for the first one, the Junior will be asked to follow the project at hand with precise set of goals to achieve linked with some bonus goals. (Ex. in software engineering, we are making web services so we are expecting basic understanding of the messages flow, actual use of the architecture, etc. Bonus goals would be: challenge of the architecture, recognition of room for improvement part of the code, and implementation of new architecture for a 'in scoped' project)
As for the development in the team, the understanding of the shipping flow is very important (more over if the Junior does not see himself as a long term developer). The understanding of the business, tests, deployment, etc. All of these things have to be integrated full in the first 4 months. Bonus point for pointing out problem in the flow and ways to improve.
Finally, the work ethic. For a Junior to enter a new company will define his behaviour for the rest of his carrer. It's important to spot short coming in communication (verbal, writing etc.) and encourage certain kind of behaviour (sending a mail to re confirm an oral decision for instance). It's also interesting to develop his curiosity toward all of those soft skills as it would greatly help him later.
TLDR; No apparent issue at the moment, just need some overall guidance in coaching. Axis I thought I would follow being:
- Technical part
- Understanding of the (software) shipping flow
- Work behaviour