CTO Compass series
- Welcome to The CTO Compass
- Solving Problems with Precision: The Science of Structured Thinking
- Are you response-able?
- Keep Score and Watch Your Performance Soar
- The Importance of Software Maintenance For Successful Software
- How To Make Good Contracts With Yourself
- Does your business have an operating system?
- 🧹 Messy Code, Messy Kitchen – It’s time to do the washing up
- How to be 37 times better by this time next year
- Good Timber Does Not Grow With Ease
- Create a compelling vision for your organisation
- Why embracing Tsundoku will make you more insightful and a more interesting person
- The Maintenance Burden: What You Don’t See When Adding New Features
- 8 tips for improving your decision-making
- How to fix your time and attention leaks
- Faking It Until You Make It: Why You Don’t Have to Automate Everything (Yet)
- How to turn Positive Thinking into Positive Action
- How to take advantage of alignable differences to make change more acceptable
- Your chair may be trying to kill you – and what to do about it
- How to craft your day for maximum focus
- 1000 seconds to boost your focus, energy and well-being
When you think about adding a new room to your house, it's natural to first think of all the benefits you hope you'll gain from it.
Of course, then it’s down to reality to figure out what it might cost to bring to fruition. You’ll undoubtedly get quotes from builders and other trades to get windows put in, a floor laid, and lights and electrics in. You’ll also likely budget for decorating and fitting it out.
But I bet you haven’t considered the extra maintenance burden you’ve added for the rest of your home-owning life.
Sure, you’ve likely added value to your home, but now you have at least one extra room to dust, vacuum, tidy up and so on. An extra 15 minutes a week for cleaning adds up to 65 hours over a five-year period! It will also need to be periodically repainted and decorated. There are more windows to clean, and the roof and guttering must be maintained. All of this is an ongoing commitment for as long as you own the property.
The pressure to delay maintenance is constant in almost every organisation
Now, let’s turn to software; every feature added to a system is another room added to an existing house.
At a certain point, your house will be like a rabbit warren, with room after room added onto the next. You’ll need a map to find the room you want, or you may have to crawl through a tunnel to get to some of them because there wasn’t the time or budget to remodel properly by demolishing or repurposing a few existing rooms to accommodate the latest additions better.
The pressure to delay maintenance is constant in almost every organisation; new features and functionality are always more desirable since they more clearly appear to add value to the organisation.
But, as I’ve written about before, software is never done. Even if you consider your software as done, you’re actually moving backwards because everything else around you continues forward. First, it’s unlikely that all your competitors are stagnant; and in the web application industry, there are constant updates to browsers, programming languages, frameworks and libraries, and security vulnerabilities are always being discovered and fixed.
When you add a new feature, you must at least be aware of the additional maintenance burden and drag added to the system. Without sufficient time to properly maintain and improve the system outside or alongside the new feature requests, the net result is often frustrating on all sides. The new features will inevitably take longer than expected because to fit it in, pipes must be re-routed, a freshly laid floor has to be ripped up, and so on. All unexpected and unplanned. Budgets are then exceeded and have to be expanded. Or, shortcuts are taken. While things might look fine on the surface, now the overall problem is a little worse and has been shoved a little further down the road.
It’s often seen to be a confounding idea, but getting rid of features and code that are unused or not providing sufficient value is a Good Thing™. It reduces complexity and cognitive load and removes friction that gets in the way of delivering real new value more quickly, and that hidden cost of maintenance comes down too.
⚡️ Thinking Time ⚡️
In your Thinking Time this week, if you have software you’re responsible for, you could consider whether there are features that are no longer pulling their weight and whether their removal would be a net benefit to your users and their use of the system.
However, the core idea equally applies elsewhere. By periodically reviewing your systems and processes and removing what is no longer necessary, you can simplify your life and make it easier to focus on what really matters.
- What does not provide sufficient value in my life or the business?
- What can you cull?