
Custom software maintenance in Quebec: budgets, contracts and best practices
Launch day isn't the end of the project; it's the start of the software's life. Yet maintenance is almost always the forgotten line in budgets, and it's precisely what turns a good investment into an expensive source of frustration two years later.
This guide demystifies custom software maintenance in Quebec: how much to plan for, what kinds of contracts exist, what should be included, and how to keep your software from degrading in silence.
Why software needs maintenance
Software isn't a piece of furniture: it lives in an environment that changes constantly. Without upkeep, it degrades, a phenomenon called software rot. Four forces contribute to it:
- The ecosystem evolves: browsers, operating systems, libraries and third-party APIs update. What works today can break tomorrow.
- Security is a moving target: new vulnerabilities are discovered constantly. An unapplied patch becomes a doorway.
- Your needs change: your business grows, your processes evolve, your users request improvements.
- Bugs emerge: even well-tested software reveals edge cases in real use.
The realistic budget: 10 to 20% per year
The industry rule of thumb, confirmed in Quebec: plan for 10 to 20% of the initial development cost, per year, for maintenance and support.
| Development cost | Annual maintenance (10–20%) |
|---|---|
| $50,000 | $5,000 – 10,000 |
| $120,000 | $12,000 – 24,000 |
| $300,000 | $30,000 – 60,000 |
The exact percentage depends on complexity, the number of integrations and the expected service level. Critical software with high availability requirements will sit at the top of the range. This line must appear in your ROI calculation from the start; ignoring it completely distorts the analysis.
What maintenance really covers
Not everyone means the same thing by "maintenance." It breaks down into four categories:
1. Corrective maintenance
Fixing the bugs that appear. It's what most people think of, but it's actually the smallest share.
2. Adaptive maintenance
Updating the software so it keeps working when its environment changes (a new version of a browser, an API, an operating system).
3. Preventive maintenance
Security updates, dependency management, monitoring, backups. It's the most neglected category, and the most important for avoiding disasters.
4. Evolutive maintenance (improvements)
Adding features, improving performance, refining the experience. Technically evolution rather than maintenance, but often grouped into the same contract.
The types of maintenance contracts
On-demand (time and materials)
You pay by the hour when a problem arises. Pro: flexible, no commitment. Con: no preventive maintenance, variable response times, and the bill can surprise you in an emergency.
Monthly retainer
A monthly block of hours at an agreed rate, covering monitoring, fixes and small improvements. Pro: predictable, proactive, ongoing relationship. Con: you pay even in quiet months. It's the option we recommend for any critical software.
Service-level agreement (SLA)
For software where availability is crucial: guaranteed response and resolution times. Pro: maximum security. Con: higher cost, justified only if downtime truly costs you dearly.
Tip: for software that touches your revenue or operations, a monthly retainer is almost always the best choice. Preventive maintenance costs a fraction of what an unanticipated outage costs.
Technical debt: the silent enemy
Technical debt is the accumulation of shortcuts and deferred upkeep that make software increasingly hard and costly to modify. Like financial debt, it accrues interest: the longer you wait, the more it costs.
Skipping maintenance to "save money" is the classic false economy. You save a few thousand dollars short-term, then pay for a five- or six-figure rebuild because the software became impossible to evolve. A good starting architecture and regular maintenance are the two best protections.
How to avoid becoming a vendor's prisoner
A real risk: depending entirely on whoever built the software. Protect yourself from the initial contract:
- The code in YOUR Git repository, not the vendor's.
- Up-to-date documentation (technical and functional).
- A transfer clause that lets another team take over.
- No opaque proprietary dependencies you couldn't take over.
These points should be part of your criteria when you evaluate an agency.
Two stories, two outcomes
The company that skipped maintenance. An SME has a portal built for $90,000, then decides "not to pay for maintenance" to save money. For 18 months, all is well. Then a third-party library stops being supported, a security flaw is published, and a change at its payment provider breaks transactions. No one was monitoring. The emergency upgrade, with aged code, expired dependencies and no up-to-date documentation, costs $40,000 and three weeks of partial downtime. The initial "saving" turned into a net loss.
The company that paid a retainer. Another SME, a similar project, signs a maintenance retainer at $1,200/month. Each month, the team applies security patches, updates dependencies, monitors performance and fixes small irritants. In two years, no major incident, the software evolved with the business, and the total cost stayed predictable. When the time came to add a module, the code was clean and the addition was fast.
The difference isn't luck: it's preventive maintenance. The first company paid for its upkeep all at once, painfully; the second smoothed it out and avoided the crisis.
Why maintenance is cheapest when it's boring
The paradox of good maintenance is that when it's working, nothing happens, and "nothing happening" is hard to justify on a budget line. A retainer that quietly applies patches, bumps dependencies and watches the logs produces no visible deliverable in a calm month, which is exactly why it's the first thing cut when money is tight. But the absence of incidents isn't luck or slack; it's the product being paid for. The teams that treat maintenance as insurance against a predictable failure, rather than as a cost to minimize, are the ones that never face the emergency rebuild. Boring months are the deliverable.
There's also a compounding effect worth understanding. Software that's kept current is cheap to keep current: each update is small, the gap between your version and the latest is narrow, and changes are low-risk. Software that's left alone for two years falls off a cliff: the dependencies are several major versions behind, the upgrade path is no longer smooth, and what would have been a routine afternoon becomes a multi-week project with real risk of breakage. Maintenance isn't linear; deferring it doesn't postpone the cost, it inflates it. The cheapest moment to update anything is almost always now, while the distance to travel is still short.
Frequently asked questions
How much does custom software maintenance cost in Quebec?
Budget 10 to 20% of the initial development cost per year. A $120,000 piece of software therefore implies a maintenance budget of $12,000 to $24,000 annually.
Can I skip maintenance to save money?
It's risky. Without preventive maintenance, software becomes vulnerable and accumulates technical debt, which often leads to a costly rebuild. Maintenance protects your investment.
Must I stay with the agency that developed my software?
Not necessarily, if the initial contract provides for code transfer, documentation and the absence of proprietary locks. Another team can then take over, but continuity with the original team remains the most efficient option.
What's the difference between maintenance and improvements?
Maintenance keeps the software functional and secure; improvements add value (new features, performance). Many retainer contracts cover both.
Protect your software investment
Maintenance isn't an optional cost; it's what determines whether your software stays an asset or becomes a burden. Budget it from the start, choose the right contract type, and demand the protections that guarantee your independence.
We offer clear, proactive maintenance contracts as part of our software development and cloud and DevOps services. Book a free discovery call to discuss the right maintenance plan for your software.
