Technical Debt
Lehman's Laws of Software Evolution
Continuing Change
A system must be continually adapted or it becomes progressively less satisfactory
Increasing Complexity
As a system evolves, it's complexity increases unless work is done to maintan or reduce it
Others
- Kiss of death
- Are we treating symptoms instead of real issues
- Quantifying technical debt
- There's always a trade off between improving existing code versus adding new features
Symptoms of low code health
- Low cohension, many reponsibilities
- Bumpy road code smell, lack of encapsulation
- Deeply nested logic, if-statements inside if-statements
- Primitive obsession, missing a domain language
- Excess function arguments, missing abstractions
https://alexkreilein.medium.com/death-by-tech-debt-f5146836d2be
https://news.ycombinator.com/item?id=13416935
Prioritizing Technical Debt as if Time and Money Matters - Adam Tornhill - GOTO 2020
https://zerodha.tech/blog/being-future-ready-with-common-sense
- Slow down to speed up
- Organisations often overestimate the importance of the features they continuously ship (and underestimate the importance of features they don't ship)
- Don't fix what is not broken, but fix what might soon break
- Technical debt is a reality of life
- No business goals, vision, strategy, or competitive advantage changes the fact that technical debt is inevitable and that it needs to be handled.
- A developer should know why something is being done to the software they write and maintain. That is when they can truly "own" it, maintain a current mental model without outright hating the codebase, and assimilate changes meaningfully rather than shoehorning them in.
Companies Killed by Technical Debt / Tech Debt
- Microsoft - XP to Vista
- Friendster - Successor of myspace
- Netscape: Once a dominant web browser company, Netscape struggled with outdated code and architectural decisions that hampered its ability to innovate quickly. This allowed competitors like Microsoft to overtake them.
- Myspace: An early leader in social networking, Myspace suffered from poor architectural decisions and slow development cycles, which made it difficult to scale and adapt to user needs. This allowed Facebook to surpass it rapidly.
- Blockbuster: Although primarily a victim of business model inertia, Blockbuster also struggled with outdated IT systems and infrastructure that couldn't support a pivot to digital media effectively.
- Borders: The bookstore chain failed to adapt to the e-commerce trend and had outdated systems that hindered its ability to compete with Amazon and other online retailers.
- Kodak: Known for its photographic film products, Kodak's struggles weren't solely due to technical debt, but the company did have legacy systems that made it difficult to shift to digital technologies and processes quickly.
- Friendster: An early social networking site, Friendster suffered from scalability issues and technical problems that caused user experience issues, leading to a decline in user base as people moved to more reliable platforms like Facebook.
- BlackBerry: Once a leader in the smartphone market, BlackBerry struggled with keeping up with the rapid pace of innovation from competitors like Apple and Android due to its legacy systems and slower development cycles.
- Sears: The retail giant faced multiple issues, including a failure to modernize its IT infrastructure and e-commerce platforms, which hampered its ability to compete with more agile online retailers.
How many startups are actually killed by tech debt? I saw many successfull compa... | Hacker News
I've found that slowdown from tech debt killed as many companies as any other is... | Hacker News
Death By Tech Debt. In the effort to commit code and ship… | by Alex Kreilein | Medium