The true status and health of a large software project is surprisingly difficult to sense, and worse to measure. One of the best ways to understand this is to think about debt. Although not measured in dollars, software projects certainly accumulate debt over time. This is debt that you will have to pay someday — or continue paying interest to delay the day of reckoning — if the project is successful.
How many of these apply to your project?
7 sources of technical debt
- Undiscovered bugs, failing tests, and open bugs in your database
- Missing test automation (unit, feature, scenario, or system)
- Missing build and deployment automation
- Scenarios with incomplete user experiences
- Code that’s too difficult to understand
- Code that’s too difficult to extend
- Code that’s isolated in branches
The insidious thing is your project can hit all its milestones and even make it the whole way to shipping — with any amount of these debts lurking in the code.
In a next post, we’ll look at 7 matching strategies for measuring and tackling technical debt, so you can empower your teams to systematically manage it in a lean fashion.