L'histoire de l'analyseur différentiel
La première règle d'ingénierie des systèmes de Hamming : Si vous optimisez les composants, vous ruinerez probablement les performances du système.
Il l'illustre avec une histoire tirée de son propre travail. Il exploitait un analyseur différentiel — un ordinateur analogique qui résolvait les équations différentielles par intégration mécanique. La demande a augmenté, de sorte qu'une deuxième unité a été commandée pour être connectée à la première de manière à ce que les deux puissent fonctionner séparément ou ensemble.
Les constructeurs, fiers de leur travail, ont amélioré les amplificateurs de la nouvelle unité. Hamming a insisté : toute amélioration ne doit pas interférer avec le fonctionnement global du système. Le jour de l'acceptation, il a exécuté l'essai classique : résoudre y'' + y = 0, tracer y par rapport à y', s'attendre à un cercle parfait. Cela a échoué immédiatement.
La cause : les amplificateurs améliorés consommaient plus de courant à travers le circuit de mise à la terre. La mise à la terre inadéquate, qui avait bien fonctionné avec les amplificateurs d'origine, permettait maintenant aux courants de fuite de se coupler entre les sous-systèmes. L'amélioration d'un composant (amplificateurs) a dégradé l'interface (mise à la terre), et le système a échoué.
La correction était triviale — une mise à la terre en cuivre plus lourde — mais le principe était clair : une amélioration de composant change le comportement de son interface. Le reste du système a été conçu autour de l'ancienne interface. Améliorer le composant, casser l'interface, dégrader le système.
Reconnaître l'optimisation des composants
Hamming dit que la règle 'semble si raisonnable : si vous améliorez un composant isolé, le système entier sera meilleur' — et pourtant elle est fausse. L'échec est médiatisé par l'interface : l'amélioration du composant change le signal que l'interface reçoit.
Interfaces plutôt que composants
La conclusion pratique de Hamming : les ingénieurs des systèmes doivent concevoir et vérifier les interfaces en premier, les composants en second. Un composant parfait avec une interface cassée est inutile. Un composant médiocre avec une interface bien spécifiée peut être amélioré ultérieurement.
Règle 2 : les conditions limites (contraintes) d'un système sont souvent plus importantes que les valeurs optimales à l'intérieur de ces limites. Un système conçu pour maximiser les performances au point de fonctionnement attendu est souvent fragile : de petits écarts en dehors de la plage attendue provoquent des défaillances. Un système conçu pour fonctionner en toute sécurité sur une large gamme — avec des contraintes bien définies — est robuste.
Exemple : un système de communication conçu pour exactement 100 Mbps de trafic à 25°C échouera si le trafic passe à 110 Mbps ou si la température monte à 40°C. Un système conçu avec une contrainte « ne doit pas dépasser 90 % d'utilisation à aucune température inférieure à 60°C » est plus utile, même si ses performances de pointe sont légèrement inférieures.
Le travail de l'ingénieur des systèmes : non pas d'optimiser A ou B individuellement, mais d'optimiser A+B+C... dans leur ensemble, soumis à des contraintes.
Le système éducatif : une ingénierie des systèmes échouée
Hamming applique son propre principe à l'éducation. Au fil des décennies, les universités ont optimisé les cours individuels de mathématiques : le calcul a été réduit à l'essentiel, l'algèbre linéaire a été nettoyée et resserrée. Chaque cours, évalué individuellement, semble meilleur.
Mais vue comme un système, de grands écarts sont apparus :
- Induction mathématique : à peine mentionnée après l'école secondaire.
- Nombres complexes : introduits brièvement en algèbre, puis évités jusqu'à tard dans l'algèbre linéaire quand les valeurs propres complexes apparaissent. Les étudiants font face à deux idées nouvelles et difficiles simultanément sans préparation antérieure.
- Coefficients indéterminés : brièvement mentionnés.
- Preuves d'impossibilité : presque entièrement absentes.
- Mathématiques discrètes : largement ignorées.
L'optimisation de chaque composant (chaque cours) a créé des lacunes d'interface : des ponts conceptuels manquants entre les cours. Le résultat du système — les ingénieurs et scientifiques éduqués — ont souffert, même si les métriques de résultat de chaque cours se sont améliorées.
Résister à l'envie naturelle de réparer la pièce cassée
L'observation de Hamming : il est facile de dire les bonnes paroles sur l'ingénierie des systèmes. Très peu de gens peuvent réellement le faire quand le moment vient.
La réponse naturelle quand un système échoue : identifier le composant le plus manifestement cassé et le réparer. C'est la pensée des composants. Le système a échoué pour une raison qui implique l'interaction des composants, des interfaces et des contraintes — mais l'échec le plus visible est généralement à un seul composant.
La discipline de l'ingénieur des systèmes : avant de réparer l'échec visible, demandez-vous : pourquoi le système a-t-il produit cet échec à ce composant ? Le composant est-il réellement sous-performant, ou demande-t-on au composant de fonctionner en dehors de son enveloppe de conception par le reste du système ? Réparer le symptôme du composant laisse l'échec du système intact.
Le goulot d'étranglement de la communication dans les grandes organisations suit ce schéma : un département communique mal (échec visible). Correction des composants : embaucher de meilleurs communicateurs. Correction du système : réorganiser l'architecture du flux d'information de manière à ce que moins de communication soit requise pour réussir la même coordination.
Diagnostic du système
La distinction : une correction des composants traite un symptôme. Une correction du système traite la cause. La cause implique généralement la structure du système — quels composants existent, quelles interfaces les connectent, quelles contraintes lient leur fonctionnement.