A lot of things make working in tech difficult. Technical debt is one of them. Whether you’re working in-house or for an external team, you’ve probably experienced some tough challenges when it comes to legacy software. Most people have encountered strange internal software systems, a CMS that has been customized in a way that no one has the energy to fathom. Working your way around and through these can be a headache to say the least.
In this year’s Skill Up survey, we found that Technical debt and legacy issues are seen by developers as the biggest barrier to business goals. According to 49% of respondents, old technology and software is stopping organizations from reaching their full potential. But it might also be stopping developers from moving forward in their careers.
Read the report in full. Sign up to our newsletter and download the PDF for free.
Technical debt and the rise of open source
Arguably, issues around technical debt have become more pronounced in the last decade as the pace of technical change has seemingly increased. I say seemingly, because it’s not so much that we’re living in an entirely new technical landscape. It’s more that the horizons of that landscape are expanding.
There are more possibilities and options open to businesses today. Technology leadership is difficult in 2018. To do it well, you need to stay on top of new technologies. But you also need a solid understanding of your internal systems, your team, as well as wider strategic initiatives and business goals. There are a lot of threads you need to manage.
Are technology leaders struggling with technical debt?
Perhaps technology leaders are struggling. But perhaps they’re also making the best of difficult situations. When you’re juggling multiple threads in the way I’ve described, you need to remain focused on what’s important. Ultimately, that’s delivering software that delivers value.
True, your new mobile app might not be ideal; the internal CMS you were building for a client might not offer an exemplary user experience. But it still does the job – and that, surely is the most important thing?
We can do better – let’s solve technical debt together
It’s important to be realistic. In the age of burn out and over work, let’s not beat ourselves up when things aren’t quite what we want. Much of software engineering is, after all, making the best of a bad situation.
But the solutions to technical debt can probably be found in a cultural shift. The lack of understanding of technology on the part of management is surely a large cause of technical debt. When projects aren’t properly scoped and when deadlines are set without a clear sense of what level of work is required, that’s when legacy issues begin to become a problem.
In fact, it’s worth looking at all the other barriers. In many ways, they are each a piece of the puzzle if we are to use technology more effectively – more imaginatively – to solve business problems. Take these three:
- Lack of quality training or learning
- Team resources
- Lack of investment in projects
All of these point to a wider cultural problem with the way software is viewed in businesses. There’s no investment, teams are under-resourced, and support to learn and develop new skills is simply not being provided. With this lack of regard for software, it’s unsurprising that developers are spending more time solving problems on, say, legacy code, than solving big, interesting problems. Ones that might actually have a big impact.
One way of solving technical debt, then, is to make a concerted effort to change the cultural mindset. Yes, some of this will need to come from senior management, but all software engineers need to take responsibility. This means better communication and collaboration, a commitment to documentation – those things that are so easy to forget to do well when you could be shipping code.
What happens if we don’t start solving technical debt
Technical debt is like global warming – it’s happening already. We feel the effects every day. However, it’s only going to get worse. Yes, it’s going to damage businesses, but it’s also going to hurt developers. It’s restricting the scope of developers to do the work they want to do and make a significant impact on their businesses.
It seems as though we’re locked in a strange cycle where businesses talk about the importance of ‘digital skills’ and technical knowledge gaps but ironically can’t offer the resources or scope for talented developers to actually do their job properly. Developers bring skills, ideas, and creativity to jobs only to find that they’re isn’t really time to indulge that creativity. “Maybe next year, when we have more time” goes the common refrain.
There’s never going to be more time – that’s obvious to anyone who’s ever had a job, engineer or otherwise. So why not take steps to start solving technical debt now?