Un contrat de maintenance avec SLA tient en quelques clauses mesurables : ce qui est inclus, ce qui ne l’est pas, le délai pour accuser réception, le délai pour rétablir, et la façon de compter les minutes. Une phrase vague sur la surveillance n’est pas une clause. Une clause dit quelles URL, quel code HTTP est attendu, et à partir de quand l’horloge tourne.
Écrire le périmètre avant les délais
Les délais n’ont de sens que sur un périmètre nommé. Listez les URL couvertes en annexe : au minimum l’accueil, la page de prise de contact ou de paiement, et la connexion à l’administration si vous vous engagez dessus. Une URL absente de l’annexe n’ouvre pas le délai, même si le client la juge importante le jour de l’incident.
| Sujet | À écrire comme inclus | À écrire comme exclu, ou chiffré à part |
|---|---|---|
| Disponibilité | Les URL de l’annexe répondent dans le code convenu | Les sites de tiers (paiement externe, carte embarquée) |
| Mises à jour | Cœur, extensions et thème, sur une copie puis en production | Une refonte, un nouveau modèle de page, un changement d’offre |
| Sauvegardes | Fréquence, lieu de stockage, test de restauration | Une restauration demandée parce que le client a effacé un contenu, si vous la facturez |
| Correctifs | Correction d’une régression introduite par une mise à jour que vous avez faite | Un développement spécifique demandé après coup |
| Hébergement | Seulement si vous êtes le contrat d’hébergement | Le serveur du client chez un autre prestataire, sauf mission d’intermédiation écrite |
Si l’hébergement n’est pas le vôtre, le contrat le dit : vous qualifiez, vous ouvrez le ticket chez l’hébergeur, vous ne promettez pas le délai de son datacenter. Promettre un rétablissement en une heure sur une machine que vous ne contrôlez pas transforme le SLA en vœu.
Deux horloges
Définissez deux durées, par niveau.
Niveau 1 : l’accueil ou la page de paiement répond autre chose que le code convenu (en pratique un 500, 502, 503 ou 504, ou un délai sans réponse), en dehors d’une fenêtre annoncée. Prise en charge : par exemple une heure pendant les heures ouvrées, ou un délai plus court si vous vendez une astreinte. Rétablissement : une cible séparée, plus longue, parce que la cause n’est pas connue au moment où vous accusez réception.
Niveau 2 : une page secondaire, un formulaire qui n’envoie plus, un certificat qui expire dans moins de quatorze jours. Prise en charge le jour ouvré suivant. Pas d’astreinte.
L’horloge de prise en charge démarre à l’heure du signal convenu : votre constat, ou le message du client sur le canal nommé dans le contrat (adresse e-mail, pas un réseau social). Un message à minuit sur un canal non prévu ne lance pas l’horloge d’un contrat en heures ouvrées. Écrivez le canal. Écrivez le fuseau.
Le pourcentage de disponibilité, s’il figure au contrat, a sa propre clause : période de calcul, formule, exclusions. Ne le mélangez pas avec le délai de prise en charge. Un site peut respecter 99,9 % sur le mois et avoir raté le délai de prise en charge d’un incident court. Ce sont deux manquements différents. Le mode de calcul du taux est à figer comme dans calculer le taux de disponibilité.
Fenêtre de mise à jour
Fixez un créneau, par exemple un mardi matin, avec un préavis au client. Pendant ce créneau, un HTTP 503 avec un en-tête Retry-After est de la maintenance, pas une panne. La façon de poser ce 503 est décrite dans gérer une erreur 503. En dehors du créneau, vous ne lancez pas une mise à jour majeure parce que le correctif est sorti à 18 h un vendredi , sauf faille en cours d’exploitation, et dans ce cas le contrat doit dire que vous pouvez intervenir hors fenêtre.
Précisez qui valide une mise à jour qui change un comportement visible (éditeur, formulaire, paiement). Sans cette phrase, le client considère toute différence visuelle comme un incident de niveau 1.
Ce qui suspend ou sort du délai
Écrivez une liste courte : fenêtre annoncée, attente d’une information que vous avez demandée au client (accès, choix fonctionnel), panne d’un service tiers hors annexe, et le cas où le client refuse le retour arrière que vous proposez. Dès que le client répond ou accepte, l’horloge reprend. Notez ces suspensions dans le ticket, sinon vous ne pourrez pas les montrer.
Le livrable est le contrat signé plus l’annexe d’URL, pas une plaquette. Faites relire les phrases d’indemnité ou de crédit d’heures par votre conseil : la rédaction ci-dessus fixe le fonctionnement, elle ne remplace pas un avis juridique sur le plafond de responsabilité. Chaque incident couvert se verse ensuite dans un ticket daté, selon la méthode de documenter les incidents, pour pouvoir comparer plus tard le délai promis et le délai tenu.
