Subscription9 min read

Application maintenance: the real cost, and how to pay for it

Application maintenance covers the work that keeps software useful after go-live: fixing, evolving, preventing. Handed to a provider, it is often called a maintenance contract. For companies with a product in production: what it costs, three ways to pay for it, and how to lower the bill.

Cover reading Application maintenance: the real cost, on a sand background with an orange disc.
Table of contents

What does application maintenance cover?

Your software is in production. The agency that built it delivered, invoiced, and offered “a maintenance contract”. Six months later, an export breaks, a library shows a security warning, and a customer asks for a feature everyone finds obvious. Three problems, one contract, and the question: which one is covered?

Application maintenance, or third-party application maintenance (TMA in France) when handed to a provider, refers to all the work that keeps software running and useful after go-live. It covers three distinct families, and that is where contracts diverge.

A classic maintenance contract covers the first, often caps the third, and almost always excludes the second. Yet on a product with users, the second is what shows up every week.

How much does application maintenance cost?

You often read that maintenance costs between 15 and 20% of the initial development cost per year. That is a rule of thumb quoted by providers, not a measurement: it depends on the age of the code, the stack, and above all on what the contract includes. What matters more is how you pay, because it decides what happens when a need arrives.

Three contracts for the same maintenance (benchmarks checked on 22 September 2026)
CriterionMaintenance contractStaff augmentationSubscription
What you payA monthly or yearly package, with a cap on hoursDeveloper days, on demandA fixed monthly price, one active request at a time
FixesIncluded, within the capBilled by timeA request in the queue
EvolutionsOut of contract, on quoteBilled by timeA request in the queue
PreventionDepends on the contract, often minimalIf you ask for itA request in the queue
CommitmentA year, usuallyThe assignmentOften none
When nothing breaksYou pay the packageYou pay nothingThe queue moves on evolutions

At Figue Unlimited, the subscription is €1,990 per month ex VAT at public price, with lower launch pricing for the first clients, no commitment. That price covers all three kinds of maintenance and the rest: a bug and a feature are two requests, handled in the order you choose.

The full cost of the models, employee and freelancer included, is detailed in how much does a developer cost in 2026.

What drives the bill up?

The bug itself rarely costs much. What costs is everything that makes the bug slow to find and risky to fix. Four causes come up in almost every piece of software we take over.

01

Code nobody understands

The developer left, the agency changed teams, the documentation never existed. Every fix starts with an investigation. It is the first cost item of any maintenance, and it is invisible in the quote.

02

Dependencies never updated

Software relies on dozens of libraries. Left alone for two years, they pile up known vulnerabilities and incompatibilities. The day you have to catch them all up at once, it is a project, not an intervention.

03

Missing tests

Without automated tests, every fix can break another without anyone seeing it before a customer does. Maintenance becomes dominoes, and every delivery needs a full manual check.

04

Scattered hosting and access

The domain with one provider, the server with another, API keys in an inbox. A simple intervention waits three days for someone to find an access. Gathering all of it under your name is the first request we drop for a client we take over.

Taking over code you did not write needs preparation: taking over code from a vendor details what to ask for beforehand.

The trap of the classic maintenance contract

A maintenance contract is not a bad contract. It is made for stable software that no longer changes and needs to be kept running. The trap is signing it for a product that lives.

On a living product, needs arrive every week, and almost all of them are evolutions. With a maintenance contract, each one falls outside: quote, delay, amendment. You end up paying a package for what rarely happens (the bug) and a quote for what happens all the time (the need). The cap on hours does the rest: reached in March, it turns every April fix into an extra.

“If you ask for a quote to add a button, you do not have a maintenance contract. You have an agency waiting for your product to move so it can bill.”

What we tell clients coming from a maintenance contract

The question to ask before signing: is my product finished? If it is, a maintenance contract is enough. If it has users asking for things, it is not, and never will be.

Maintenance and evolutions in the same queue

Development as a service changes one simple thing: it does not distinguish fixes from evolutions. A bug is a request. A feature is a request. A dependency update is a request. They enter the same queue, you order them, the team takes the top of the queue.

What it changes day to day: a blocking bug goes to the top of the queue as soon as you decide, with no ticket or qualification; it starts as soon as the slot frees up. The security update nobody budgets becomes a two-day request, slipped between two features. And the quote disappears: the budget is the month's, whatever the mix of fixes and evolutions.

The limit is the same as for the whole model: one active request at a time per slot, no on-call cover, no guaranteed intervention at night or on weekends. For critical software that requires round-the-clock cover, a maintenance contract with on-call duty remains the right answer, and it has its price.

The full workings of the model are on the unlimited development page.

How to lower the cost of maintenance?

Whatever the contract, six practices reduce the bill. None is technical from the client's point of view: they are requests to drop.

On the last one, we wrote when to rebuild and when to evolve: technical debt: rebuild or evolve.

Frequently asked questions

Application maintenance, in questions

What we get asked when a contract comes up for renewal.

How much does application maintenance cost per month?

There is no universal figure. The 15 to 20% of development cost per year benchmark is an order of magnitude quoted by providers; what really decides is what the contract includes. A development subscription like Figue Unlimited, at €1,990 per month ex VAT at public price, with lower launch pricing for the first clients, covers fixes, evolutions and prevention in the same queue.

Are a maintenance contract and development as a service the same thing?

No. A maintenance contract fixes and maintains, often with a cap on hours, and bills evolutions separately. A subscription puts fixes and evolutions in the same queue, with no cap on requests, one active request at a time.

Can I change maintenance provider?

Yes, provided you have the code, the access and minimal documentation. If you do not, that is the first thing to recover, even before choosing the next one. A provider who refuses to hand over the code tells you something about the contract you signed.

If my software has no bugs, am I paying for nothing?

With a fixed maintenance package, yes: the fee is due whether it breaks or not. With a subscription, the queue moves on evolutions and prevention when nothing breaks. With staff augmentation, you pay nothing, but you wait for the developer's availability when it does break.

Do I need on-call cover?

Only if an outage at night costs more than the on-call duty. For most business tools and SaaS in France, business hours are enough. Figue Unlimited does not include on-call cover, and says so before you sign.