Présentation du problème
Les développeurs de logiciels apprennent tôt dans leur carrière que rien n’est plus urgent que de résoudre une panne de production. Cependant, le même niveau d’urgence n’est pas souvent accordé aux problèmes avec les outils de développement, les systèmes de build, les environnements de tests et d’autres parties de la chaîne de développement logiciel.
Le rôle de la chaîne de développement
La chaîne de développement est essentielle pour la livraison de valeur pour l’entreprise. Si le code ne peut pas être compilé, les développeurs ne peuvent pas faire leur travail et l’équipe ne produit pas de logiciels. C’est une panne de production pour l’équipe de développement. De même, si le serveur de tests est hors service, les testeurs ne peuvent pas faire leur travail et l’équipe ne produit pas de logiciels fonctionnels.
Les composants de la chaîne de développement
Il est important de considérer tous les composants qui vont de la « demande du client » à la « livraison de la demande au client ». Ces composants incluent les systèmes de rapport de bogues et de demande de changement, les outils de développement, les outils de build, les référentiels de packages, les bases de données locales, les conteneurs, les outils de CI/CD, les tests et les serveurs de tests.
Implications et limites
Une équipe avec une chaîne de développement défectueuse ne peut pas produire de logiciels et doit traiter cela comme une panne de production. Il est essentiel de donner la même importance aux problèmes de la chaîne de développement qu’aux problèmes de production. Les processus et les procédures doivent être mis en place pour prévenir et minimiser les temps d’arrêt de la chaîne de développement, tout comme ils le sont pour les services de production.