Les secrets d'une application durable
Ou les pratiques que votre équipe tech devrait adopter pour prolonger la durée de vie de ses développements.
Salut 👋
Bienvenue dans cette première édition des vieux pots de la tech ! Que tu sois un dirigeant qui veut développer sa boîte ou un passionné d’informatique, merci de me lire 🤗
Au programme
L’obsolescence existe aussi dans la tech
Gueule d’Ange : 9 ans et toujours jeune
Les 4 secrets d’une application qui ne veut pas mourir
Conclusion
L’obsolescence existe aussi dans la tech
À l’heure de l’urgence climatique, la thématique de l’obsolescence et du prolongement de la durée de vie de nos équipements est au centre de nos préoccupations.
La plupart d’entre nous sont choqués quand ils apprennent que certains industriels ont conçus leurs équipements dans le but de tomber en panne, afin de provoquer un réachat.
Malgré tout, il y a des industriels qui font le choix opposé : celui de la durabilité et de la qualité. Je pense par exemple à la marque d’électroménager Miele, qui affirme concevoir ses lave linges pour 20 ans - et nous avons tous dans la famille une tante qui est très fière d’avoir son lave linge Miele depuis 30 ans.
On parle moins souvent d’obsolescence dans la tech.
À la place, le monde de la tech est souvent mis en avant pour ses innovations, et les changements qu’elle apporte dans notre quotidien. Et pourtant lorsqu’une entreprise décide d’investir dans sa modernisation, la durée de vie de ses outils a un impact direct sur sa rentabilité ou sa croissance.
Je n’ai encore jamais rencontré d’obsolescence “programmée” dans la tech, au sens où je n’ai jamais rencontré de développeur qui agit volontairement pour que son application ne fonctionne plus correctement au bout d’un certain temps.
Par contre la durée de vie d’une application est un sujet à ne pas ignorer. Ce qu’on remarque c’est qu’une application peut avoir une durée de vie qui va de 1 an à plusieurs dizaines d’année.
Et lorsque vous êtes membre de l’équipe dirigeante qui engage le projet, vous préférez être celui qui a acheté une application qui dure longtemps.
Les applications qui durent sont conçues différemment de celles qu’on jette.
Dans cette édition, je vais décortiquer les secrets d’un app qui ne veut pas mourir en prenant l’exemple de Gueule d’Ange, qui enseigne l’histoire de manière ludique aux collégiens des Yvelines depuis 2014.
Gueule d’Ange : 9 ans et toujours jeune
En 2014, mes collègues de Captive, l’agence tech que je dirige, a lancé le Serious Game Gueule d'Ange.
9 ans, c’est une éternité dans le monde de la tech. Le sort habituel d’une application de cet âge est de devenir trop complexe, d’être un fardeau, de devenir “legacy”.
Et pourtant, Gueule d'Ange a su rester agile et performante. Sa base de code reste un exemple en 2023 : l’outil d’audit de code Rubycritic lui donne un excellent score de 93/100. À titre de comparaison, l’application de recrutement de la défense obtient 85/100 alors qu’elle est 4 ans plus jeune.
Gueule d'Ange a vu passer 18 développeurs différents, chacun apportant sa pierre à l'édifice sans jamais ébranler les fondations. C'est parce que nous avons construit une culture où la qualité du code est sacrée, et que chaque nouveau venu est imprégné de cette culture que l'application a su rester forte et pertinente.
Avec le recul, voici les points clé qui nous ont permis d’éviter l'obsolescence :
1) La pratique du Test Driven Development (TDD) :
Le TDD, c'est cette bonne pratique que tous les développeurs connaissent mais que (presque) personne n’applique. Je l’ai découverte en 2006 et ça a été ma première épiphanie. Depuis, je forme tous les développeurs avec qui je travaille.
La raison ? Écrire un test automatisé avant d'écrire le code nous oblige à visualiser le succès, à mener une réflexion en amont et par conséquent écrire une base de code plus simple, plus robuste et plus maintenable.
2) L’utilisation des “bonnes pratiques” du Génie Logiciel
Le développement informatique existe depuis les années 1970. Par conséquent, les pièges classiques qui rendent une application fragile ont été largement documentés.
Les bonnes réponses à ces pièges portent le nom de "Couplage faible", "DRY" ou "SOLID" et datent des années 1990. En les appliquant tout au long de son développement, l'équipe de Gueule d'Ange a pu garder une application agile, qui traverse les années sans prendre une ride.
3) Maintenance régulière et proactive
Le monde de la tech change tous les jours, et les logiciels reposent sur des composants qui évolue sans cesse : nouvelle version de navigateur, nouveaux serveurs.
En effectuant des opérations de maintenances régulière, Gueule d'Ange a évolué entre sa version d'origine de Ruby on Rails 4.1.4 à 7.1.2 - soit 215 versions intermédiaires.
4) Monitoring intelligent
Les outils de suivi et d'analyse ne sont pas là pour décorer les tableaux de bord. Ils sont les yeux et les oreilles de nos applications, nous alertant aux moindres signes de fatigue ou de défaillance.
Nous avons appliqué une ligne de conduite claire : chaque bug doit provoquer une analyse de cause racine et l'application doit rester rapide - son score Apdex doit rester au dessus de 0,95.
Conclusion :
Les principes utilisés sur Gueule d’Ange sont toujours actuels. Et ce n’est pas étonnant puisqu’ils existent tous depuis plus de 20 ans.
Si vous suivez l’actualité tech, vous serez constamment orientés sur des discussions sur la pertinence d’un langage de programmation ou d’une technologie plutôt qu’une autre.
Mais la technologie ne fait pas la durée de vie. Quelque soit la technologie utilisée par une équipe de développement, ce qui fera la différence sur le long terme ce sont les pratiques de l’équipe.
Pour revenir à l’analogie du début, si vous achetez un lave-linge Miele, c’est parce que vous savez que les équipes qui conçoivent ces produits mettent tout en oeuvre pour créer un produit fiable, et finalement les innovations technologiques que la marque propose passe au second plan. D’ailleurs la plupart des concurrents proposent la même chose et tous savent aussi bien laver le linge.
Lorsque vous achetez du logiciel que vous voulez garder longtemps, vous devez avoir une posture similaire : vous devez vous assurer que vos développeurs mettent en oeuvre les meilleures pratiques - largement documentées - qui sont le fruit de décennies d’expérience.
En bref, c’est avec les vieux pots qu’on fait la meilleure tech !
Stéphane