La "qualité" est un grand mème des programmeurs, qui n'est jamais trop loin de son compagnon "modernité". Les grincheux me reprocheront ici normalement d'ergoter sans raison, parce que la qualité c'est le bien, et le bien doit être encouragé. C'est justement là que se situe la tromperie.

Comme il nous est rappelé dans le TLFi, la qualité est premièrement une caractéristique de nature, bonne ou mauvaise, d'une chose ou d'une personne. Bonne ou mauvaise. Parler de qualité n'est pas parler ni du bien ni du mal, parler de qualité n'est pas parler de moralité d'une chose, mais de sa caractérisation par rapport à sa nature, à son être.

Le travail de programmation n'implique d'ailleurs qu'à la marge ce travail de caractérisation. Par contre, il est important pour le programmeur d'arriver à produire quelque chose de conforme à la caractérisation attendue, aux qualités attendues. Ceci est l'activité d'assurance qualité. Et quand cette assurance qualité conclut à un résultat positif, alors on peut dire qu'on est en face à un logiciel "de qualité", c'est-à-dire qu'il se comporte comme on le souhaite, ou plus précisément, conformément aux souhaits exprimés. Dans la pratique, cela revient à démontrer que l'on répond aux exigences, soit par une preuve formelle, soit par des tests. Bon, ne nous voilons pas la face, ça fait bien longtemps que l'industrie a fait une croix sur les preuves formelles, ça demande beaucoup trop de travail et personne n'a trouvé de belles photos dans les banques d'images pour mettre ça en diapositives dans des conférences inspirantes.

Est-ce que le fait que Facebook continue de me bombarder de photos de chats, après dix ans d'expression continue de mon désintérêt voire mon aversion envers cette pratique cruelle de garder en captivité des OGM carnivores, en fait un logiciel de mauvaise qualité ? On ne peut répondre correctement à cette question qu'en ayant connaissance du comportement attendu par ses concepteurs. Contrairement à l'utilisation courante du terme, la qualité en informatique est pensée, décidée, en un mot, conçue : ça n'est pas une projection de valeurs morales sur le produit ou le service.


Vous pouvez trouver le reste de la série sous l'article d'introduction.