I was running a DevOps Foundation course 2 weeks ago for a client and I was explaining the meaning of technical debt and cultural debt. As the conversations in the room unfolded, it became very clear to me, that every system and object in the universe starts to accrue debt. So what is debt? I'll illustrate this over a beer......
Let's take a simple object, like a beer glass. It starts it's life as silicon, is put through a manufacturing process and out pops the magical beer glass at the end. From this point onwards, it undergoes constant change. To the naked eye, this is largely invisible, but with glass in particular, over time it begins to degrade. If I were to leave the glass somewhere safe for 1000 years, the glass would have deteriorated. This is a form of debt.
On a much shorter timeframe, I would also use the glass, maybe put it in the dishwasher, handwash and dry the glass.. This too degrades the glass. It can become scratched by the dishwasher process. Pieces might break off, during use. I might even accidentally smash the glass, after a big night of drinking. I'm sure many of you have done that. I'll just finish the night with a glass of water....crash!
If you accept that all objects degrade, then that is a form of debt. Because if the debt is not managed properly it can lead to problems:
This same concept, can also be applied to systems. Here is an example of a pictoresque, natural system.
A system is an interconnection of 2 or more things:
And for those that are technical....here is a great link explanining entropy in more detail:
The key takeaway from all this, is that once you understand that every system incurs debt, you can then shift your life around how to manage that debt. Which means whenever you delay some form of action or maintenance task, you're accruing debt, which will need to be paid back. Leave it too long, and the debt becomes progressively difficult to service. Over-servicing is bad too, as it's inefficient.
Let's use another great example to illustrate this concluding point. A car is considered a reasonably complex system. Most people own a car and it's certainly one of the most complex systems to manage.
If I ignore any faults that the car develops, and don't ensure it is regularly serviced. Then it will degrade and it will stop functioning. This might take months or years.
If on the other hand, I fix any critical faults immediately, ensure it is serviced once a year as per the manual, and tend to minor faults as required, I am effectively arresting the debt on the car. Some things I can't control though, such as the wearining of the engine and other critical parts, maybe degradation of the paint finish and any rust that may accrue. However I can slow the accrual of debt on those things by:
So next time, you're thinking about making economic decisions. Don't just consider the price point. Consider the total costs of ownership of your decision and factor in the accrual of debt in the equation. Remember that debt, will always need to be paid back. And a poor economic decision will compound that debt.
Paul Colmer is an AWS Senior Technical Trainer. Paul has an infectious passion for inspring others to learn and to applying disruptive thinking in an engaging and positive way.