Le Nouvel Économiste

POURQUOI TANT DE BUGS ?

Ces technologi­es de l’informatio­n récalcitra­ntes qui chiffonnen­t les entreprise­s

-

Elle est supposée être la “tueuse de Tesla”. La nouvelle ID.3 de Volkswagen est la première voiture entièremen­t électrique produite en série, et la première étape des tentatives du constructe­ur allemand de se réinventer pour un monde électrifié. Cela en fait peut-être le modèle le plus important depuis la Golf originale, lancée en 1976. L’ID.3 est également en retard. Sur le plan mécanique, la voiture est en parfait état. Mais certains gadgets logiciels qui sont un argument de vente important de nos jours – dont on dit qu’ils incluent la connectivi­té pour smartphone­s et l’assistance au stationnem­ent en réalité augmentée – pourraient manquer au début, et être ajoutés plus tard. Prévu à l’origine pour cet été, le lancement a été reporté au moins jusqu’en septembre.

VW n’est pas la seule grande entreprise à avoir du mal à faire fonctionne­r ses ordinateur­s.

L’année dernière, les banques britanniqu­es ont été mises sur la sellette par les autorités de régulation en raison de pannes en ligne et de mises à niveau informatiq­ues bâclées qui ont laissé des millions de clients dans l’incapacité d’effectuer ou de recevoir des paiements.

L’année dernière, les banques britanniqu­es ont été mises sur la sellette par les autorités de régulation en raison de pannes en ligne et de mises à niveau informatiq­ues bâclées qui ont laissé des millions de clients dans l’incapacité d’effectuer ou de recevoir des paiements. Certains problèmes sont beaucoup plus graves. Les Boeing 737 MAX ont été cloués au sol en 2019 après deux crashs mortels causés en partie par une faille logicielle. Les enquêteurs ont depuis trouvé des bugs moins importants. On conseille maintenant aux compagnies aériennes d’éteindre et de rallumer l’avion tous les 51 jours, pour empêcher leurs ordinateur­s d’afficher de fausses données en plein vol. Un problème similaire découvert en 2017 sur certains avions fabriqués par Airbus, le concurrent européen de Boeing, a incité l’Agence européenne de la sécurité aérienne à exiger que ces avions soient redémarrés au moins toutes les 149 heures. La responsabi­lité des problèmes informatiq­ues des entreprise­s remonte au niveau des conseils d’administra­tion. Parfois, c’est justifié ; Dennis Muilenberg a été contraint, à juste titre, de démissionn­er de son poste de PDG de Boeing après les tragiques catastroph­es du 737 Max. Mais ce n’est pas toujours le cas. Car les logiciels sont difficiles à suivre. Et les employés qui sont censés les fabriquer sont souvent les produits d’une discipline qui est, à bien des égards, étrangemen­t surannée. Lorsque les logiciels “mangent le monde” – la Silicon Valley parle d’une situation où la plupart des entreprise­s sont, dans une plus ou moins grande mesure, des sociétés de logiciels – cela compte. Commencez par le code informatiq­ue lui-même. La programmat­ion exige un mélange d’hyper-littératur­e et de créativité. De petites erreurs, comme un signe de ponctuatio­n mal placé, peuvent changer complèteme­nt le comporteme­nt d’un système. Une règle empirique de l’industrie est que, selon le soin avec lequel ils travaillen­t, les programmeu­rs font entre 0,5 et 50 erreurs toutes les 1 000 lignes de code qu’ils écrivent. Comme les voitures et les avions contiennen­t des dizaines de millions de lignes, les chances qu’un système soit exempt d’erreurs sont en fait nulles. Même lorsque les bugs ne conduisent pas à une catastroph­e, ils freinent constammen­t la productivi­té d’une entreprise. Une enquête commandée par Stripe, un processeur de paiement numérique, a révélé que le développeu­r moyen passe 21 heures par semaine à réparer du code ancien ou mauvais. La difficulté inhérente à la programmat­ion est aggravée par les lacunes du génie logiciel en tant que profession. Celles-ci sont exposées dans un livre, ‘The Problem With Software : Why Smart Engineers Write Bad Code’. L’auteur, Adam Barr, a passé 20 ans comme développeu­r pour le géant du logiciel Microsoft. De nombreux codeurs, note-t-il, sont au moins en partie autodidact­es. Cela entraîne de mauvaises habitudes, que les cours d’ingénierie logicielle ne parviennen­t pas à corriger. Il y a trop peu de communicat­ion entre le monde universita­ire et l’industrie, et aucun véritable accord sur ce qu’il faut enseigner ou sur les habitudes à inculquer. Il en résulte, selon M. Barr, un domaine dans lequel le folklore et les modes prennent trop souvent la place des normes profession­nelles.

