Le logiciel a des bugs. C'est normal.
La déception survient lorsque les attentes ne correspondent pas à la réalité. Et nos attentes en matière de qualité logicielle sont profondément irréalistes. Ainsi, de nombreuses personnes sont constamment déçues, voire enragées, par les bogues logiciels. Ils ne devraient pas l'être.
Le seul moyen fiable et largement utilisé pour garantir une qualité logicielle irréprochable est d'écrire des logiciels qui font moins de choses, puis de passer une éternité à peaufiner les logiciels en question. Une telle approche est cependant très rarement compatible avec le succès commercial (surtout de nos jours) ou même avec la motivation des programmeurs (malgré ce que beaucoup peuvent prétendre).
Comment pensez-vous que le marché recevrait l'iPhone, si son amélioration principale réduisait de 1/3 ses fonctionnalités. Le tout afin de réduire la base de code afin qu'il y ait moins de bugs ? C’est ce que je pensais. Bien que les gens puissent être enthousiasmés par le concept des directives de type « arrêtez le train, nous devons réparer les voies », pour le développement de logiciels, ça ne fonctionnerait pas et ce n'est pas ce que les gens achèteraient.
Mais il y a l'argument : Si Apple est riche, ne peut-elle pas simplement embaucher plus de développeurs et de testeurs pour corriger tous les bugs ? Pour paraphraser Frederick Brooks :
Non. Le développement logiciel ne fonctionne pas comme ça. Lancer des équipes de plus en plus grandes sur des problèmes ne fait généralement qu'aggraver les problèmes.
Les bogues sont un sous-produit inévitable de l'écriture de logiciels. Bien sûr, il existe toutes sortes de techniques et de d’incantations qui promettent de réduire le nombre de ces maudites créatures, mais seule l'hyperbole comique prétend qu'une éradication complète est possible.
Une fois que nous acceptons ce simple fait que logiciel = bogues, nous pouvons progresser pour comprendre pourquoi les corriger peut même ne pas être si important la plupart du temps. L'absence de bogues n'est qu'un paramètre de succès dans les logiciels, mais il n’est même pas proche du plus important (à quelques exceptions près pour les systèmes vitaux).
Les logiciels inutiles peuvent être entièrement exempts de bogues, tout en restant totalement inutiles. Les logiciels utiles peuvent être truffés de bogues, tout en restant très précieux. Ou bien, la valeur d'un logiciel dépend beaucoup plus du problème qu'il résout que de la qualité avec laquelle il le fait.
Parfois, la dichotomie n'est pas si noire et blanche, bien sûr. Vous pourriez avoir deux logiciels qui résolvent le même problème, et il est raisonnable de penser que celui qui a le moins de bogues ferait mieux. Bien que cette simple déclaration soit souvent démentie par le marché. Des facteurs tels que l'adoption, les intégrations, la marque et le plaisir de l’utiliser l'emportent souvent sur la qualité.
Étant donné qu'il y a tellement de facteurs plus importants pour les perspectives d'avenir d'un progiciel et de ses fabricants, est-il vraiment surprenant que tous les bogues n'obtiennent pas la priorité "laisser tout tomber, nous devons résoudre ce problème" ? Bien sûr que non. Mais nous, en tant qu'utilisateurs qui rencontrons un bogue, prétendons constamment que c'est le cas.
C'est vraiment le summum de la myopie lorsque nous, en tant qu'utilisateurs, exigeons et rabaissons les développeurs de logiciels pour corriger notre bogue, simplement parce que nous l'avons eu, et simplement parce qu'il peut avoir causé n'importe quoi, d'une légère gêne à une perte de temps.
La valeur d'un bogue donné peut être évaluée par le nombre d'utilisateurs affectés, multiplié par la criticité du problème. Beaucoup d'utilisateurs perdent toutes leurs données à cause de ce bug ? D'accord, très important ! Réparons le maintenant! Beaucoup d'utilisateurs sont un peu ennuyés ou confus par ce problème ? Il devrait probablement être réparé d'ici peu. Quelques utilisateurs doivent consacrer 30 secondes supplémentaires à une solution de contournement ? Il est peu probable qu'il soit réparé de sitôt !
Les entreprises de logiciels qui restent en activité trie leurs bogues de cette manière. Ils ne lâchent pas tout pour faire face à n'importe quel put**n de bogues. Au fur et à mesure que les économies d'échelle se déclenchent, l'ampleur des conséquences d'un tel triage augmente également. Les grandes entreprises auront des centaines, voire des milliers, voire des dizaines de milliers de bogues ouverts de divers degrés de criticité. C'EST NORMAL. C'EST ATTENDU.
Ce n'est pas un appel à renoncer à la qualité logicielle, bien au contraire. C'est un appel à supprimer les réactions émotionnelles face à ce genre de problème. Rabaisser les développeurs, remettre en question leur professionnalisme (quoi que cela signifie !) ou feindre l'indignation face à ce qui afflige tous les logiciels rend tout le monde, y compris les utilisateurs, pire.
Alors la prochaine fois que vous rencontrez un bogue gênant, donnez-lui cinq minutes avant de lancer un tweet indigné. Émerveillez-vous du miracle que quelque chose d'aussi complexe qu'un logiciel moderne fonctionne ! Considérez les milliards d'instructions que nos puissants processeurs doivent obtenir pour que vous puissiez profiter des splendeurs (et des plaisirs) de l'informatique. Ayez de la sympathie pour celui ou celle qui l’a fait et la machine qui le fait fonctionner.