Growing Junior Developers in Remote and AI-Enabled Environments
The rise of remote work has transformed the software development industry, offering established developers unmatched flexibility. However, this shift has introduced significant challenges for junior developers, whose growth often depends on proximity to mentors and hands-on guidance.
It's already challenging for new developers to get their footing in their first or second development job. Varying tech stacks, different processes, and competing concerns make being a junior developer somewhat of a whirlwind. Not having someone nearby to help you throughout the day is a major loss in terms of skill and people development. While some prefer these remote setups because it allows them to focus, the rate at which junior developers skill up has become much slower than it was while the majority of teams were working in person.
While many companies have slowed or stopped hiring junior talent altogether, there is still a great need to develop high-quality software developers. As the technology landscape continues to evolve around AI, AR, and other emerging technologies, there is still a need for junior developers that can learn how to work with and on these tools. Not only is it important for juniors to know how to code, but its equally important that they're focused on the business needs and how to ask the right questions.
1. Implementation Plans
This concept is not limited to junior developers, but we've found that it has become a critical planning tool for making sure newer developers are thinking through the entire scope of their stories before beginning work.
An implementation plan is a document outlining a step-by-step plan of attack for a story. The level of detail should align with the developer’s experience, ensuring clarity without unnecessary complexity. When more experienced engineers put these together, they are generally a very high-level look at what needs done for the story. For junior developers, we recommend them to be as detailed as possible. Finding specific files that need to be updated, what types of updates need to be made, and how testing can be done are some examples of things junior developers can put in an implementation plan.
That plan can be reviewed by a more experienced developer for accuracy. It's a great opportunity to explain gaps in knowledge and easier or faster ways of accomplishing things.
These documents can be done in your project management tool such as Jira by creating a custom field or adding comments. Our team tends to use Google Docs, but there is no one right answer. The most important thing is ensuring that a proper plan is in place before starting work.
2. Office Hours
"Office Hours" are a throwback to our school days. With office hours, senior and lead engineers will make themselves available, either in a Zoom meeting or Slack huddle that they "hang out" in. They typically will work on their own work while in this, however it provides a time for less experienced developers to jump into the call, get some help, and then get back to work.
Experienced engineers that are good team players know they are needed to help bring the rest of the team to their skill level. They like office hours because it provides scheduled, structured time for facilitating others that doesn't derail everything they are working on. Typically they will schedule these sometime between 2-3 times per week for 2-4 hours at a time.
Junior developers benefit from office hours by having a time they know they can go to an experienced developer and get help without bother them. All too often we hear how junior developers are afraid of asking for help out of fear of being judged or being a burden, and office hours help level the playing field.
3. Restricted Use of AI Tools
Its no secret that AI tools have changed development workflows for anyone who has access to them. ChatGPT, Cursor, and Github Copilot are enabling developers to be more effective than ever. However, these tools still often provide incorrect suggestion. Experienced developers are able to see these poor suggestions, and either solve it on their own, or provide additional information to help the AI tool provide the correct suggestion.
Junior developers may lack the experience to discern poor suggestions, potentially leading to wasted effort or suboptimal solutions. This can lead to a lot of time wasted on incorrect or inefficient solutions. Along with incorrect solutions, it can lead to increased confusion around what actually needs done.
We encourage our junior developers to not use AI tools for coding assistance until they are fully capable of implementing things without it. This may change as AI tools continue to get better, but for now they are still too inaccurate.
4. Dedicated Pair Programming
Even though it has been proven time and again, people are still skeptical of pair programming. On paper, it doesn't make sense, having two people "do the work" of one. But in the words of Ken Blanchard, "no one of us is as smart as all of us."
Having teammates work a story together allows them to be more effective than either of them would be individually. By working together, time spent "spinning wheels" or focusing on the wrong things becomes a non-issue. Not only does it remove these inefficiencies, but it also provides a better context for questions and answers, which leads to more effective learning.
A not-often-discussed issue that junior developers face is knowing _how_ to search for things online. Pair programming sessions allows them to see different ways to look for things, how to research them, and what to not look for.
In conclusion, junior developers are still entering the market, and they still have a place. However, if your team is remote, extra consideration is needed for these individuals. With a proper system in place, junior developers can get trained very quickly and become an immense value boost to any engineering organization.
Frequently Asked Questions
Latest Posts
We’ve helped our partners to digitally transform their organizations by putting people first at every turn.