There's No Limit to How Bad Code Can Get
There is no limit to how bad code can become. The metaphor of a sinking ship is misleading, as businesses will fail long before code quality reaches a hypothetical floor. Technical debt has no reset, so metaphors implying an end provide a false sense of security. Software exists in the abstract realm, unlike physical structures that can collapse.
Adding more layers to a software system is always possible, and it can always get worse due to new indirections or decreased performance. In the past, a team at Amazon struggled with a complex, poorly understood codebase that required hundreds of engineers to maintain. The business rules were often outdated and hidden, making it difficult to understand the system.
Efforts to simplify the code were suppressed by fear, resulting in poor performance and difficulty in making changes. Despite this, new layers were constantly added to support new products and features, making the situation unsustainable. Attempts to fix the architecture were futile, as understanding the system took years and changes were constantly evolving.
Each attempt to re-architect the system failed due to lack of available engineers and incomplete information. The cycle continued, with new engineers arriving and departing due to the difficult fixes. The metaphor of a sinking ship did not capture the reality that the code could always deteriorate further, as there is no end to how bad code can get.
Written by urgent.news from Hacker News's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.