Le bug le plus coûteux de l'histoire spatiale
Le 22 juillet 1962, la NASA lance Mariner 1, la première sonde spatiale américaine destinée à survoler Vénus. Moins de 5 minutes après le décollage, les contrôleurs au sol sont forcés de détruire la fusée Atlas-Agena qui transportait la sonde.
La cause ? Un tiret manquant dans le code de guidage.
Que s'est-il passé exactement ?
Le système de guidage de la fusée reposait sur un programme écrit en Fortran. Dans ce code, une formule mathématique cruciale contenait une erreur :
DO 5 K = 1. 3
Au lieu de :
DO 5 K = 1, 3
Vous voyez la différence ? Un point au lieu d'une virgule. En Fortran, cette erreur transforme une boucle en une simple affectation de variable.
Les conséquences en cascade
- Le système de guidage a dysfonctionné dès que la fusée a perdu le contact radio avec la station au sol
- La trajectoire est devenue erratique et menaçait des zones habitées
- L'officier de sécurité a dû activer le système d'autodestruction après 293 secondes de vol
"Le bug le plus coûteux de l'histoire" — c'est ainsi que la presse a qualifié cet incident
Ce que nous enseigne Mariner 1
1. Les petits détails comptent énormément
Un seul caractère mal placé a détruit une mission spatiale entière. Dans le développement logiciel, la rigueur syntaxique n'est pas optionnelle.
2. L'importance des tests
À l'époque, les tests de code étaient rudimentaires. Aujourd'hui, nous avons les tests unitaires, les tests d'intégration et les revues de code — des outils qui auraient pu prévenir cette catastrophe.
3. Les systèmes de secours sont vitaux
Heureusement, le système d'autodestruction a fonctionné. Sans lui, la fusée aurait pu causer des dégâts bien plus graves.
Le coût réel
- 18,5 millions de dollars de 1962
- Équivalent à environ 185 millions de dollars aujourd'hui
- Sans compter les retards de plusieurs mois sur le programme Mariner
La revanche : Mariner 2
Un mois plus tard, le 27 août 1962, Mariner 2 a été lancée avec succès et est devenue la première sonde à effectuer un survol réussi d'une autre planète.
Ce bug nous rappelle une vérité fondamentale du développement : les erreurs les plus simples peuvent avoir les conséquences les plus catastrophiques.