Technical debt is the elephant in the room: complex engineering problems meet awkward organizational issues. To make it more tangible, we'll divide it into 3 categories and discuss engineering and business strategies for each:
- Gather info about **vague** issues.
- Express **antipatterns** as code.
- Automatically fix **straightforward** issues.
## Summary
In this talk, we make tech debt more tangible by dividing it into 3 categories and showing strategies for each:
- vague issues
- antipatterns
- fixable problems
In each category, we'll discuss not just the technical complexities, but also the business impact and the organizational challenges. We'll introduce several tools to mitigate the consequences and to eliminate parts of the tech debt.
## Vague Issues: Acknowledge Them
- Make it visible when working with the code.
- Make it visible when taking business decisions.
- Acknowledge the business impact: longer development time, higher probability of bugs.
- Encourage open and constructive discussion.
- Gather info about this specific issue and recognize general patterns.
## Identify Antipatterns And Express Them As Code
- General vs specific to your codebase: Not an either - or, but rather a continuum.
- Express antipatterns as code.
- Find similar issues across the whole code base.
- Avoid adding even more debt of the same kind.
## Automatically fix straightforward issues
- If the antipattern can be codified, perhaps the fix can be codified as well.
- Roll out fixes with large-scale changes.
- Risks of large-scale changes.
- Avoid re-adding the same kind of debt.