Software engineering leaders are keen to hire talent with an already developed skill set, but it’s increasingly difficult to find people with advanced software developer skills who can work on modern cloud architectures and digital initiatives.
“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,” says Bill Swanton, Distinguished VP Analyst, Gartner.
Six-point plan for building software developer skills
Step 1: Identify software developer skills and competencies needed now and later
First, identify and segment software developer skills that are essential to your success. For example, identify core skills relevant to the existing technological landscape and emerging skills that will be required in the near future.
Software engineering leaders can identify their aging systems or digital services and anticipate future needs and the likely enhancements. They can collaborate with business leaders, product managers and solution architects to understand the future set of skills needed to modernize the product. Moreover, they can ask their HR learning and development department to create a skills matrix for software engineering.
Consider four aspects:
- Competencies — Business acumen, design thinking, etc.
- Working methodologies — Agile, Kanban, etc.
- Architectures and design — SOA, MASA, cloud-native, data architecture, user experience, etc.
- Technical skills — Specific programming languages, development platforms, tools, etc.
Step 2: Inventory current availability and maturity of developer skills
Assess the skill sets and aptitudes of existing developers to identify gaps in the existing 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: Show employees the career benefits of upskilling
Shift the performance discussions from “What have you done?” to “What have you learned?” Software engineering leaders should instill the “drive to learn” in employees and encourage them to be self-starters. 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 learning opportunities for developers
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 predictive 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.