Aller au-delà des symptômes pour trouver les causes systémiques.
La plupart des résolutions de problèmes s'attaquent aux symptômes, pas aux causes.
Le déploiement a échoué? Annulez et redéployez. Un bogue en production? Appliquez un correctif d'urgence. La compilation est lente? Ajoutez plus de serveurs de compilation.
Ces correctifs s'attaquent à la douleur immédiate. Le problème disparaît... jusqu'à ce qu'il revienne. Parce que vous n'avez pas corrigé ce qui l'a causé.
L'analyse des causes profondes signifie demander « pourquoi? » jusqu'à ce que vous trouviez la cause systémique — la chose qui, si elle était corrigée, empêcherait le problème de se reproduire.
Le déploiement n'a pas échoué à cause d'un problème aléatoire. Il a échoué parce que la suite de tests est instable. La suite de tests est instable parce que les tests partagent un état. Les tests partagent un état parce que le framework de test n'a pas été bien compris lors de sa mise en place.
Corrigez le symptôme immédiat (réessayez le déploiement) et vous réessaierez demain. Corrigez la cause profonde (corrigez la compréhension du framework de test) et les déploiements cesseront d'échouer.
L'analyse des causes profondes prend plus de temps au départ. Mais elle permet d'économiser exponentiellement plus de temps en prévenant la récurrence.
Le danger des correctifs rapides
Chaque correctif rapide qui ne s'attaque pas aux causes profondes crée un modèle : le problème se reproduit, vous le corrigez à nouveau, il devient « normal ». Finalement, vous avez un système maintenu par des solutions de contournement, où les problèmes réels sont invisibles sous des couches de correctifs.
Les cinq pourquoi sont la technique d'analyse des causes profondes la plus simple : continuez à demander « pourquoi? » jusqu'à ce que vous atteigniez une cause profonde, généralement après environ cinq itérations.
Exemple :
Problème : La production est tombée pendant 2 heures.
Cause profonde : Séparation historique de la configuration et du code dans le pipeline de déploiement.
Contre-mesure : Déplacer la configuration dans le même dépôt et le même pipeline CI/CD que le code de l'application.
Pièges des cinq pourquoi :
Les cinq pourquoi fonctionnent mieux comme point de départ, complétés par des données et plusieurs perspectives.
Le diagramme d'Ishikawa, aussi appelé arête de poisson ou diagramme de cause à effet, aide à explorer simultanément plusieurs catégories de causes.
Le problème est la « tête » du poisson. Les principales catégories de causes sont les « arêtes ». Les sous-causes se ramifient à partir de chaque arête.
Catégories courantes (les 6 M) :
Pour les logiciels, vous pourriez adapter :
Le diagramme aide les équipes à réfléchir aux causes de manière systématique plutôt que de s'ancrer sur la première idée. Il révèle que les problèmes ont généralement plusieurs causes contributives.
Combinez les techniques
Utilisez les cinq pourquoi pour approfondir chaque branche de l'arête de poisson. L'arête de poisson garantit que vous explorez largement; les cinq pourquoi garantissent que vous explorez en profondeur. Ensemble, ils sont puissants.
Incident : L'échec du déploiement a causé une panne de 2 heures. Les cinq pourquoi ont mené à : configuration non testée → configuration gérée séparément → décision d'architecture historique. L'arête de poisson a révélé : aussi aucun guide de déploiement (Processus), aucun processus canari (Méthode). Les trois ont été traités.
Incident : L'échec du déploiement a causé une panne de 2 heures. Conclusion du post-mortem : « Le développeur aurait dû être plus prudent. » Action : « Être plus prudent la prochaine fois. » Le problème se reproduit deux semaines plus tard avec un développeur différent.