TODO: A never-ending fight
Most of the code we write for work comes with a clock. We desire our code to accomplish its goal admirably, handle things that we have thought of, and also things we haven’t. But often comes a time when there are things you want to do but can’t do, at least then. Mostly because you don’t have time, sometimes you don’t have the mood 😉. This is when we add a TODO. A TODO is a note to do something in the future, which we know needs to be done but are incapable of doing it right then; it is the post-it of code.
Technical debt is the term used for things that were not done and left for later. These are generally worked on when the team has effort to spare. In most cases, this is the least important thing on anyone’s plate and hence, gets neglected. This requires teams to come up with processes to avoid accumulating a mountain of debt. It may be as simple as having a cleaning schedule, a set of days when the team decides that they will only focus on clearing up the debt, a sort of Spring cleaning if you will. Others may resort to beating a couple TODOs every time they work, a continuous and never-ending effort since it is understood growing code means growing debt.
‘Above the Line, Below the Line’ beautifully explains the reality of maintaining software. Considering the complex nature of it, TODOs can fall through the cracks and go unnoticed until they cause a failure.
Having an ever-changing plan to manage the ever-growing technical debt can give substantial dividends, avoid the crashes below the horizon, and maintain software better.
I would recommend everyone working with software to give ‘Managing Technical Debt’ a read and make tech-debt plans for your projects. Don’t let the post-its hold you down.