The growing problem of technical debt cannot be overlooked. InfoWorld Editor Eric Knorr recently highlighted the need for technical debt to be paid down, noting, “I wouldn't be surprised to learn we're now in the process of accumulating technical debt at historic rates.”
Knorr points to a number of culprits for the increase in technical debt – exponentially increasing demands for new functionality, integrated mobile apps, big data and monolithic applications, all of which greatly increase software complexity. As such, he ponders whether microservices – developing individual applications as a suite of small services – may be a way to avoid or at least pay down technical debt.
Pointing to the difficulty making changes to large applications, Knorr says, “Refactoring a big monolithic application can be the equivalent of a balloon payment. But if you break down application functionality into API-accessible microservices, each with a single purpose, you can pay your technical debt incrementally by refactoring services one by one.”
He quickly warns, however, that microservices are not a “miracle” cure; there are issues with it, not the least of which are the difficulty in testing microservices-based applications and the ever-changing definition of what microservices are. Knorr says, “The most pernicious aspect of technical debt is that few organizations know exactly how much debt they have or where it resides.”
Knorr later laments, “When management lacks any understanding of what its teams can handle, neither microservices nor any other architecture will help. Debt piles up until default is inevitable.”
But debt piling up is not as inevitable as Knorr makes it sound. Automated software analysis and measurement can identify the issues that result in technical debt – bad code, software complexity, engineering flaws, latent errors and other problems – which then could be refactored using microservices.
In fact, the ability to identify the causes of technical debt may be even more important to paying down technical debt than how they are fixed. Using automated software analysis and measurement to compile the data on the causes of technical debt means the problem can be communicated between development and management teams and organizations would have the transparency they need to solve the problem and curb technical debt.