The Invoice That Started an Argument

A client of mine launched her new booking website in the spring. Everything worked. Customers could book appointments, pay online, and get confirmation emails. She was thrilled.

Three months later, I sent her the first maintenance invoice. She called me almost immediately.

"But you already built it," she said. "It's done. Why am I paying you again?"

I get this question all the time. It's not rude, and it's not unreasonable. If you buy a table, you don't keep paying the carpenter every month to keep owning it. So why is software different?

Here's the honest answer: because software isn't a table. It's more like a garden. If you stop tending it, it doesn't just sit there quietly. It changes on its own, and usually not in your favor.

Most business owners I meet aren't trying to avoid paying for something fair. They just genuinely don't know that "finished" and "launched" mean two different things when it comes to software. Once you see why, the maintenance conversation stops feeling like an upsell and starts feeling like common sense.

Software Isn't a Building. It's a Living System.

When you finish building a house, the house is done. Gravity doesn't get an update next month. Bricks don't stop working because a neighbor changed something.

Software is different. It doesn't sit in a vacuum. It sits inside a constantly moving environment:

  • Browsers change. Chrome, Safari, and Edge push out updates every few weeks. Each update can quietly stop supporting an old way of doing something your site relies on.
  • Security threats change. New vulnerabilities get discovered in the tools developers use every day. In 2021, a flaw in a widely used logging tool called Log4j forced companies around the world to scramble and patch their systems within days, because attackers were actively exploiting it.
  • The building blocks change. Almost every website and app is built on top of dozens of smaller pieces of code written by other people. Those pieces get updated too, sometimes to fix a bug, sometimes to close a security hole. If your software doesn't keep pace, it slowly falls out of step with everything around it.

None of this is your developer's fault, and it isn't yours either. It's just how modern software works. It lives inside a world that keeps moving, whether you touch it or not.

What Actually Breaks, in Plain Terms

Here's a real example. A client's online contact form stopped working overnight. No one touched the code. What happened was a routine browser update quietly removed support for an old technique the form depended on. One day it worked. The next day, every visitor who tried to submit the form got nothing back. No error message, no warning. Just silence, and a slow leak of lost leads until we caught it.

This is exactly the kind of thing a maintenance plan exists to catch, usually before a customer ever notices. No one sends you a warning email before a browser update ships. The change just happens, quietly, in the background, and your website either keeps up or it doesn't.

What a Reasonable Maintenance Plan Actually Includes

Not every maintenance agreement looks the same, but a fair one should cover:

  • Security patches. Applying updates that close known vulnerabilities, before someone finds and uses them against you.
  • Dependency updates. Keeping the underlying building blocks of your software current, in small, manageable steps instead of one painful overhaul every few years.
  • Small bug fixes. The little glitches that show up after launch: a button that misbehaves on certain phones, a form field that doesn't save correctly.
  • Compatibility checks. Making sure your site still works properly as browsers, phones, and operating systems update themselves.
  • Monitoring. Someone watching for outages, slowdowns, or errors, ideally before your customers report them.

What it should not be is vague. A good agreement tells you roughly how many hours or tasks are included, what counts as an emergency, and how quickly you can expect a response.

The Real Cost of Skipping It

Skipping maintenance feels like saving money. For a while, it is. Nothing visibly breaks right away.

But the risk builds quietly in the background. A small, ten-minute fix today becomes a multi-day emergency eighteen months from now, after several updates have piled up and nobody has been watching. I've seen businesses lose a full week of online orders because a payment integration quietly stopped working and no one was checking. I've seen a security gap sit open for over a year, simply because no one was assigned to close it.

This is a different risk than losing your data in a crash, which is really about backups and business continuity, something I've written about separately here. Skipped maintenance is more subtle. Nothing dramatic happens. Your software just slowly drifts out of sync with the world around it, until one day something you depend on stops working, usually at the worst possible time.

It also compounds. The longer updates get delayed, the harder and more expensive it becomes to catch up later. That's related to a concept called technical debt, which I cover in more detail in this article. Maintenance is one of the simplest ways to keep that debt from piling up in the first place.

Questions to Ask Before You Sign a Maintenance Agreement

Before you agree to any ongoing maintenance arrangement, ask:

  • What exactly is included each month, and what costs extra?
  • How fast will you respond if something breaks completely?
  • Will I get a plain-language summary of what was done, or just a bill?
  • Who owns the code and the login credentials, in case we ever part ways?
  • What happens if I skip a month? Does anything build up, or does it just reset?

A trustworthy developer will answer these questions without getting defensive. If someone can't explain clearly what you're paying for, that's worth noticing. And if a proposal has no maintenance option at all, that's worth noticing too.

The Bottom Line

Your software isn't finished the day it launches. It's alive, sitting inside a world of browsers, security threats, and other people's code that keeps shifting under it. A reasonable maintenance plan isn't a sales tactic. It's how you keep something valuable from quietly falling apart while no one is watching.

If you're not sure whether your current setup is protected, or you're evaluating a maintenance proposal and want a second opinion, let's talk through your situation.