Il est possible de concevoir un logiciel sans erreur, jusqu’au moment où on en trouvera une... Les logiciels confrontent les rudes épreuves des différents comportements humains et des différentes technologies qui évoluent très rapidement, sans relâche.
Du plus petit aux plus grands créateurs de logiciels de la planète, lorsqu’on installe un nouveau programme, une mise à niveau est effectuée tôt ou tard afin d’y appliquer des correctifs. La « perfection totale » du premier coup a un prix.
Avant de signer un projet en TI (technologie de l’information), notamment dans la création d’un logiciel, il est impératif que les parties prenantes (clients et développeurs) s’entendent sur les exigences, mais aussi au niveau des tolérances en matière d’erreurs critiques.
Par exemple, un programme qui effectue des transactions financières, comme un guichet automatique, peut exiger une très grande quantité de tests pour éviter des cas de fraude, ou pour éviter des erreurs de communication, car l’entreprise financière pourrait subir des pertes très importantes. Il faut identifier les pistes critiques où nous ne devons pas faire d’erreur qui entrainerait d’importantes répercussions. Une entreprise manufacturière peut se voir dans une situation insoutenable si la production est arrêtée pendant plusieurs heures à cause d’une faille dans une application spécialisée.
Pour éviter les problèmes, il faut prévoir et identifier les impacts des erreurs, préparer des scénarios de test afin mettre le nouveau programme à l’épreuve, documenter et automatiser les tests pour éviter la reprise manuelle des mêmes tests, etc. Dépendamment du programme, l’envergure de ces activités de qualité peut devenir très impressionnante en temps et en dollars. Il arrive que pour un programme spécialisé et relativement simple à concevoir à la base, que le coût des tests surpasse plusieurs fois le coût du programme lui-même.
Combien le client est-il prêt à payer pour obtenir la qualité qu’il exige ? Envers quel type d’erreur le client ne voudrait pas être confronté ? Quand on crée un logiciel sur la base d’un processus existant, ces questions sont plus faciles à répondre, car on connait bien son domaine et on sait déjà à quoi s’attendre. Mais la création d’un nouveau logiciel basé sur un processus d’affaires encore inexistant, c’est nettement plus difficile. Cela demande parfois beaucoup plus profondeur d’analyse et c’est là que peuvent se cacher la plupart des surprises informatiques.
C’est pour cette raison que les créateurs de logiciel doivent mettre les efforts nécessaires pour trouver les éléments de risques et déterminer à l’avance les tests pour en arriver avec une solution fiable, évitant les erreurs critiques. Cela semble simple, mais souvent difficile à accepter quand ce travail, intangible au départ, frappe de plein fouet le budget. Le niveau de la qualité logicielle sera donc déterminé par les vases communicants qui sont le budget, les temps alloués et l’étendu des besoins. Ces 3 facteurs combinés détermineront donc le succès d’un projet informatique.
Référence :
Creating A Software Engineering Culture.
Auteur: Karl E. Wiegers.
Publié par Dorset House Publishing. ISBN 0-932633-33-1