Application maintenance: the real cost, and how to pay for it
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.
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.
02
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)
Criterion
Maintenance contract
Staff augmentation
Subscription
What you pay
A monthly or yearly package, with a cap on hours
Developer days, on demand
A fixed monthly price, one active request at a time
Fixes
Included, within the cap
Billed by time
A request in the queue
Evolutions
Out of contract, on quote
Billed by time
A request in the queue
Prevention
Depends on the contract, often minimal
If you ask for it
A request in the queue
Commitment
A year, usually
The assignment
Often none
When nothing breaks
You pay the package
You pay nothing
The 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 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.
04
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.”
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.
05
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.
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.