creative soul - Fotolia
Programmers are in great demand -- and that's been true for half a century. As a result, IT managers face a lot of pressure to make new development team members productive quickly.
It seems to take longer today to get junior developers up to speed than it did decades ago -- a point of frustration among many veteran IT managers. There are three primary reasons why it takes longer to get junior developers, from various backgrounds, up to speed.
First, modern development socializes the development process. A programmer doesn't just go off and perform his tasks; he interacts with the team constantly and collaborates in decisions and activities. Team-based activity and collaboration is hard to inject into computer-science curricula.
Second, development tools and practices are in a constant state of renewal. Technology innovations, such as the cloud, and development models, such as rapid development and CI/CD, regularly emerge. Organizations prioritize and adopt these inventions at different paces and in different ways, which can negate a developer's previous experience and expertise.
Finally, compartmentalized development teams and practices limit how much a developer actually sees of a project or problem. His insights and exposure to other roles is often minimal, which makes it both harder for him to work at his full potential in the present and prepare for a senior role in the future.
Given the difficulty filling junior programming positions, most enterprises can't realistically post job descriptions for new hires that call for the full range of collaborative skills and modern hosting environments and development tools. To make the most of who is available in this job market, don't shop for the perfect candidate -- create them.
How to train junior developers
Without an effective training plan, junior developers waste a year of time on the job, or even more. Worse, promising candidates leave for better opportunities if they're frustrated with their lack of progress in your company. Follow these five tips to learn how to train junior developers quickly.
Train junior developers immediately. While this first idea sounds obvious, many dev teams struggle to implement it. Skill-up junior programmers before you integrate them with a development team. The worst thing you can do for a new developer is start them off without the necessary skills and expect to schedule training later on. Untrained junior developers will waste their early time with the team and get little out of this early exposure. It leads to frustration, both with the developer and the rest of the team.
Certification can serve as a substitute for training, as long as the certification actually covers all the skills needed. It should also be recent enough to address current approaches in software development. Look for specific certifications that match the job at hand.
Do everything, including training, as a team. Hold regular sessions designed to familiarize every member of a development team with the project overall, as well as the tools, practices and skills needed to execute it. This approach unifies junior team members and makes them aware of others' roles. Perhaps most importantly, this team-based strategy avoids isolating junior developers in specialized programs or tasks.
To make this team mindset effective, use a collaborative development framework to manage a project from requirements gathering to production release. While team members focus on their parts of the project, everyone should have access to all project information. Build broad knowledge of the project, and everyone's part in it. Experience shows that tunnel vision stalls progress for junior developers.
Trust junior developers to complete basic assignments with minimal support. The team approach does run the risk of submerging a junior developer who can't do the same things as a senior leader. While it comes with good intentions, mentoring can also negatively affect performance. All developers should have responsibilities that they own. Assign junior developers tasks within their skill levels, so they won't need a lot of outside assistance. When you assign the task, fit it into the project framework and contextualize it within the scope of the project to help the junior developer see the big picture.
Make performance corrections routine. Inevitably, junior developers run into issues, often as part of testing and integration. A junior developer might structure code in a way that isn't optimal, or even workable. Review and correct his processes on a routine basis. Illustrate problems with a junior's work in relationship to the project overall, and state the issues matter-of-factly. Deal with serious work habit or performance problems in private, but handle common code-related issues in the course of a project without distinction from the rest of the team.
Promote growth through collaborative team design and review sessions. Every development team should have design and review sessions, and each team member should participate. These sessions can expose a junior developer to how his more-experienced peers think, such as how they approach a design or solve a problem.