Après avoir regardé la série MegaStructures de National Geographic , j'ai été surpris de la rapidité avec laquelle de grands projets sont terminés. Une fois que le travail préliminaire (conception, spécifications, etc.) est effectué sur papier, la réalisation de grands projets ne prend que quelques années, voire quelques mois .
Par exemple, l' Airbus A380 "officiellement lancé le 19 décembre 2000" et "début mars 2005" , avait déjà été testé. Il en va de même pour les énormes pétroliers, les gratte-ciel, etc.
En comparant cela aux retards dans l'industrie du logiciel, je ne peux m'empêcher de me demander pourquoi la plupart des projets informatiques sont si lents, ou plus précisément, pourquoi ils ne peuvent pas être aussi rapides et sans faille, à la même échelle, avec suffisamment de personnel?
Des projets tels que l’Airbus A380 présentent à la fois:
Principaux risques imprévus: bien qu’il ne s’agisse pas du premier avion construit, il repousse toujours les limites de la technologie et les éléments qui fonctionnaient bien pour les petits avions de ligne risquaient de ne pas fonctionner pour le plus gros en raison de contraintes physiques; De la même manière, on utilise de nouvelles technologies qui n’étaient pas encore utilisées car, par exemple, elles n’étaient pas disponibles en 1969 lorsque le Boeing 747 a été fabriqué.
Risques liés aux ressources humaines et à la gestion en général: personnes qui abandonnent au milieu du projet, incapacité de joindre une personne parce qu'elle est en vacances, erreurs humaines ordinaires, etc.
Avec ces risques, les gens réalisent encore des projets tels que ces gros avions de ligne en très peu de temps et, malgré les retards de livraison, ces projets connaissent toujours un franc succès et sont de grande qualité.
En ce qui concerne le développement de logiciels, les projets sont à peine aussi vastes et complexes qu'un avion de ligne (tant sur le plan technique que sur le plan de la gestion) et comportent un peu moins de risques imprévus du monde réel.
Néanmoins, la plupart des projets informatiques sont lents et en retard , et l’ajout de plusieurs développeurs n’est pas une solution (passer d’une équipe de dix développeurs à deux mille permettra parfois de livrer le projet plus rapidement, parfois pas, et parfois ne fera que nuire au projet et augmente le risque de ne pas le terminer du tout).
Ceux qui sont encore livrés peuvent souvent contenir beaucoup de bogues, nécessitant des service packs consécutifs et des mises à jour régulières (imaginez "installer des mises à jour" sur chaque Airbus A380 deux fois par semaine pour corriger les bogues dans le produit d'origine et empêcher le crash de l'avion).
Comment expliquer de telles différences? Est-ce uniquement dû au fait que l'industrie du développement de logiciels est trop jeune pour pouvoir gérer des milliers de personnes sur un seul projet afin de fournir très rapidement des produits à grande échelle et presque sans faille?