Before we discuss how to tackle technical debt, let's first examine some of its most common causes:
- Lack of talent: Inexperienced developers may not follow best practices and write unclean code.
- Lack of time: Setting unreasonable deadlines, or adding new features without allotting additional time, means developers do not have enough time to follow proper processes of writing tests, conducting code reviews, and so on.
- Lack of morale: We should not overlook the human aspect of development. If requirements change all the time, or developers are required to work overtime, then they're not likely to produce good work.
All of these causes can easily be mitigated. The problem of inexperienced developers can be tackled ...