BLOG | Déprogrammez l’obsolescence, 7 conseils pour un logiciel durable

28/07/2023

Et si on arrêtait de refaire les applications tous les cinq ans ?
Et si on construisait des logiciels plus durables ?
Et si on construisait des logiciels réparables ?

Quel est votre objet le plus ancien ?

Je ne parle pas de l’impressionnante assiette en porcelaine de Delft soigneusement accrochée au mur.
Je parle d’un objet vivant, qui a sa place dans votre quotidien.

Quel est donc cet objet qui a bravé les âges et continue à remplir avec brio son rôle ?

Personnellement, je me contenterai de mon fidèle Opinel, qui a traversé l’Europe et le millénaire.
Certains évoqueront des héritages familiaux, des joyaux, des couverts en argent, des Opel Vectra autant d’objets qui font fi du temps, et acquièrent avec les années une douce patine.
Opel Vectra

Charme intemporel d’une Opel Vectra C prefacelift,
source : https://fr.wikipedia.org/wiki/Opel_Vectra

Livermore, Californie, 86 803 habitants

Il y a deux décennies, la lampe de la caserne de pompiers de Livermore a fêté en électron libre son centenaire. Aujourd’hui la vieille dame continue de rayonner et foudroie les webcams censées la surveiller.
Désormais, sa lumière est plus apaisée, son éclat adouci mais combien de générations de pompiers et de jolis camions rouges a-elle éclairée ?


source : https://www.centennialbulb.org/photos.htm


« L’éternité c’est long... Surtout vers la fin » Woody Allen

Il fut un temps où les objets étaient façonnés pour traverser les âges.
Rappelons-nous avec émotion cet humble mérovingien qui recevait de son père la hache d’un combat victorieux contre les Ostrogoths avant que lui-même ne transmette à son tour et à son fils cette même hache après une bataille acharnée contre les Wisigoths.
Dans les temps difficiles, quand les ressources se faisaient rares, chaque création était conçue et fabriquée pour durer.


