Épisode 9 : Modernisation des systèmes hérités

Cultiver, pas désherber : Changer notre modèle mental des systèmes hérités

Publié le 3 mai 2021

Toutes les opinions exprimées dans ces épisodes sont personnelles et ne reflètent pas les opinions des organisations pour lesquelles nos invités travaillent.

 

Nous avons tendance à parler des technologies de l’information par analogie. Des mots comme API, microservice, monolithe et contrat de données ne sont pas compris par tous, c’est pourquoi nous utilisons des exemples familiers pour nous aider à communiquer.

Certaines de ces analogies sont toutefois dangereuses. Un état d’esprit est particulièrement insidieux : le développement de logiciels comme une usine. Dans cet état d’esprit, il y a une série d’étapes pour concevoir et « expédier » le code, qui est ensuite envoyé par la porte de l’usine, en espérant ne jamais être revu.

Une analogie bien meilleure, et plus réaliste, est l’agriculture. S’il n’est pas entretenu, tout système logiciel commence à se dégrader. Parfois, il devient simplement plus lent à mesure que les gens l’utilisent. D’autres fois, le logiciel dépasse sa durée de vie prévue et les choses se gâtent.

Par exemple, saviez-vous que Microsoft Excel ne peut utiliser que des dates postérieures au 1er janvier 1900 ? Si vous voulez calculer l’âge d’une personne née avant cette date, vous devez écrire du code Visual Basic, afin de garantir la rétrocompatibilité des feuilles de calcul avec les versions antérieures. Les logiciels sont pleins de compromis qui avaient un sens à l’époque de leur création.

En tant qu’agriculteur, vous êtes constamment en train d’arroser et de désherber. En tant que gestionnaire de logiciels, vous êtes constamment en train de remanier, de mettre à jour et de supprimer les bogues. Nous devons penser davantage comme des agriculteurs et moins comme des usines. Après tout, de la même manière qu’une ferme non entretenue devient une prolifération, un logiciel non entretenu devient hérité.

Ce mot – hérité – est chargé de problèmes. Grâce à nos partenaires de Code for Canada, j’ai eu la chance de m’entretenir avec Sean BootsAmanda ClarkeGordon Ross, et Afua Bruce au sujet de la modernisation des systèmes hérités. C’est un thème de la conférence FWD50 de cette année, car pour créer de nouvelles choses brillantes, il faut souvent les relier à de vieilles choses rouillées, voire se débarrasser complètement de ces dernières.

Dans cet épisode de FWDThinking, nous avons abordé un certain nombre de sujets essentiels :

  • Pourquoi la législation et la technologie doivent être beaucoup plus proches l’une de l’autre, afin que nous puissions adopter des lois qui peuvent être mises en œuvre dans le domaine technologique, et comprendre quelles technologies nous devons créer pour mettre en œuvre les politiques que nous voulons.
  • Les défis à relever pour amener plusieurs ministères à utiliser une plateforme commune (comme un formulaire web, un processus d’inscription, un outil de traduction ou un système de notification) plutôt que de créer leur propre plateforme.
  • Comment décomposer un système monolithique en composants qui peuvent être mis à jour, modifiés et réutilisés indépendamment les uns des autres, afin de pouvoir innover en parallèle.
  • La relation complexe entre la « capture » par le secteur privé et les outils à code source ouvert.
  • Comment décider ce que le gouvernement doit développer, et ce dont il doit se tenir à l’écart, sur la frontière numérique.
Notification lors de la collecte Vos choix en matière de confidentialité