Sommaire12 parties
Lorsqu’on développe une application web ou mobile, la mise en ligne est souvent perçue comme l’aboutissement du projet.
En réalité, c’est plutôt le début d’une nouvelle phase.
Une application évolue avec le temps : les utilisateurs changent, les besoins métier aussi, les systèmes externes sont mis à jour et de nouvelles fonctionnalités peuvent devenir nécessaires. Pour éviter qu’un projet ne devienne difficile à faire évoluer quelques mois après son lancement, il est essentiel de penser à sa maintenabilité dès la phase de développement.
Mais concrètement, qu’est-ce qu’une application maintenable ? Et pourquoi ce sujet est-il important lorsqu’on lance un projet web ou mobile ?
La maintenabilité, c’est quoi exactement ?
La maintenabilité désigne la capacité d’une application à être corrigée, mise à jour et améliorée facilement dans le temps.
Une application peut fonctionner parfaitement au moment de sa mise en ligne tout en étant difficile à maintenir par la suite.
Par exemple, ajouter une nouvelle fonctionnalité peut devenir complexe si le code est très difficile à comprendre, si les différentes parties de l’application sont fortement dépendantes les unes des autres ou si aucune documentation n’existe.
À l’inverse, une application pensée pour évoluer permet généralement de :
corriger plus facilement les bugs ;
ajouter de nouvelles fonctionnalités ;
faire évoluer l’interface ;
mettre à jour les technologies utilisées ;
adapter l’application à de nouveaux besoins ;
faciliter la reprise du projet par une autre équipe.
La maintenabilité est donc moins visible que le design ou les fonctionnalités d’une application. Pourtant, elle joue un rôle important dans sa durée de vie.
Un projet ne s’arrête pas à sa mise en ligne
Lorsqu’un projet est lancé, les besoins ne restent pas forcément figés.
Une application mobile peut par exemple évoluer avec :
l’ajout de nouvelles fonctionnalités ;
de nouveaux parcours utilisateurs ;
l’évolution d’iOS ou d’Android ;
les mises à jour des stores ;
de nouveaux appareils ou formats d’écran.
Pour une application web, les évolutions peuvent concerner :
les fonctionnalités métier ;
les interfaces ;
les navigateurs ;
les services tiers ;
les systèmes d’authentification ;
les connexions avec d’autres outils.
Il faut donc considérer le développement comme un cycle de vie, et non comme une simple étape allant du cahier des charges à la mise en ligne.
1. Préparer le projet pour ses futures évolutions
La maintenabilité commence bien avant la première mise en production.
Dès la conception, certaines questions peuvent être posées :
Quelles fonctionnalités pourraient être ajoutées demain ?
Quels systèmes devront potentiellement être connectés à l’application ?
Quelles parties du projet risquent d’évoluer régulièrement ?
Qui devra intervenir sur l’application dans six mois ou dans deux ans ?
Ces questions permettent d'éviter de concevoir une solution uniquement adaptée au besoin immédiat.
L’objectif n’est pas de prévoir toutes les évolutions possibles. Il s’agit plutôt de construire une base suffisamment claire et structurée pour pouvoir faire évoluer le projet sans devoir tout reconstruire.
2. Un code clair facilite les évolutions
La qualité du code est évidemment un élément central de la maintenabilité.
Un code bien structuré est plus facile à comprendre, à corriger et à faire évoluer.
Cela passe notamment par :
une architecture cohérente ;
des composants réutilisables ;
des conventions de développement claires ;
une séparation logique des différentes fonctionnalités ;
des dépendances maîtrisées ;
des noms de variables et de fonctions compréhensibles.
Pourquoi est-ce important ?
Parce qu’une application est rarement développée une seule fois puis laissée telle quelle.
Quelques mois après la mise en ligne, une équipe doit pouvoir comprendre rapidement comment fonctionne le projet avant d’intervenir dessus.
La lisibilité du code devient alors un véritable gain de temps.
3. La documentation fait partie du projet
La documentation est parfois considérée comme secondaire lorsqu’un projet doit être livré rapidement.
Pourtant, elle peut devenir particulièrement utile lorsque l’application commence à évoluer.
Elle peut notamment préciser :
comment installer et lancer le projet ;
comment fonctionne l’architecture ;
quelles technologies sont utilisées ;
comment sont gérées certaines fonctionnalités ;
comment effectuer une mise en production ;
quelles sont les dépendances externes ;
quels services sont nécessaires au fonctionnement de l’application.
Une bonne documentation n’a pas besoin d’être interminable.
L’objectif est surtout de conserver les informations nécessaires pour qu’une personne qui découvre le projet puisse rapidement en comprendre le fonctionnement.
4. Les tests permettent de faire évoluer l’application plus sereinement
Plus une application évolue, plus le risque de créer une régression augmente.
Une modification peut résoudre un problème tout en ayant des conséquences inattendues sur une autre fonctionnalité.
Les tests permettent justement de limiter ce risque.
Selon le projet, différentes formes de tests peuvent être utilisées :
tests unitaires ;
tests d’intégration ;
tests fonctionnels ;
tests de parcours utilisateurs ;
tests sur différents appareils ou environnements.
Il n’est pas nécessaire de tout tester de la même manière.
L’enjeu est surtout d’identifier les fonctionnalités importantes et les parcours critiques afin de pouvoir vérifier qu’ils continuent à fonctionner après les évolutions.
5. Anticiper les mises à jour techniques
Une application dépend toujours, au moins en partie, de son environnement technique.
Frameworks, bibliothèques, systèmes d’exploitation, navigateurs, services cloud ou API externes peuvent évoluer.
Une application maintenable doit donc pouvoir suivre ces évolutions.
Cela implique notamment de surveiller :
les versions des technologies utilisées ;
les dépendances du projet ;
les changements des systèmes mobiles ;
les évolutions des API ;
les éventuelles failles de sécurité ;
la fin de support de certaines technologies.
Ne pas entretenir ces éléments peut progressivement créer une dette technique.
Et plus on attend pour la traiter, plus certaines mises à jour peuvent devenir longues ou complexes.
6. La maintenance ne signifie pas uniquement corriger des bugs
Quand on parle de maintenance, on pense souvent aux corrections.
Mais une application peut nécessiter plusieurs types d’interventions après sa mise en ligne.
Maintenance corrective
Elle consiste à corriger les problèmes rencontrés par les utilisateurs.
Maintenance évolutive
Elle permet d’ajouter ou de modifier des fonctionnalités selon les nouveaux besoins.
Maintenance technique
Elle concerne notamment les mises à jour des technologies, des dépendances ou de l'infrastructure.
Maintenance préventive
Elle vise à identifier et traiter certains problèmes avant qu’ils n’aient un impact important.
Ces différentes dimensions participent toutes à la durée de vie du projet.
7. Prévoir la reprise du projet
Un autre aspect de la maintenabilité est souvent oublié : la transmission.
Un projet peut changer d’équipe au fil du temps. Une personne peut quitter l’entreprise, un prestataire peut changer ou une nouvelle équipe peut être amenée à intervenir.
Le projet ne devrait donc pas dépendre entièrement de la connaissance d’une seule personne.
Une architecture claire, une documentation adaptée et des pratiques de développement cohérentes facilitent cette reprise.
C’est particulièrement important pour les applications qui doivent rester en production pendant plusieurs années.
Maintenabilité et budget : quel rapport ?
Penser à la maintenance dès le départ peut représenter un investissement supplémentaire pendant le développement.
Mais il faut également considérer le coût sur l’ensemble du cycle de vie du projet.
Une fonctionnalité difficile à modifier aujourd’hui peut devenir beaucoup plus coûteuse à faire évoluer demain.
À l’inverse, une architecture adaptée, du code structuré et une documentation suffisante peuvent faciliter les évolutions futures.
Le sujet n’est donc pas simplement de réduire le coût initial du développement, mais de trouver un équilibre entre le coût de création et le coût d’évolution de l’application.
Une application doit pouvoir grandir avec son entreprise
Un bon projet digital n’est pas nécessairement celui qui prévoit tout dès le départ.
C’est aussi celui qui laisse suffisamment de place pour évoluer.
Les besoins peuvent changer. Les utilisateurs peuvent avoir de nouvelles attentes. Une entreprise peut lancer un nouveau service ou modifier ses processus internes.
L’application doit pouvoir accompagner ces changements sans remettre systématiquement en question toute sa structure.
C’est pourquoi la maintenabilité mérite d’être abordée dès les premières discussions autour du projet.
Chez Inersio, penser au projet dans la durée
Chez Inersio, le développement d’une application web ou mobile ne se limite pas à sa mise en ligne.
La conception technique, l’organisation du code, les tests, la documentation et les choix technologiques participent également à la capacité du projet à évoluer dans le temps.
L’objectif est de construire une application adaptée au besoin actuel, tout en gardant en tête les évolutions qui pourront arriver demain.
Parce qu’un projet digital réussi n’est pas seulement un projet qui fonctionne le jour de son lancement.
C’est aussi un projet que l’on peut maintenir, améliorer et faire évoluer dans la durée.