La plupart des budgets alloués à un nouveau logiciel s'arrêtent au lancement. Le développement est défini, chiffré et payé, le produit est mis en ligne et tout le monde est tranquille. Puis, quelques mois plus tard, une mise à jour de sécurité s'impose, un navigateur évolue, un prestataire de paiement modifie ses règles, les utilisateurs demandent des améliorations, et personne n'a prévu de temps ni d'argent pour cela. Un logiciel n'est pas comme un bâtiment qui reste debout une fois terminé. Il s'apparente davantage à un véhicule : il nécessite un entretien régulier, des réparations ponctuelles et des mises à jour périodiques. Négliger ces aspects ne permet pas de faire des économies, cela ne fait que repousser une facture plus importante. Ce guide explique en quoi consiste la maintenance, son coût moyen, comment la budgétiser et comment la maîtriser. Ce document est destiné aux fondateurs et aux chefs d'entreprise, et pas seulement aux développeurs. Il complète notre guide des coûts des logiciels sur mesure, qui se concentre sur la construction.
Pourquoi la maintenance logicielle est-elle nécessaire ?
Le code ne s'use pas, mais tout ce qui l'entoure évolue.
- Les menaces de sécurité évoluent. De nouvelles vulnérabilités sont constamment découvertes dans les frameworks, les bibliothèques et les serveurs, et des correctifs doivent être appliqués.
- Les plateformes évoluent. Les navigateurs, les systèmes d'exploitation mobiles, les bases de données et les langages de programmation publient de nouvelles versions, et les anciennes ne sont plus prises en charge.
- Les services tiers évoluent. Les fournisseurs de paiement, de messagerie, de cartographie et de livraison mettent à jour leurs interfaces et abandonnent les anciennes.
- Les comportements des utilisateurs changent. L'utilisation réelle révèle des problèmes et des opportunités que la planification n'avait pas anticipés.
- Votre entreprise évolue. Les nouveaux produits, les nouveaux prix, les nouvelles réglementations et les nouveaux processus doivent être reflétés dans le logiciel.
- Les données augmentent. Un système rapide avec une centaine d'enregistrements peut ralentir avec un volume de données plus important. million.
Ignorer ces éléments ne fige pas le produit. Cela le laisse se dégrader.
Les quatre types de maintenance
La maintenance n'est pas une chose unique. Il est utile de la séparer en quatre types, car ils ont des niveaux d'urgence et des coûts différents.
1. Maintenance corrective : résolution des problèmes
Des bogues apparaissent dans tout logiciel dès qu'il est mis en contact avec de vrais utilisateurs et de vraies données. Les interventions correctives permettent de les corriger. Certains sont des désagréments mineurs ; d'autres, comme un processus de paiement défaillant, sont des urgences. Un bon accord définit la rapidité avec laquelle les différents niveaux de gravité sont traités.
2. Maintenance préventive : assurer la santé du système
Il s'agit du travail fastidieux mais précieux qui prévient les pannes futures : mise à jour des dépendances, application des correctifs de sécurité, surveillance des performances, vérification des sauvegardes, renouvellement des certificats et réduction de la dette technique avant qu'elle ne s'accumule. La maintenance préventive est peu coûteuse comparée à l'urgence qu'elle évite.
3. Maintenance adaptative : s'adapter au changement
Lorsque l'environnement change, le logiciel doit s'adapter. Par exemple, la prise en charge d'une nouvelle version de système d'exploitation, la migration vers une nouvelle API de paiement, la mise à jour vers une nouvelle version du framework ou la conformité à une nouvelle réglementation.
4. Maintenance corrective : améliorations
Petites améliorations et nouvelles fonctionnalités basées sur les retours des utilisateurs : flux de travail optimisés, interfaces plus claires, rapports plus rapides. Cette maintenance s'inscrit dans le cadre du développement continu et constitue le principal vecteur de la valeur à long terme d'un produit.
Quel budget prévoir ?
Il n'existe pas de chiffre unique, mais une règle générale de planification est utile. De nombreuses équipes consacrent environ 15 à 20 % du coût de développement initial par an à la maintenance et aux petites améliorations. Un produit dont le coût de développement s'élève à 40 000 $ pourrait donc nécessiter un budget annuel de 6 000 à 8 000 $ pour son bon fonctionnement.
Considérez ce montant comme un point de départ, et non comme une règle absolue. Le montant optimal dépend de plusieurs facteurs.
| Facteur | Augmente le budget | Réduit le budget |
|---|---|---|
| Complexité | Nombreuses intégrations et modules | Produit ciblé, peu de dépendances |
| Utilisateurs et trafic | Nombreux utilisateurs, exigences de haute disponibilité | Petit outil interne |
| Rythme d'évolution | Feuille de route active et mises à jour fréquentes | Exigences stables |
| Besoins de sécurité | Données sensibles, réglementation | Données à faible risque |
| Plateforme | Applications mobiles sur plusieurs plateformes | Une seule application web |
| Qualité du code | Code ancien, non documenté et non testé | Code propre, testé et documenté |
Un logiciel bien conçu coûte moins cher à maintenir. Voici l'un des arguments les plus convaincants pour investir dans la qualité dès le départ : les tests, la documentation et une structure claire réduisent considérablement les factures de maintenance ultérieures.
Contenu habituel d'un contrat de maintenance
Un contrat d'assistance pertinent couvre tout ou partie des éléments suivants :
- Hébergement et infrastructure. Serveurs, bases de données, stockage et surveillance, inclus ou facturés séparément.
- Mises à jour de sécurité. Application des correctifs au framework, aux bibliothèques et au serveur.
- Sauvegardes et restauration. Sauvegardes régulières et preuve de leur restauration.
- Surveillance et alertes. Détection des ralentissements ou pannes du système, idéalement avant même que les utilisateurs ne les signalent.
- Correction des bugs. Interventions correctives dans les délais convenus.
- Améliorations mineures. Un nombre d'heures défini pour les améliorations mineures.
- Mises à jour de compatibilité. Nouvelles versions de navigateurs, de systèmes d'exploitation ou de services.
- Rapports. Un bref résumé des interventions réalisées et des interventions à venir.
Demandez à n'importe quel fournisseur. Il est important de bien comprendre ce qui est inclus et ce qui est facturé séparément. Les promesses vagues de « support » sont une source fréquente de litiges.
Frais d'exploitation hors temps de développement
La maintenance comprend des factures récurrentes sans lien avec le code. Prévoyez :
- Hébergement : Serveurs cloud, bases de données, stockage et bande passante, souvent facturés mensuellement ou à l'usage.
- Services tiers : Envoi d'e-mails et de SMS, frais de paiement, cartographie, recherche, analyses et suivi des erreurs.
- Noms de domaine et certificats :
- Comptes développeur : Apple et Google facturent l'accès à l'App Store.
- Licences : Certains outils, plugins ou composants sont soumis à des frais annuels.
- Outils de surveillance et de sécurité :
Ces coûts augmentent souvent avec l'utilisation, ce qui est positif car la croissance est généralement synonyme de revenus, mais il ne faut pas s'y attendre.
Que se passe-t-il si vous négligez la maintenance ?
Il est tentant de considérer la maintenance comme facultative. Les conséquences ont tendance à se manifester toutes en même temps.
- Incidents de sécurité. Les logiciels non corrigés sont la cible la plus facile. Une faille de sécurité coûte bien plus cher que les correctifs.
- Panne soudaine. Un fournisseur abandonne une ancienne interface ou une mise à jour de navigateur rend une fonctionnalité inutilisable ; la correction est alors urgente et coûteuse.
- Dette technique. Les petits raccourcis s'accumulent jusqu'à ce que même les modifications les plus simples prennent du temps et risquent de provoquer des dysfonctionnements.
- Réécritures forcées. Un logiciel laissé à l'abandon trop longtemps devient trop obsolète pour être mis à jour, et la seule option est de le reconstruire.
- Perte de connaissances. Lorsqu'on ne touche pas au code pendant un an, personne ne se souvient de son fonctionnement.
- Baisse de la confiance des utilisateurs. Les produits lents, bogués ou obsolètes perdent discrètement des clients.
Des investissements réguliers, même modestes, coûtent presque toujours moins cher que des interventions importantes et ponctuelles.
Moyens de réduire les coûts de maintenance
La maintenance est inévitable, mais on peut la rendre moins coûteuse.
- Visez la qualité dès le départ. Les tests automatisés, une structure claire et une documentation complète sont rentables chaque année.
- Utilisez des technologies courantes. Les frameworks populaires comme Laravel bénéficient d'un support de longue date, de communautés importantes et de chemins de mise à niveau bien définis. De plus, les développeurs sont faciles à trouver.
- Limitez le nombre de dépendances et assurez-vous de leur mise à jour. Chaque bibliothèque ajoutée nécessite une mise à jour. Des mises à jour régulières et mineures sont bien moins coûteuses qu'une refonte complète après des années de négligence.
- Automatisez autant que possible. Les déploiements, les tests et la surveillance automatisés réduisent les efforts humains et les risques d'erreur.
- Maîtrisez votre code et votre documentation. Vous devriez pouvoir changer de prestataire sans avoir à tout recommencer ; consultez comment choisir une société de développement logiciel.
- Surveillez les performances dès le début. Les petits problèmes de base de données et de requêtes sont faciles et peu coûteux à corriger avant qu'ils ne prennent de l'ampleur. Nous décrivons les problèmes typiques dans signes indiquant que votre application Laravel a besoin d'une revue technique.
- Supprimez ce que vous n'utilisez pas. Les fonctionnalités inutilisées nécessitent tout de même une maintenance. Supprimez-les.
- Planifiez vos mises en production. Les mises à jour groupées sont moins coûteuses que des interruptions constantes et mineures.
Choisir un contrat de maintenance
Il existe trois façons courantes d'organiser un support continu.
Contrat de maintenance. Un forfait mensuel fixe pour une durée convenue et un niveau de réponse défini. Convient aux budgets prévisibles et aux petites améliorations continues.
Paiement à l'utilisation. Vous payez pour le travail effectué uniquement lorsque c'est nécessaire. C'est flexible, mais vous expose à des risques en cas d'urgence et si l'équipe est occupée.
Équipe ou développeur dédié. Pour les produits avec une feuille de route chargée, une équipe permanente gère à la fois la maintenance et le développement. Voir embaucher une équipe de développement logiciel dédiée et notre comparatif dans équipe dédiée vs freelances vs développeurs internes.
Pour les petits produits, un forfait modeste est souvent la solution idéale : il garantit la disponibilité d'une personne connaissant le code, sans payer pour du temps d'inactivité.
Applications mobiles : considérations supplémentaires
Les applications mobiles impliquent quelques facteurs de maintenance supplémentaires.
- Mises à jour annuelles des systèmes d'exploitation. Apple et Google mettent à jour leurs systèmes chaque année, et les applications doivent être vérifiées et parfois modifiées.
- Règles des plateformes de téléchargement. Les politiques et les ressources requises évoluent, et les applications obsolètes peuvent être supprimées.
- Nombreux appareils. De nouveaux téléphones et de nouvelles tailles d'écran apparaissent constamment.
- Mises à jour des utilisateurs. Tous les utilisateurs ne mettent pas à jour rapidement, les anciennes versions doivent donc rester fonctionnelles.
Ces facteurs expliquent en partie pourquoi la maintenance des applications représente une part importante du budget. Notre article sur le coût du développement d'applications mobiles (blog/mobile-app-development-cost-what-drives-the-price) aborde plus en détail cette question.
Comment estimer votre budget de maintenance
Une approche simple :
- Listez les factures récurrentes : hébergement, services, licences, comptes. Additionnez-les mensuellement.
- Estimez le travail préventif : mises à jour, correctifs et vérifications. Quelques heures par mois sont généralement nécessaires pour une petite application.
- Prévoyez un budget pour les corrections : basez-le sur la taille et la complexité du produit.
- Prévoyez un budget pour les améliorations : déterminez l'ampleur des changements attendus chaque trimestre.
- Ajoutez une marge de sécurité : environ 10 à 20 % pour les imprévus.
- Comparez avec la recommandation de 15 à 20 % pour vérifier la cohérence de ce budget.
Revoyez ce chiffre chaque année. Les bons produits nécessitent généralement plus d'attention à mesure qu'ils évoluent.
Questions à poser à un fournisseur
- Que comprend exactement le contrat de support ?
- Quels sont vos délais de réponse pour les problèmes urgents ?
- Qui gère l'hébergement, et est-il inclus ?
- Comment gérez-vous les correctifs de sécurité et les mises à jour du framework ?
- Que se passe-t-il si le développeur quitte l'entreprise ?
- Comment la documentation est-elle mise à jour ?
- Puis-je consulter un exemple de rapport d'intervention ?
- Quel budget annuel nous recommandez-vous, et pourquoi ?
Conclusion
Un logiciel bien entretenu continue de fonctionner, reste sécurisé et prend de la valeur. Un logiciel négligé devient lentement un fardeau. La différence réside généralement dans un budget modeste et régulier prévu dès le départ, plutôt que dans un sauvetage héroïque par la suite.
Si vous avez un produit qui nécessite une maintenance, ou si vous en prévoyez un et souhaitez connaître les coûts d'exploitation dès le premier jour, contactez-nous. Nous vous expliquerons à quoi ressemble un plan de maintenance judicieux pour votre produit, et ce que vous pouvez omettre sans risque.