1. Un logiciel est un système vivant
On imagine parfois un logiciel comme un objet que l'on fabrique, livre, puis oublie. Cette image convient à un meuble ; elle convient mal à une application de paiement, un site de réservation ou un outil de travail. Le logiciel change parce que les personnes, les règles, les appareils, les lois et les usages changent.
À quoi sert le code ?
Le code est un ensemble d'instructions qu'un ordinateur peut exécuter. Il décrit par exemple comment calculer un prix, vérifier une identité, afficher une liste ou envoyer un message. Mais le code seul ne produit presque jamais un service utile. Il dépend aussi :
- de données : comptes, produits, documents, historique ;
- d'interfaces : écrans, API — des moyens pour d'autres logiciels de communiquer — et notifications ;
- d'infrastructures : machines, réseaux, services de stockage ;
- de personnes qui définissent le besoin, l'utilisent, l'observent et le font évoluer.
Un changement apparemment simple peut donc voyager loin. Modifier la définition d'un client « actif », par exemple, peut affecter une campagne, une facture, un tableau de bord et une équipe de support. Le travail d'ingénierie ne consiste pas seulement à écrire la nouvelle règle ; il consiste à voir ces conséquences et à les traiter consciemment.
Pourquoi les défauts apparaissent-ils ?
Un défaut n'est pas toujours une faute d'inattention. Il peut venir d'une information absente, d'une règle ambiguë, d'une donnée ancienne, d'une dépendance indisponible ou d'un usage que personne n'avait prévu. Une équipe fiable ne prétend pas que ces situations n'arriveront jamais. Elle organise son travail pour les détecter tôt et les corriger sans aggraver le problème.
Un logiciel est un ensemble de comportements reliés. Le faire évoluer revient à modifier une promesse tout en protégeant les autres promesses qui dépendent d'elle.
Pour aller plus loin : pourquoi changer avec confiance.