Le groupe Madic m'a confié l'internalisation d'un projet C# jusque là développé par une ESN. Il s'agit d'un jeu d'applications critique pour le groupe, puisqu'il gère la remontée d'alarmes dans les stations.
Le projet a d'abord été audité, afin d'obtenir un état des lieux du code et de l'architecture. Un rapport destiné aux exécutifs a été rédigé. Une fois ceci fait, un vaste chantier de simplification a permis de diminuer une complexité logicielle hors de contrôle, sans perte de fonctionnalités. La protection contre les régressions a nécessité une réécriture des tests unitaires du projet, afin d'en faire des tests d'acceptation.
Les équipes internes sont formées à reprendre le projet, notamment les tests. Elles m'assistent petit à petit dans son assainissement. L'objectif est de les rendre totalement autonomes sur le projet, tant dans la maintenance que dans les évolutions.
En parallèle, un chantier de découpe d'un logiciel Legacy a été entrepris. L'existant en production n'a aucun test, mais doit évoluer dans les prochaines années. Le projet a été découpé par slicing afin d'obtenir des applications plus petites et maîtrisables. L'une d'entre elles, qui doit porter l'essentiel des changements, a été transférée sur une stack plus récente. Le reste sera progressivement décommissionné et remplacé par de nouveaux composants.