Book a Call

Software Bloat

Software Bloat – A Problem for Our Times

Remember Windows Vista©? That was some major software bloat. An iteration after Windows 98® (which famously crashed during its launch event), Microsoft saw fit to flog the poor old horse one more time. I would get home from work, switch on the (brand new) computer, cook the kids their tea, watch them eat it, head upstairs and log in, head back downstairs, bathe them, put them to bed, read them stories, watch them drift off and head back to the study. If I was lucky, the system would be just about ready to do some work.

This is not an exaggeration.

Windows 95© had been revolutionary. It drove software and computer sales with its ease of use and user-friendly interface. Within two generations, the operating system had been rendered unusable by software bloat.

So What is Software Bloat?

Software bloat is the tendency, over time, for software to get bigger, buggier, slower and generally more horrible.

Software bloat is technical debt‘s evil twin.

How Does it Happen?

A bright, young developer writes a bit of software for her Mom & Pop employers, WidgetWeb. She’s pretty good, the app is lean, concise and contains the code for which it was designed and nothing more. It’s quite possible that she did one thing really clever late at night and didn’t document why or what that bit of code did.

Over time, the technology around the application changes. The chipset for the device it runs on changes (witness Apple’s change from Intel chips to their proprietary M-series), the browsers on which it is viewed change (Google’s Chrome is, as of January 2025, on version 132.0.6834.111) and so on. Eventually the app will just stop working quite as well.

By then, that bright young developer is a bit older, a bit more forgetful, gone into management or just plain gone.

Whoever sets about updating the software next needs to add code to ensure the application works with both the environment for which it was built (it was only a year or two ago) and works with a modern bang-up-to-date system.

Code which copes with multiple scenarios is necessarily bigger. The more switch, if, and else statements you add to the code, the more complicated it will be.

Complicated code is hard to understand and expensive to maintain well.

Remember that clever bit that the young genius put together? No one understands what it does (even her), but no one dares remove it … “It’s really clever, right? It must be important. Best leave it.“

Two Years Later …

Eighteen months ago, WidgetWeb Ltd was bought by the tech giants, the Plutonium Lustbuckets Corporation, whose first act was to axe half the newly-merged development team.

The application, for which the corporation went to the trouble of buying WidgetWeb Ltd, now has no one on the development team who actually, really, properly understands it.

Mom and Pop are fine – they’re in Florida now.

So to get the next iteration out, the Corporation switches the payment model to a subscription to monetise all the existing customers and bangs up the prices for new ones. The new development team dares not mess too far with the existing codebase so adds extra layers of code to cope with the proliferation of environments on which this was all expected to run.

It still needs to work with all those devices the customer base uses … some of their devices are now six or seven years old.

Oh, and by the way, the Corporation wants its app users to receive push notifications from the app. Customers are paying more; they need more functionality, right?

It Gets Worse

Some of the devices for which the application were originally written don’t exist any more.

  • Developer #1: “Can we get rid of those bits?”
  • Developer #2: “Not sure, the ‘customer success’ team will be onto us if features have gone.”
  • Developer #1: “Best leave it then.”

And So It Goes

You may not know the story, but you’re familiar with its effects. The nagging sense that your computer, tablet or phone is running less smoothly than it did when it popped out of the box.

Make no mistake, Software Bloat is costing you and the environment.

So What Can You Do About Software Bloat?

Honestly? Not all that much. You can replace your laptop every few years but that costs a lot. Don’t forget, some of these updates are related to security – they need to happen.

Bloat is technical debt – to some degree, some is inevitable.

You either need to earn more or be patient with your doddery old hardware.

So What Can Software Developers Do About It?

Believe it or not, developers have got better – and the benefits are already starting to be realised.

Mostly, projects are better planned and better documented, resulting in fewer arbitrary decisions.

Software is increasingly built over frameworks, which narrow the decisions an individual programmer can make, resulting in code which is simpler and easier to understand.

The IDE‘s developers use are better and tell them when code isn’t needed any more.

Sample code from a modern IDE - no usages for this method
“Look Mum, No Usages” – modern development programmes helps keep software lean.

Programming practices have got better – architectures have become more modular (parts of the code base can be changed without disrupting the whole).

It has been a long time since anyone batted an eye at the change of Windows version.

Making the Hard Decisions

Strangely, software which is not monetised often suffers less bloat. If the developers are not paid, it’s a labour of love and people will work hard for the things they love.

jQuery 4 will be out soon, they have jettisoned huge amounts of redundant code for this release. Blender is free forever and it remains fast and innovates constantly.

If your website it starting to chug, if you fell bugs are scuttling when your back is turned, contact Little Fire Digital.

We love this stuff.