Have you ever reflected on technical debts?
Tech debt is widely used and discussed within engineering teams. However, in people's mind, it looks like it accumulates because of some nasty, dirty practices.
Technical debt piles up even when you work with the best engineers and follow the best practices.
Because tech debt is not ONLY a result of prioritizing speedy delivery or poor development skills but also a natural result of writing code about something we don't have a proper understanding of the complete solution.
Knowing that, a natural response is to invest more in the design phase. However, in reality, you can not capture and learn everything before start implementing the solution. The future is uncertain and might bring radical changes.
A leaner cycle is the best option. Take a piece of the Design effort and move it forward in a refactoring phase that happens every time a few pieces have consolidated and are ready to be secured.
In this scenario, we accept debt creation, trusting our ability to repay it in the short term.
Like financial debt, tech debt can harm or help your organization. To use it wisely, engineers must monitor how much technical debt they acquire and learn to manage it well.