Vous souhaitez nous soutenir ? Devenez sponsor de l'association sur notre page Github
Opinions

Il y aura toujours des bugs

Mathieu De Gracia avatar
Publié le 13 juin 2022
Couverture de l'article Il y aura toujours des bugs

Tant qu'il y aura du code

Durant ma carrière de développeur j'ai connu quelques collègues, bien souvent manager ou RSSI, voulant appliquer une politique de "tolérance zéro" face aux bugs.

Le bug est aussi vieux que l'informatique, il y en aura toujours, une application qui ne provoque pas de bug est une application qui ne fait rien ou que personne n'utilise.

Quelqu'un qui pense qu'une application peut-être exempte de bugs est un fou.

Vous êtes bien naïf si vous pensez que votre site actuellement en production ne connaît pas d'erreur, vous ne les voyez tout simplement pas : elles vous passent sous le nez.

C'est malheureux, mais malgré tous vos efforts votre application sera bugée pour quelques simples raisons.

Vous ne contrôlez pas tout

Internet a changé, en 2023 une application web est l'aboutissement d'une stack technologique complexe, le temps d'un site en PHP tournant sur un wamp dans son coin est désormais loin.

Le web est de nos jours un imbroglio d'APIs, de base de données distantes, de services tiers, de microservices, d'intégration continue ... tout ce beau monde interconnecté constitue une véritable toile nourrissant votre application.

Le web est une chose vivante, affreuse et tentaculaire.

Cependant, vous n'avez pas la responsabilité technique de ces services et préparez-vous à une dure vérité ... ils ne sont pas tous opérationnels 100% du temps, l'omniprésence des pages de "status" suffit à s'en convaincre (ici, ou là, ou encore).

Tous vos sites internet fonctionnent continuellement dans un mode plus ou moins dégradé. Il y aura toujours une api indisponible, un peu trop lente, un défaut d'authentification, une attaque DDOS ...

Il est parfois possible de se prémunir de ces indisponibilités, non sans peine, en utilisant par exemple des circuits breakers quand cela est possible mais tous les patterns du monde seront inefficaces face à un incendie.

Et parfois le bug sera plus sournois.

Colosses aux pieds bugués

Avez-vous confiance dans votre framework, dans votre langage ? Vous ne devriez pas tant que ça.

Un langage, un framework, à l'instar de votre code sont tous bêtement des projets informatiques.

De plus grande envergure, d'enjeux, d'une qualité de code probablement supérieure à la vôtre mais reste avant tout du code, et comme chaque ligne de code que l'humanité a écrite elle comportera un jour ou l'autre des erreurs.

Ces bugs, ils existent déjà, ils trônent fièrement dans les bugs trackers de vos frameworks (Laravel, Django) comme de vos languages préférés (PHP, python).

Actuellement, il y a exactement 140 bugs connus dans PHP 8, ces bugs sont pour la plupart complexes nécessitant des uses-cases extrêmement précis mais pour autant ils existent.

Un jour ou l'autre votre langage ou votre framework vous plantera entre les doigts, suite à un bug connu ou à une nouvelle régression et vous n'avez absolument aucun moyen de vous en prémunir.

Si les mots "Segmentation fault" vous disent quelque chose vous savez alors de quoi je parle.

Se planter prouve que vous êtes humain

Vous aurez beau connaitre votre framework sur le bout des doigts, avoir tous les workflows high-tech pour vérifier, analyser, votre code, il vous arrivera tout de même de faire des erreurs.

Votre cerveau n'est pas efficace pour écrire du code mais pour survivre dans la savane, ce n'est pas grave, je ne vous insulte pas, j'ai le même que le vôtre.

L'omnipresence des biais cognitifs et notre incapacité à se représenter mentalement des choses abstraites devraient votre convaincre que notre cerveau n'est pas extrêmement doué pour la logique.

Si des astronautes de le NASA se trompent parfois de bouton sur une fusée à plusieurs milliards de dollars vous pensez réellement être infaillible à développer sur votre petit site e-commerce ?

Vouloir tout contrôler, tout savoir, dans un monde tel que l'informatique qui évolue tous les jours est humainement impossible ... votre framework préféré a probablement déjà reçu une MAJ depuis le début de cet article.

Je souhaite bien du courage à ceux et celles qui veulent se lancer dans cette voie ... et également de bien vérifier que le burn-out est couvert par votre mutuel (c'est pas drôle, prenez soin de vos collègues).

Mais finalement un bug, c'est grave ?

Non, enfin oui, 'fin entre les deux.

Trouver un bug est une bonne chose, cela prouve que vous êtes en mesure de les détecter ... et que quelqu'un utilise votre application ! Bien sûr, il est essentiel de tout faire pour limiter vos erreurs et améliorer la qualité de votre code.

Du pair programming, une stratégie de tests efficace, la systématisation des codes reviews, du monitoring, de la formation... tout ce qui vous semble bénéfique à l'amélioration de votre code est tout bonnement essentiel.

Pourtant, malgré tous vos efforts, votre code plantera un jour ou l'autre c'est une évidence.

Votre responsabilité en tant que développeur est d'être en mesure de réagir efficacement à ces erreurs.

Un bon manager ne vous tiendra pas rigueur d'un bug que vous avez provoqué mais attendra que vous soyez pro-actif à la résolution de cette erreur.

Connaissez vos outils, vos environnements de production, écrivez des procédures, ayez les bons réflexes pour mitiger les conséquences ...

Le bug est une évidence, vous y préparez est votre responsabilité.

Anything that can go wrong will go wrong.

A lire

Autres articles de la même catégorie