Developers are under unprecedented pressure to move from traditional to modern infrastructure, reduce inefficiencies, and create products that build customer satisfaction and revenue. Many businesses are moving forward with a DevOps mindset, but as they move forward, they may forget one thing: technical debt. Yes, developers can move quickly and break things, but never really fix them. Therefore, the accumulation of technical debt leads to the decline of engineering productivity and the rise of production costs. Umser Mansoor did a little survey on tech debt for Codehoy earlier this year. The survey found that 68 percent of the 91 developers surveyed said their products had high or very high tech debt. Technical debt causes a high cost loss to the company every year, and also has a devastating impact on the engineering team.
1. Waste of time
Can you imagine your development team spending nearly three months (or more) of a year on technical debt with no hope of reaching KPIs? A Swedish survey conducted a longitudinal study of software developers and found that software developers wasted an average of 23 percent of their work time due to technical debt. These figures are supported by a study of large software companies, which found that the cost of managing a large software company’s technical debt is enormous, estimated at an average of 25% of the total development time. According to Stripe’s research, that number is even as high as 33%! This is a huge and avoidable expense. Worse, as detailed in the Swedish study, resolving technical debt only becomes more challenging over time, as any operation added to the code base is done on top of a system that is no longer working, so bugs and glitches compound. The whole team is infected with technical debt, and it’s contagious. On the value side, the ability to build faster and release faster is impeded. It’s hard to time the work, and the profit margin on delivering the code drops.
What debts do people waste time on?
According to the Swedish study, the wasted time is usually spent performing additional testing, followed by performing additional source code analysis and performing additional refactoring. “It usually takes longer to get the right solution,” said one respondent. It was always more or less a matter of time. Usually, when you introduce technical debt, it’s because something comes up. It’s not quite the way we thought it would be when we were planning how to develop software.” The Codeahoy study attributes technical debt to several factors, including outdated libraries, lack of documentation, poor code quality, a bloated overall, static analysis tools not included in the development process, lack of unit testing, haptic architecture, poor design decisions, and lack of consistent delivery. Specific examples include “frameworks built in-house 10 years ago” and “legacy AWS infrastructure with unused services.”
How does this affect developers?
The kitchen analogy to describe the reality of tech debt is a good example: if you run a restaurant and you cook and don’t wash the dishes, scrape the grill or tidy the fridge, the marketing authority will quickly shut down your piece of “junk.” However, software development can be done without oversight, making kitchen staff more aware of the conditions in the kitchen where they work every day, and if nothing is done, the kitchen will start to fail to produce edible meals. In general, you can convince decision makers that cleaning the kitchen is better in the long run; Or, update your resume and leave before the current kitchen burns down.
2. Low morale and job satisfaction
Technical debt damages team morale and leads to an excessive cognitive load. Moreover, managing a disgruntled team is not easy. Most people take pride in doing a good job and are rewarded for their success. But if there is technical debt, they may feel dragged down or overwhelmed. It is even worse if concerns have been raised with management and there is no recourse. Eighty percent of Codehoy respondents indicated that their management is aware of technical debt: Specifically, 57 percent of respondents said that their managers are aware of, but not planning for, technical debt; Twenty-three percent of respondents said their managers know but don’t care. One respondent mentioned, “Management actively acknowledged this, and we even prioritized technical debt, but the technical debt item never made it into the workflow because it was never seen as important enough.” Another put it this way: “One of the strange things I’ve noticed is that our company is in financial trouble, which means resolving technical debt is a lower priority than new features that could bring in more revenue. However, I think many of our problems are related to our technical debt (e.g., systems were downgraded over the weekend due to poor regulation). For whatever reason, new features continue to trump the problems that cost our users, and the tech debt gets more and more insoluble.”
3. Brain drain
Technical debt is a management problem as well as a technical one. Happy developers are members of high-functioning teams, and if your developers aren’t happy, they’ll leave and take their (undocumented) knowledge with them. Technical debt is one of the reasons people leave or want to leave. Codehoy’s survey found that 50% of developers surveyed were likely or very likely to leave because of technical debt. Another 27 percent said they had thought about it, but were not sure. All in all, a significant number of people may be swayed by attractive job offers from their competitors. If the company is experiencing high developer turnover, technical debt can be a factor, especially for those who are missing out on more exciting projects by spending time fixing bugs in legacy code.
4. Decline in customer satisfaction
If technical debt leads to a mediocre product launch, then there is a risk of a negative customer experience. Developers may be somewhat distant from the end user, but when something goes wrong, they bear the brunt of the responsibility for the pager and help desk. In addition, as code becomes more complex, developers take longer to release new features into production, slowing down overall production and delaying update times, resulting in decreased customer satisfaction and ultimately a competitive disadvantage.
5. Legal consequences
Technical debt can have serious consequences when technical updates involve compliance with standards. It can lead to costly data breaches, fines and compliance penalties, and even litigation in areas such as healthcare and banking. In some cases, delays in mission-critical software can endanger the life of the software.
6. Kill creativity
Every minute spent on maintenance due to technical debt is a lost opportunity to innovate or add value. Accenture’s research on federal IT systems shows that technology debt and the resulting IT discontinuity hamper innovation, agility and engineering speed. Eighty-three percent said that technical debt severely limited their ability to innovate, 79 percent said it inhibited their ability to respond to change, and only 38 percent of respondents estimated the cost of fixing their technical debt. The accumulation of technical debt in legacy systems is a key obstacle to modernization.