Skill Debt Trap
Nearly everyone in the software engineering industry is familiar with the term "Technical debt". However, there's a cousin to Technical Debt that isn't often mentioned.
"Skill Debt" is the future cost of additional upskilling required for Engineers to do their job well.
It's generally caused by choosing a quick path rather than the right one that would have otherwise taken longer. If the debt isn't paid off, the cost is the reduction in the team's ability to compete and innovate. Potentially leading to technical stagnation for the software product.
How does skill debt build?
Skill debt generally arises from delivery pressure to get the project completed quickly. This can take the form of management or the team leader regularly choosing a few of the most skilled Engineers to work on new projects and technologies instead of spreading the opportunity across the team. It can also stem from Engineers deciding to use a technology solution they are familiar with rather than exploring the right one for the job.
Skill debt is also created when Engineers feel complacent with the existing technology or their own skill sets and do not want to learn more.
And lastly, it can also build when a company doesn't have a culture of continuous learning and upskilling. As a result, engineers are busy doing work but not given time to upskill or aren't encouraged to try new things.
Skill debt reasons can be classified into three groups: Intentional, Unintentionally, and Environmental. "Intentional" is when Management or Engineers purposely chooses the quicker path due to delivery pressures. "Unintentional" is when Engineers are happy with their given skill and don't see the benefit to change. And the "Environmental" is when the culture doesn't encourage learning.
Issues with skill debt
Without the right skills, Engineers can lack the ability and confidence to build or enhance the existing software. This can result in stagnation in innovation. It can also lead to developers taking shortcuts with software implementation, which can then cause technical debt to build.
Key-man risk is also a problem as the knowledge or skills are only in a few engineers' hands. The company or team will be at risk if the person is away for a long time or leaves. There is also strain on support as not all Engineers will have the confidence to troubleshoot the issue.
Sometimes to speed up or streamline delivery, project managers might outsource or have a selected few Engineers build a new product. Once the product is finished, it gets passed back to the core team to maintain and support, which is a considerable skill debt. There's also a risk that the skill gap is so large that some engineers aren't interested in upskilling or don't feel they own the software anymore.
And lastly, a a detrimental impact of skill debt is retaining talented engineers. An Engineer can feel like they are playing second fiddle when regularly being passed on working on new projects or technologies. In addition, without regular upskilling or new technologies, Engineers can find their work boring or feel their skill is not valuable in the market.
Paying off the skill debt
The most critical step to paying off skill debt is to create a company culture that encourages learning, innovation and knowledge sharing. Don't just run a single focus session to upskill the engineers, as afterwards, there's a high risk the team will fall into the same trap and skill debt will build again.
As a manager or team leader, you can directly shape the culture by:
- Give opportunities for Engineers to try new things. This can include introducing regular Code-It days, which are like mini hackathons.
- Give dedicated time or slack time for Engineers to upskill. For example, an afternoon a week where Engineers can study or try new things. You can also create study pathways or give Engineers to Udemy licence for a structured course.
- Encourage Pair programming. This not only helps in skill sharing but can actually lead to fewer reworks and potentially remove the need for a formal code review.
- Involve engineers in entire workshops and projects. Software showcases and developer sessions are great for learning "what" was built. Still, it's being involved in the workshops and working on the code where the engineers understand the "why".
- Make it regular and consistent. Don't make it a once-off session. Instead, include the time to learn and do things right into your planning.
As an Engineer, you can also take steps to reduce the team's skill debt by looking over your skills and identifying gaps. Then, ask your team leader about opportunities to grow in those areas. Or develop your own plan using self-study, structure courses and side projects.
Pay off debt early and consistently
Like all debt, if skill debt isn't paid off early and consistently, it can compound quickly and become overwhelming. Unfortunately, skill debt can also create tech debt, so it's important to pay down skill debt first.
But with everything in business, there is a balancing act between skill debt and the opportunity cost of delivering products to clients early. So, consider where the skill debts might be an issue and focus your limited time there first.
For example, if a few key people can only maintain or support the application, consider having other Engineers do a rotation on support or work on some feature for it. This will force Engineers to learn what is happening and reduce the skill gap.
Preventive measures are better than curative measures. So, the sooner you reduce skill debt in your team, the sooner your team can work more effectively together and better adapt and innovate in a competitive market.