When software engineering leaders need new skills, they often look to hire people who already have those skills. However, when it comes to modern cloud architectures and languages, those people are hard to find.
Recent Gartner research has found that there are a high number of open positions for people with advanced development skills, but relatively few candidates per position. Software development leaders often write into the job description a long list of required skills, making candidates even harder to find. All these factors require organizations to offer higher salaries and delay critical work.
To overcome the developer skills shortage, software engineering leaders need to upskill and reskill their existing employees and new hires. The focus should be on developing each employee’s skills ahead of demand so that they can play a broader range of roles and continue to enhance an organization’s technical capabilities. Software engineering leaders can use a six-step talent development program to upskill and reskill their developer teams.
Step 1: Identify skills needed now and later
The first step to upskilling and reskilling is to identify and segment software developer skills that are essential to your team and organization’s success. For example, lay out core skills relevant to the existing technological landscape and skills that will be required for emerging technologies and architectures.
Identify aging systems or digital services to anticipate future needs and the likely enhancements. Collaborate with business leaders, product managers and solution architects to understand the future set of skills needed to modernize the product. Moreover, software engineering leaders can also ask their HR learning and development department to create a skills matrix for software engineering.
Consider four aspects:
- Competencies — such as business acumen, design thinking
- Working methodologies — such as Agile, Kanban.
- Architectures and design — such as SOA, MASA, cloud-native, data architecture, user experience.
- Technical skills — Such as Specific programming languages, development platforms, tools.
Step 2: Inventory current developer skills
Next, assess the skill sets and aptitudes of existing developers to identify gaps in the current learning and development regime.
Before surveying employees to evaluate their skills and competencies, make sure to communicate the purpose of the exercise is to evaluate the organization’s capabilities, not compare employees. Employees should feel secure so that they don’t give prejudiced or biased responses.
Also motivate developers to broaden their skills and roles by making reskilling and upskilling a part of the organization’s culture. Software engineering leaders can lead the way by openly showing their liking for on-the-job learning. Employees should recognize the need to upgrade their software developer skills on an ongoing basis and without any hand-holding.
Step 3: Motivate employees to broaden their skills
Software engineering leaders should instill the drive to learn in employees and encourage them to be self-starters. Shift performance discussions from “What have you done?” to “What have you learned?” Employees should learn to identify and target skills (both technical and managerial) that will be game-changers.
Three elements of motivation (based on Drive: The Surprising Truth About What Motivates Us by Daniel Pink) are key to talent development:
- Autonomy: Avoid excessive interference; let your teams figure out the best way to get the job done and remove the roadblocks to the progress of employees.
- Mastery: Ensure that employees receive recognition on mastering software developer skills — not just from managers, but also from peers.
- Purpose: Make sure employees associate a sense of purpose with their work — does their work positively impact the organization’s growth and technological landscape?
Step 4: Accept a base level of skills but plan for upskilling
Upskill existing developers in tandem with your search for new hires. Finding highly proficient individuals may be challenging, so be willing to hire people with a base level of skills and immediately create learning opportunities to ensure they become valuable assets for the organization. Prioritize qualities like collaborative mindset and adaptability when hiring entry-level employees. Once their core software developer skills are validated in the organization, they can broaden their horizons and develop greater business acumen.
Employees working in technical or customer support can also be considered for software developer roles, as they have a good understanding of products and customers and can learn new skills.
Incorporate agile learning, which encourages iterative short bursts of skill development to achieve adjustable results. Agile learning also instills a growth mindset in employees so that they don’t just gain knowledge but apply it to produce significant business value. It facilitates an environment where people learn and grow together rather than in individual capacities to compound the benefits more widely across the organization.
Step 5: Create on-the-job learning opportunities
When evaluating different development approaches, consider low-cost, less time-consuming on-the-job learning opportunities for developers. The idea is to put employees into dynamic environments where they can learn and apply new skills quickly. Peer connections and 360-degree feedback, along with group activities like hackathons, innovation labs, and lunch and learns, can build valuable knowledge sharing channels for new hires and old employees.
Step 6: Dedicate time to learning
Learning and development programs should make the enterprise more productive in the long run, but for that to happen, you need to allocate time for learning amid a massive backlog of work. In a work week, a dedicated time window can be created for learning and cross-functional activities. The window may include master classes, instructor-led online coaching, mentoring programs, proof-of-concept projects on new technologies and communities of practice.