Technical debt matters, because, sooner or later, it’s a drag on your business. It’s expensive, it saps productivity, and it reduces business agility. The more you understand about the technical debt you have in your business, the more you can minimize it.
By Rick Garvin
Why do software products and systems become harder to evolve and less reliable over time? Small changes take longer than they should, create more problems than they resolve, and fail to keep up with the business and market needs. They can also become less reliable and behave unpredictably. Why? Technical Debt. At Ten Mile Square, we take a pragmatic approach to helping you reduce your technical debt.
Technical debt is the kind of concept that technologists can argue about at great length. It’s a metaphor that is useful for explaining deferred work that negatively impacts the performance of systems and products. Really, it’s a metaphor for three types of drag on your systems and products:
- Deliberate Technical Debt – You intentionally choose to make compromises in the short-term that you know you will have to clean up later. For example, you may make technology selections based on what your team knows even though those selections cannot support your long-term scaling goals. These choices accumulate over time and, eventually, you need to pay them down. If you don’t maintain the deliberate technical debt compromises in your backlog, they become folklore and eventually become inadvertent technical debt.
- Inadvertent Technical Debt – Unintentional poor practices, technology choices, design and implementation driven by staff that did not know better. Simply put; mistakes. Inadvertent technical debt is a people problem.
- Obsolescence – The cost of time or, stated another way, the entropy that accumulates due to the changes in the business and the progress of technology over time. The foundational components of your systems age until they are no longer supportable. New business requirements overtake old code. Technology choices are undermined as better technical options emerge. Security vulnerabilities are no longer patched.
The bottom line is, technical debt is a drag on your operations where deferred work accumulates to the point where it becomes a drag on operations.
Ten Mile Square can help you address your technical debt by:
- Assessing the scope of your technical debt, technology process gaps, and team gaps.
- Prioritizing the technical debt remediation in line with your features backlog,
- Technology leadership, process remediation and team coaching.
- Hands-on technology modernization, infrastructure update and software development.
- Origins of the the technical debt metaphor – Ward Cunningham – http://c2.com/doc/oopsla92.html
- Martin Fowler
- On technical debt – http://martinfowler.com/bliki/TechnicalDebtQuadrant.html
- Technical debt quadrant and categories – http://martinfowler.com/bliki/TechnicalDebt.html
- Refactoring – http://www.refactoring.com/
- Code smell – http://martinfowler.com/bliki/CodeSmell.html
- How to categorize and communicate technical debt – Steve McConnell – http://www.ontechnicaldebt.com/blog/steve-mcconnell-on-categorizing-managing-technical-debt/