# Technical Debt: Why Shortcuts Increase Complexity and Developer Frustration

DevFeed: [Technical Debt: Why Shortcuts Increase Complexity and Developer Frustration](<https://devfeed.tech/articles/technical-debt-is-soul-crushing-24985.md>)

Original publisher: [Read original article](<https://codeahoy.com/2020/01/25/technical-debt/>)

Author: umer

Published: 2020-01-25T00:00:00Z

Content type: article

Language: en

Sources: [Code Ahoy - Articles](<https://devfeed.tech/sources/code-ahoy-articles.md>)

Topics: [Tech Debt](<https://devfeed.tech/topics/tech-debt.md>), [Software](<https://devfeed.tech/topics/software.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [complexity](<https://devfeed.tech/tags/complexity.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [programming](<https://devfeed.tech/tags/programming.md>), [software](<https://devfeed.tech/tags/software.md>), [tech-debt](<https://devfeed.tech/tags/tech-debt.md>)

## AI overview

The article explains that technical debt results from shortcuts taken to ship features quickly, often increasing system complexity and future maintenance costs. It notes that technical debt can be an intentional trade-off under time or business pressure, but accumulated debt can make development and troubleshooting difficult and demoralizing for developers.

## Source excerpt

Technical debt is incurred when the software or system designers take shortcuts to ship a feature faster, increasing the overall complexity of the system. The goal is to optimize the present rather than the future. In other words, it's the easier path that takes us to the end-goal faster, but the resulting code (or design) is messy and complicated. It will require extra time in the future to add new features or to fix bugs. The most common reason why companies take on technical debt is to meet the time to market demands. "We must release this feature by February, or our revenue will take a big hit. Just hack it for now, and we'll fix it later." Other reasons for incurring tech debt include lousy design choices, poor programming, changing requirements, or the presence of outdated libraries or frameworks that made sense in the past but have become a liability now. Technical debt is not always a bad thing. It can help companies ship a critical feature fast and acquire users more quickly than its competition. My first job was at a startup. We intentionally took on tech debt because a) what we were doing was risky, b) we had a tight deadline to meet or the company would run out of money - no point in writing perfect code if it wasn't going to be ever released. Our tech debt wasn't the opposite of over-engineering. It was an intentional compromise to get the product out of the door on time. We understood that we'd have to pay the debt off or it will make it difficult to maintain and grow the system in the future. Tech Debt is Demoralizing for Software Developers The problem starts when companies forget to pay off the debt and let it creep and pile up for an extended period. The past comes to haunt the present. For good software developers, it is totally demoralizing to work on products that have high tech debt. This aspect isn't often talked about, but its effects are very real. Simple things like changing a title tag of a webpage page take up a whole day because the logi