Photo (C) RMN-Grand Palais (musée d'Archéologie nationale) / Jean-Gilles Berizzi
Hache (francisque), 475-525 ;Epoque mérovingienne
source : https://www.photo.rmn.fr/archive/96-010438-2C6NU0HIGRC7.html


Changes 🎵

Puis le pétrole a mécanisé le travail, les ressources sont devenues (faussement) infinies…
Alors les révolutions technologiques ont succédé les unes aux autres. Toujours plus vite.

La technologie est par essence, une machine à laver en cycle court. Changes
Notre époque aime l’éphémère des modes. Changes.
Connaissez-vous Shein, la révolution de la fast fashion ? Changes
Avez-vous le dernier iPhone, avec ses nouveaux capteurs quantiques ? Changes

Le changement fait partie de notre société. Il est consubstantiel avec la notion d’évolution.
L’épuisement des ressources et le réchauffement climatique ont mis en évidence la nécessité de consommer plus intelligemment en limitant l’impact sur l’environnement.

L’industrie numérique, par sa croissance, a un rôle de premier plan à jouer dans la diminution de l’impact sur notre environnement. Il nous faut désormais conjuguer l’innovation avec une réduction du bilan carbone.

Pour résoudre cette équation d’innovation vertueuse (et non vert tueuse), il me semble essentiel de comprendre ce qui fait de nos logiciels des consommables si gourmands.
Intéressons-nous, à l’obsolescence.

Obsolescence programmée, les règles du jeu

L’obsolescence programmée est un jeu de stratégie employé par certains fabricants pour encourager les consommateurs à acheter de nouveaux produits en rendant obsolètes les produits existants. Cela peut se faire de différentes manières :

  • En rendant les pièces de rechange difficiles à trouver ou en arrêtant de les fabriquer, ce qui rend la réparation des produits coûteuse ou impossible.
     
  • En rendant les produits incompatibles avec de nouvelles technologies ou en retirant des fonctionnalités importantes via des mises à jour logicielles.
     
  • En limitant la durée de vie des produits grâce à des composants de qualité inférieure ou en utilisant des matériaux qui s'usent rapidement.

Un exemple courant d'obsolescence programmée est l'utilisation de piles non remplaçables dans certains produits électroniques. Lorsque la pile, au bout de sa combustion chimique rend l’âme, l'utilisateur doit acheter un nouvel appareil. Il est à noter que l'obsolescence programmée est illégale dans certains pays, mais reste courante dans l'industrie de l’électronique.
 

Obsolescence programmée, le jeu

Dans la famille de l’obsolescence programmée, je demande la fille....La puff !
En ce moment la puff envahit nos rues. Cigarette électronique jetable, elle fait de son obsolescence une force marketing car la puff est simple à utiliser et « pas nécessaire de la remplir avec des mélanges compliqués, il suffit d’en acheter une autre quand elle est vide ».
Ou comment faire du mal à soi même et à la planète en une simple bouffée de « Pastèque Menthe Citron » ou de «Chill On The Beach ».

Revenons au digital : je demande le père....La cartouche d’encre.
Magnifique, véritable chef-d’œuvre de marketing technologique.
Un grand must depuis le succès du système « machine – capsules » inventé pour verrouiller les achats de café et faire reposer le modèle économique sur les achats de consommables propriétaires.
Magenta, Cyan, Noir, jaune… « Rêve ta vie en couleurs, c’est le secret du bonheur »
Ah, si Peter savait que le capitaine Crochet a fait main basse sur les cartouches.

Je demande le fils...Le téléphone mobile.
Image illustrative de l’article Nokia 3310

Quand la nouveauté logicielle forcée rend nécessaire le renouvellement de son mobile, forcément vous connaissez. Rappelons-nous qu’il a fallu légiférer pour standardiser les chargeurs.
Nokiastalgique, qui se souvient du 3310 qui domina le monde. Simple, bleu et rustique.
Addiction limitée côté jeu avec le « Snake ». Preuve qu’il exista un monde avant Candy Crush.

Nokia 3310 - Source : https://fr.wikipedia.org/wiki/Nokia_3310
 

Indice de réparabilité
« L’affichage obligatoire d’un indice de réparabilité est institué par l’article 16-I de la loi n° 2020-105 du 10 février 2020 de lutte contre le gaspillage et pour l’économie circulaire, pour les produits électriques et électroniques. En affichant une note sur 10, cet indice informe les consommateurs sur le caractère plus ou moins réparable des produits concernés. Dans un premier temps,
il concerne les catégories suivantes : lave-linge à hublot, smartphones, ordinateurs portables, téléviseurs et tondeuses à gazon électriques, et bientôt, lave-linges à chargement par le dessus, lave-vaisselles, aspirateurs et nettoyeurs à haute-pression »

in https://www.ecologie.gouv.fr/indice-reparabilite

Coincés entre un lave-linge à hublot ( essentiel pour regarder la valse des couleurs) et une tondeuse à gazon électrique se sont glissés nos objets numériques : smartphones, ordinateurs portables, téléviseurs et des ratons laveurs.

Derrière cette liste d’appareils au charme poétique, se cachent, n’en doutons pas, bien des débats...

Soyons optimistes et discernons une lueur vertueuse dans cet indice de réparabilité.
Cependant, il est indéniable que le chemin à parcourir est encore long.
Les tentations numériques de renouvellement des appareils pourraient éventuellement connaître un ralentissement, mais avec la loi de Moore qui assure une expansion exponentielle des possibilités, un freinage complet semble une perspective très ambitieuse...
(Sauf en cas de blocage ou confiscation des terres rares par des puissances non-bienveillantes)

Autrement dit, le 3310 est bel et bien mort, vivent l’IPhone 21 et l’Android 42.

Les haches mérovingiennes (ou francisques) c’est bien et le logiciel ?

UNIX ou Linux ont conservé des commandes qui, telles des textes sacrés, n’ont pas bougé depuis leur création.
Certains logiciels, qui gèrent nos comptes bancaires, sont écrits en COBOL, langage informatique qui succéda au linéaire b.

Il est donc, non seulement possible, de créer des ampoules logicielles de Livermore, mais certains l’ont fait !
Même si d’aucuns trouvent en COBOL un goût suranné, il semble essentiel de souligner la créativité géniale de Grace Hopper qui inventa avec ses pairs un langage informatique qui continue à vivre et à brasser des milliards dans un monde où bien des langages ne vivent que quelques années.

UNIX, COBOL, Fortan ressemblent à des pyramides digitales. Elles ont été créées en pleine guerre froide et survivent aux révolutions technologiques voire les embrassent, comme avec UNIX qui s’est transcendé en Linux.
Pourtant, force est de constater qu’hormis ces quelques pyramides, le digital construit des édifices bien fragiles avec des durées de vie parfois éphémères.

On retrouve dans le logiciel les mêmes ressorts concernant l’obsolescence programmée des objets usuels.


7 conseils pour un logiciel durable

Plutôt que de ressasser les malheurs, regardons quels sont les leviers actionnables pour construire du logiciel durable.

1. Open Source & Standards Ouverts
Favorisez l'utilisation de logiciels open source et de standards ouverts
. Ces logiciels sont généralement développés de manière collaborative et transparente, ce qui rend plus difficile l'introduction d'obsolescence programmée. Les standards ouverts garantissent également l'interopérabilité et permettent aux utilisateurs de continuer à utiliser des logiciels plus anciens même lorsque de nouvelles versions sont disponibles.

2. Compatibilité des versions
Il convient aussi de choisir des logiciels ayant une gestion des versions fondée sur une compatibilité avec les anciennes versions.
Un contre-exemple fracassant est le passage de AngularJS à Angular2.
Derrière cette simple évolution de version, se cache en réalité une rupture complète. Ces deux versions n’ont rien à voir… sauf leur nom. L’Open Source n’est pas un gage de compatibilité, il faut une vraie volonté pour l’assurer. Certaines communautés Open Source l’ont instauré comme principe fondateur.
La compatibilité doit être un critère majeur de choix pour vos produits, qu’ils soient Open Source ou propriétaires.

3. Modularité
Les fairphones et les voitures sont construits de façon modulaire de façon à promouvoir une réparabilité, à l’inverse de certains bijoux technologiques tout intégrés qui nécessitent un changement complet en cas de dysfonctionnement localisé.
Il est clair qu’on perd en poids, en finesse…ce que l’on gagne en robustesse et réparabilité.
Coté logiciel, la finesse importe peu, alors adoptons une approche modulaire pour permettre des évolutions localisées.

4. Simplicité
Je sais combien il est plaisant d’admirer les astres scintillants.
Hélas les paillettes technologiques vieillissent mal. Il est temps de (re)concevoir le logiciel sur des bases simples pour durer.
Pourquoi tant de logiciels destinés à de l’informatique de gestion sont ils fondés sur des principes technologiques mal maitrisés, souvent issus des GAFAs et autres AirBnB ou Netflix.
Pourquoi utiliser telle technologie éphémère pour construire des logiciels censés vivre plusieurs dizaines d’années ?
Ayons un regard critique sur les architectures tant vantées par les géants du web.
Votre projet concerne-t-il des centaines de millions d’individus ?
Devez-vous stocker des péta octets de données ?
Disposez-vous d’une équipe DevOps hyper motivée, dispo H24 pour surveiller et réagir en cas de problème ?
Il convient, parfois, de savoir résister à des modes technologiques fragiles : La simplicité est une force.

5. Documentation
J’entends beaucoup de gourous affirmer que la documentation est l’ancien monde. Il y aurait un nouveau monde, dans lequel la documentation ne sert à rien, ralentit le progrès.
Alors rétablissons la vérité.
OUI, la documentation est une tache ingrate.
OUI, la documentation alourdit un peu le BUILD d’un projet.
Mais en phase de RUN, si votre projet vit plusieurs années, c’est-à-dire si les développeurs changent, l’absence de documentation sera un véritable frein à la maintenance et rendra les évolutions très risquées.
Si vous faites un POC, vous vous passerez de documentation sans problème, en revanche si vous réalisez un projet métier un minimum complexe, documentez le pour assurer son avenir.

6. Tests
Automatisez les tests, assurez une couverture substantielle par de vrais tests fonctionnels et techniques.
Définissez une gouvernance de la prise en compte des évolutions et anomalies et outillez cette gouvernance.
Tout cela vous le savez déjà, je crains ne rien vous apprendre à ce sujet, la difficulté réside dans l’action : « Just do it » .

7. Evolutions, MCS et mises à jour
Une application doit régulièrement effectuer une séance de gymnastique pour remettre à jour ses librairies et logiciels. Cette mise à jour est parfois vitale, notamment dans le cadre d’alertes de sécurité, elle est souvent facultative, pourtant …
Il convient donc de mettre à jour régulièrement la pile applicative pour éviter de se trouver devant des impasses de mises à jour, ou bien des risques inconsidérés.
Un logiciel est un système organique vivant, il doit être mis à jour pour favoriser les évolutions.
Les versions de librairies et logiciels sous-jacents doivent être choisies pour être consistantes, cohérentes et pérennes. Les versions LTS (Long-Term Support) doivent être privilégiées, les dates de fin de vie (EOL – End Of Life) doivent être suivies. Ce suivi et pilotage incomberont à des comités dédiés au MCS où Maintien en Condition de Sécurité.

Bien sûr les évolutions ne sont pas toutes imputables à la technique et certains changements réglementaires nécessitent de modifier le code au risque de créer une obsolescence fonctionnelle. Il est donc fondamental pour allonger la durée de vie d’un logiciel de créer des modules aptes à supporter des évolutions aussi bien techniques que fonctionnelles.

Convictions

Construire une application complexe fonctionnellement sera d’autant plus aisé, que le socle technologique sur lequel elle repose est simple et maitrisé.
Cela parait un truisme, pourtant il est manifeste que de trop nombreuses applications métier riches fonctionnellement démarrent sur des bases technologies expérimentales, mal connues des développeurs et des exploitants.
Citons les micro-services qui sont très en vogue et restent, hélas, incompris de la plupart des équipes. Alors ils se retournent comme un boomerang contre ceux qui les emploient et assomment les projets.

Boileau affirmait au XVIIe siècle,
« Ce que l'on conçoit bien s'énonce clairement, 
Et les mots pour le dire arrivent aisément. »

Il en est de même dans le développement logiciel.
Si les énoncés fonctionnels et technologiques ne sont pas clairs c’est que les problèmes ne vont pas tarder.

L’obsolescence se programme, la durabilité quant à elle se pense, se planifie.
Et la simplicité reste une clé trop souvent ignorée pour l’atteindre.
Osez la simplicité, Osez l’efficacité.

  • Par Philippe Chrétien

    Direction des Technologies et de l'Innovation

    CTIO

    Suivre