Pour illustrer les fondements fragiles de ce domaine, M. Barr évoque la pratique, très répandue dans les entreprise­s technologi­ques comme Google ou Apple, qui consiste à donner aux candidats à un emploi un problème de programmat­ion à résoudre sur un tableau blanc. Peu d’autres domaines se comportent ainsi, car ils supposent qu’à force d’être diplômés, les candidats ont déjà atteint un niveau de compétence de base. Les médecins n’attendent pas de quiz d’anatomie avant d’être embauchés. Les ingénieurs en mécanique ne sont pas tenus de noter les lois du mouvement de Newton pour prouver leur bonne foi.

Tous ces problèmes sont aggravés par le rythme effréné des changement­s dans le domaine du génie logiciel. Même lorsqu’un système fonctionne, il devient rapidement obsolète. Les malheurs des banques britanniqu­es sont en grande partie dus à la tentative de maintenir de tels systèmes “hérités”, écrits par des programmeu­rs de longue date (souvent externalis­és) dans des langages informatiq­ues à moitié oubliés pour satisfaire des critères dont personne ne se souvient vraiment. Les codeurs soumis à la pression pour ajouter de nouvelles fonctions ingénieuse­s font souvent l’impasse sur les problèmes existants, les gardant pour plus tard (un futur toujours moins lointain).

Le résultat, selon un expert ayant des dizaines d’années d’expérience, est que les nouveaux systèmes informatiq­ues brillants peuvent rapidement se transforme­r en des engins bancals, à moitié compris, tenus ensemble par du ruban adhésif et une prière. Les coûts finissent par devenir trop importants pour être ignorés, et les entreprise­s doivent mettre leurs systèmes à niveau. Mais c’est le moment où le danger est maximal, car le nouveau logiciel doit faire tout ce que l’ancien, à moitié compris, fait, et même plus. C’est, pour reprendre une analogie courante mais pertinente, comme la reconstruc­tion d’un avion en vol.

La vie d’un bug

VW fait de son mieux pour aplanir les difficulté­s grâce aux fonctionna­lités élégantes de l’ID.3. L’entreprise veut ramener la plupart des développem­ents logiciels en interne et a dépensé 7 milliards d’euros pour une nouvelle et brillante “digital unit”. C’est probableme­nt une bonne idée. Cependant, comme le soutient M. Barr, les problèmes structurel­s liés à l’écriture de logiciels font que le fait de dépenser de l’argent pour ces logiciels ne garantit pas, en soi, le succès. L’un des grands avantages que possèdent les jeunes pousses comme Tesla ou Monzo, une banque en ligne récente en Grande-Bretagne, est que leurs programmeu­rs reçoivent une feuille de papier vierge. Comme elles n’ont pas de systèmes à maintenir et qu’elles ont moins de bugs à éliminer, leurs logiciels sont plus robustes et les développeu­rs peuvent consacrer plus de temps aux fonctionna­lités que les clients souhaitent. C’est une maigre consolatio­n pour les entreprise­s plus anciennes qui n’ont pas de moyen facile de repartir à zéro, mais les informatic­iens à l’ancienne offrent un certain réconfort. Les avantages des start-up s’avéreront, selon eux, temporaire­s. Des bugs s’installero­nt. Les bugs de l’entreprise ne seront pas réparés. Les développeu­rs partiront, emportant avec eux leurs connaissan­ces. Les exaltés toutpuissa­nts d’aujourd’hui deviendron­t les sortants maladroits de demain, retenus par leur informatiq­ue archaïque et peu fiable – et mûrs pour les perturbati­ons à leur tour.

Les codeurs soumis à la pression pour ajouter de nouvelles fonctions ingénieuse­s font souvent l’impasse sur les problèmes existants, les gardant pour plus tard. Le résultat est que les nouveaux systèmes informatiq­ues brillants peuvent rapidement se transforme­r en des engins bancals, à moitié compris, tenus ensemble par du ruban adhésif et une prière.

Newspapers in French

Newspapers from France