A maintenance contract is simply an agreement on who keeps the system healthy after delivery, how fast they react, and what that costs. It should give you predictability, not a new form of lock-in.
What maintenance actually covers
"Maintenance" is four different things, often mixed together:
- Corrective: fixing bugs and failures
- Preventive: updates, security patches, monitoring, backups, renewals
- Adaptive: adjusting to external changes (a payment provider changing its API, a new PHP version, a new tax rule)
- Evolutive: new features and improvements
Most contracts include the first two, sometimes the third, and almost never the fourth without extra billing. Make sure the contract says so explicitly.
What a good contract includes
Scope: what is covered
- The exact systems and components (application, servers, database, integrations, domains)
- What counts as a bug (the system does not do what was specified) versus a change request (you want it to do something new)
- Which environments are covered (production, staging)
- Whether third-party components (plugins, themes, connectors) are covered, and who is responsible when an update from a third party breaks something
Preventive tasks, listed
Vague promises like "we take care of everything" are not useful. List what happens and how often:
- Security updates of the operating system, runtime and framework
- Updates of plugins and dependencies
- Backup monitoring and a restore test at a defined frequency (see backups that actually restore)
- Certificate and domain renewal checks
- Uptime and error monitoring
- Log review and disk, memory and database health checks
- A short periodic report of what was done
Response and resolution times
Distinguish response time (someone acknowledges the problem) from resolution time (it is fixed). Define severity levels:
| Level | Example | Response | Target resolution |
|---|---|---|---|
| Critical | Site or ordering down | Within hours | Same day |
| Major | Key feature broken, workaround exists | Within a business day | Within days |
| Minor | Cosmetic or rare issue | Within a few days | Next planned release |
The numbers are for you to negotiate. What matters is that they exist, that the hours they apply to are stated (business hours or 24/7), and that you know what happens when they are missed.
Availability and contact
- How to report an incident (a channel that is actually monitored)
- An emergency contact, and whether it is a person or a shared channel
- What happens when the main person is on holiday or ill (see the single-point-of-failure issue in warning signs when hiring a freelance developer)
Included time, and the rate beyond it
Many contracts include a number of hours per month or year. Check:
- What the hours cover (fixes, support questions, updates, small changes)
- Whether unused hours carry over or expire
- The rate for work beyond the included hours
- How hours are tracked, and whether you receive a statement
Price and indexation
- Fixed monthly or yearly fee, and what it includes
- How and when the price can change, and with what notice
- Third-party costs (hosting, licences, monitoring tools): included or passed through at cost? If passed through, do you pay them directly (preferable) or via re-invoicing?
Security and data
- Access is limited and revocable, and credentials are managed properly (see offboarding and access removal)
- Personal data handling is covered by a data processing agreement where relevant (see GDPR and test environments)
- Incident notification: the provider tells you promptly when something affects your data or availability
Duration, renewal and exit
This is where maintenance contracts quietly become lock-in:
- Initial duration (a year is common)
- Automatic renewal: with what notice period to cancel? Long automatic renewals with a short cancellation window are a trap
- Termination for convenience, with a reasonable notice period
- Handover obligations at the end: documentation up to date, access transferred, support hours for transition (see the exit plan and contract clauses)
Need a maintenance arrangement that leaves you free?
We can help define scope, response times and exit terms, or take over monitoring and updates on infrastructure you own.
What it shouldn't include
- A penalty for leaving that makes switching unreasonable
- Exclusive rights: a clause stating only the current provider may touch the system
- Withholding of access, code or accounts during a dispute (see contract clauses)
- Unlimited, vague scope at a very low price. If it looks too cheap, nobody is really watching the system
- Silent price increases or new fees for things previously included
- Ownership of fixes: improvements made during maintenance should belong to you like the rest of the deliverable
Different models for different needs
- Pay as you go (time and materials). No monthly fee, you call when needed and pay the rate. Cheap for stable systems, but nobody is watching in between, and response times are not guaranteed. Suits small, low-risk sites with an up-to-date setup.
- Fixed retainer. A monthly fee for preventive tasks and a block of hours. Predictable, and it keeps someone familiar with your system. Suits business-critical systems.
- Monitoring only. The provider watches and alerts, and fixes are billed separately. A reasonable middle path.
- Full managed service. The provider operates the system, with availability commitments. More expensive, appropriate when downtime is costly and you have no internal ability to react.
Choose according to the cost of an outage for your business, not according to the price alone. Ask yourself: what does one day of downtime cost us?
Questions to ask before signing
- What exactly is covered, and what is excluded?
- What counts as a bug and what counts as a change request?
- What are the response and resolution times, and at what hours?
- Who will work on it, and who replaces them when they are unavailable?
- How many hours are included, and what happens to unused ones?
- What does extra work cost?
- Do you test backup restores, and how often?
- How are third-party updates that break something handled?
- How long is the contract, and how do I leave it?
- What do I receive if I stop: documentation, access, support for transition?
Signs a maintenance contract is working
- You receive a short regular report (updates applied, incidents, backup status, certificate dates)
- Problems are found by the provider before you notice
- Updates are applied in a test environment first, then to production
- The documentation is updated after changes (see the documentation you should demand at delivery)
- Costs match what was announced
Signs it isn't
- You only hear from the provider when it is time to invoice
- Nobody can tell you the date of the last successful backup restore test
- Software versions on your server are years old
- Every request is "outside the contract"
- The provider is the only person with credentials, and you cannot see what they do
Common mistakes
- Having no maintenance at all because "the site works"
- Confusing hosting with maintenance. Hosting keeps the server running, it does not update your application
- Paying for maintenance without ever checking what was done
- Accepting long automatic renewals
- Not defining what an emergency is
- Letting the contract drift out of date as the system grows
- Paying for "unlimited support" that is in practice unavailable
Checklist
- Covered systems and environments listed
- Bug versus change request defined
- Preventive tasks listed, with frequency
- Severity levels with response and resolution times
- Emergency contact and replacement person identified
- Included hours, carry-over rule and extra rate stated
- Third-party costs paid directly by us, or clearly passed through
- Data protection and access rules defined
- Duration, renewal notice and termination clear
- Handover obligations at the end written down
- Regular reporting agreed
From a vague retainer to clear terms
If you want a second look at scope, response times and exit before you renew, write us. We answer on substance.
Un contrat de maintenance est simplement un accord sur qui garde le système en bonne santé après la livraison, à quelle vitesse il réagit, et ce que cela coûte. Il doit vous donner de la prévisibilité, pas une nouvelle forme de lock-in.
Ce que couvre vraiment la maintenance
« Maintenance » désigne quatre choses différentes, souvent mélangées:
- Corrective: corriger bugs et pannes
- Préventive: mises à jour, correctifs de sécurité, monitoring, sauvegardes, renouvellements
- Adaptive: s'ajuster aux changements externes (un prestataire de paiement qui change son API, une nouvelle version de PHP, une nouvelle règle fiscale)
- Évolutive: nouvelles fonctions et améliorations
La plupart des contrats couvrent les deux premières, parfois la troisième, et presque jamais la quatrième sans facturation supplémentaire. Assurez-vous que le contrat le dise explicitement.
Ce qu'un bon contrat inclut
Périmètre: ce qui est couvert
- Les systèmes et composants exacts (application, serveurs, base de données, intégrations, domaines)
- Ce qui compte comme bug (le système ne fait pas ce qui était spécifié) versus demande d'évolution (vous voulez qu'il fasse quelque chose de nouveau)
- Quels environnements sont couverts (production, staging)
- Si les composants tiers (plugins, thèmes, connecteurs) sont couverts, et qui est responsable quand une mise à jour tierce casse quelque chose
Tâches préventives, listées
Les promesses vagues du type « on s'occupe de tout » ne servent à rien. Listez ce qui se passe et à quelle fréquence:
- Mises à jour de sécurité du système d'exploitation, du runtime et du framework
- Mises à jour des plugins et dépendances
- Suivi des sauvegardes et un test de restauration à une fréquence définie (voir des sauvegardes qui restaurent vraiment)
- Vérifications de renouvellement des certificats et des domaines
- Monitoring de disponibilité et d'erreurs
- Revue des logs et contrôles de santé disque, mémoire et base de données
- Un court rapport périodique de ce qui a été fait
Délais de réponse et de résolution
Distinguez le délai de réponse (quelqu'un accuse réception du problème) du délai de résolution (c'est corrigé). Définissez des niveaux de sévérité:
| Niveau | Exemple | Réponse | Résolution cible |
|---|---|---|---|
| Critique | Site ou commandes indisponibles | En quelques heures | Le jour même |
| Majeur | Fonction clé cassée, contournement possible | Sous un jour ouvré | Sous quelques jours |
| Mineur | Problème cosmétique ou rare | Sous quelques jours | Prochaine livraison prévue |
Les chiffres sont à négocier. Ce qui compte, c'est qu'ils existent, que les plages horaires d'application soient écrites (heures ouvrées ou 24/7), et que vous sachiez ce qui se passe en cas de manquement.
Disponibilité et contact
- Comment signaler un incident (un canal réellement surveillé)
- Un contact d'urgence, et s'il s'agit d'une personne ou d'un canal partagé
- Ce qui se passe quand la personne principale est en congés ou malade (voir le point de défaillance unique dans signaux d'alerte quand on engage un développeur freelance)
Temps inclus, et le tarif au-delà
Beaucoup de contrats incluent un nombre d'heures par mois ou par an. Vérifiez:
- Ce que les heures couvrent (corrections, questions de support, mises à jour, petits changements)
- Si les heures non utilisées sont reportées ou expirées
- Le tarif pour le travail au-delà des heures incluses
- Comment les heures sont suivies, et si vous recevez un relevé
Prix et indexation
- Forfait mensuel ou annuel, et ce qu'il inclut
- Comment et quand le prix peut évoluer, et avec quel préavis
- Coûts tiers (hébergement, licences, outils de monitoring): inclus ou refacturés au prix coûtant ? Si refacturés, les payez-vous directement (préférable) ou via une refacturation ?
Sécurité et données
- Les accès sont limités et révocables, et les identifiants sont gérés correctement (voir checklist d'offboarding et retrait d'accès)
- Le traitement des données personnelles est couvert par un accord de traitement là où c'est pertinent (voir RGPD et environnements de test)
- Notification d'incident: le prestataire vous prévient rapidement quand quelque chose touche vos données ou votre disponibilité
Durée, reconduction et sortie
C'est là que les contrats de maintenance deviennent discrètement un lock-in:
- Durée initiale (un an est courant)
- Reconduction automatique: avec quel préavis pour résilier ? Les reconductions longues avec une fenêtre de résiliation courte sont un piège
- Résiliation pour convenance, avec un préavis raisonnable
- Obligations de passation à la fin: documentation à jour, accès transférés, heures de support pour la transition (voir le plan de sortie et les clauses de contrat)
Besoin d'une maintenance qui vous laisse libres ?
On peut aider à définir périmètre, délais de réponse et conditions de sortie, ou reprendre le monitoring et les mises à jour sur une infrastructure que vous possédez.
Ce qu'il ne doit pas inclure
- Une pénalité de départ qui rend le changement déraisonnable
- Des droits exclusifs: une clause affirmant que seul le prestataire actuel peut toucher au système
- La rétention d'accès, de code ou de comptes pendant un litige (voir les clauses de contrat)
- Un périmètre illimité et vague à un prix très bas. S'il paraît trop bon marché, personne ne surveille vraiment le système
- Des hausses de prix silencieuses ou de nouveaux frais pour des choses autrefois incluses
- La propriété des correctifs: les améliorations faites en maintenance doivent vous appartenir comme le reste du livrable
Différents modèles selon les besoins
- À la demande (régie). Pas de forfait mensuel, vous appelez au besoin et payez le tarif. Peu cher pour des systèmes stables, mais personne ne surveille entre deux, et les délais de réponse ne sont pas garantis. Convient aux petits sites à faible risque, à jour.
- Forfait fixe. Un forfait mensuel pour les tâches préventives et un bloc d'heures. Prévisible, et quelqu'un reste familier avec votre système. Convient aux systèmes critiques pour l'activité.
- Monitoring seul. Le prestataire surveille et alerte, les corrections sont facturées à part. Un compromis raisonnable.
- Service managé complet. Le prestataire exploite le système, avec des engagements de disponibilité. Plus cher, adapté quand l'indisponibilité coûte cher et que vous n'avez pas de capacité interne pour réagir.
Choisissez selon le coût d'une panne pour votre activité, pas selon le prix seul. Demandez-vous: que nous coûte un jour d'indisponibilité ?
Questions à poser avant de signer
- Qu'est-ce qui est exactement couvert, et qu'est-ce qui est exclu ?
- Qu'est-ce qui compte comme bug et comme demande d'évolution ?
- Quels sont les délais de réponse et de résolution, et sur quelles plages horaires ?
- Qui travaillera dessus, et qui le remplace en cas d'indisponibilité ?
- Combien d'heures sont incluses, et que deviennent celles non utilisées ?
- Combien coûte le travail supplémentaire ?
- Testez-vous les restaurations de sauvegarde, et à quelle fréquence ?
- Comment sont gérées les mises à jour tierces qui cassent quelque chose ?
- Quelle est la durée du contrat, et comment le quitter ?
- Que reçois-je si j'arrête: documentation, accès, support de transition ?
Signes qu'un contrat de maintenance fonctionne
- Vous recevez un court rapport régulier (mises à jour appliquées, incidents, statut des sauvegardes, dates de certificats)
- Les problèmes sont détectés par le prestataire avant que vous ne les remarquiez
- Les mises à jour passent d'abord en environnement de test, puis en production
- La documentation est mise à jour après les changements (voir la documentation à exiger à la livraison)
- Les coûts correspondent à ce qui a été annoncé
Signes que ce n'est pas le cas
- Vous n'entendez parler du prestataire qu'au moment de facturer
- Personne ne peut vous donner la date du dernier test de restauration de sauvegarde réussi
- Les versions logicielles sur votre serveur ont plusieurs années de retard
- Chaque demande est « hors contrat »
- Le prestataire est la seule personne avec les identifiants, et vous ne voyez pas ce qu'il fait
Erreurs fréquentes
- N'avoir aucune maintenance parce que « le site marche »
- Confondre hébergement et maintenance. L'hébergement garde le serveur allumé, il ne met pas à jour votre application
- Payer une maintenance sans jamais vérifier ce qui a été fait
- Accepter des reconductions automatiques longues
- Ne pas définir ce qu'est une urgence
- Laisser le contrat devenir obsolète à mesure que le système grandit
- Payer un « support illimité » qui est en pratique indisponible
Checklist
- Systèmes et environnements couverts listés
- Bug versus demande d'évolution défini
- Tâches préventives listées, avec fréquence
- Niveaux de sévérité avec délais de réponse et de résolution
- Contact d'urgence et personne de remplacement identifiés
- Heures incluses, règle de report et tarif hors forfait écrits
- Coûts tiers payés directement par nous, ou clairement refacturés
- Règles de protection des données et d'accès définies
- Durée, préavis de reconduction et résiliation clairs
- Obligations de passation en fin de contrat écrites
- Reporting régulier convenu
Du forfait flou aux termes clairs
Si vous voulez un second regard sur le périmètre, les délais de réponse et la sortie avant de reconduire, écrivez-nous. On répond sur le fond.