3 points par GN⁺ 2023-12-09 | 1 commentaires | Partager sur WhatsApp

Absence de formation sur la manière d’assurer la qualité logicielle

  • Lors des études d’informatique à l’université, la formation à l’assurance qualité logicielle (QA) est absente.
  • La majeure partie du temps est consacrée aux algorithmes, au fonctionnement des ordinateurs, à l’histoire des langages et des concepts, etc.
  • Il existe parfois un semestre sur les approches de gestion de projet et Scrum, mais la QA n’est pas abordée du tout.

Comment les entreprises livrent leurs produits dans les délais

  • Pour des raisons budgétaires, les entreprises retirent souvent en premier du projet les standards et mesures de QA.
  • Quand le développement prend du retard ou que le périmètre s’élargit, il ne reste pas assez de temps pour la QA.
  • Des logiciels instables sont mis en production après un minimum de tests non structurés.

Comment sortir de cette roue de hamster

  • Il faut des années pour acquérir l’expérience et la confiance nécessaires pour signaler les mesures de QA manquantes dans un projet.
  • On découvre des lacunes de monitoring et l’on subit des problèmes comme des défaillances du système en production.
  • Si les mesures de QA ne sont pas mises en place, on ne peut pas vraiment apprendre à bien faire.

Parler d’argent

  • Expliquer qu’un logiciel sera « plus stable » ou « beaucoup plus facile à maintenir » n’est pas assez concret pour des non-développeurs.
  • Il faut parler du coût de l’absence de QA.
  • Il est efficace d’expliquer les mesures de QA en termes de coûts, avec des exemples.

Dose minimale efficace

  • Il ne faut pas surconcevoir les mesures de QA ni bloquer l’avancement du projet.
  • Il est important de tester les fonctionnalités essentielles de l’application et de vérifier qu’elles se comportent toujours comme prévu.
  • Le concept de « dose minimale efficace » (MED) permet de commencer par les éléments les plus importants.

Points à examiner attentivement

  • Lorsqu’on lance un nouveau projet ou qu’on le rejoint, il faut rechercher les concepts de QA en place.
  • Il est important d’avoir des documents ou un plan de test qui montrent que l’équipe a réfléchi à la QA.
  • Écrire les tests en même temps que le nouveau code permet de structurer ce code pour qu’il soit réellement testable.

Bénéfices pour le projet

  • En parlant de qualité et en proposant des solutions possibles, on élargit son impact en tant que développeur.
  • Les mesures de QA permettent au projet de croître à un rythme sain.

Comment améliorer le projet

  • En utilisant des mesures de QA, on peut être reconnu dans un projet comme quelqu’un qui produit un logiciel de qualité.
  • Il faut garder la MED à l’esprit dans le projet et devenir une voix du changement au sein de l’équipe.

L’avis de GN⁺

Le point le plus important de ce texte est le manque de prise de conscience de l’importance de l’assurance qualité (QA) dans le processus de développement logiciel et de la manière de la mettre en œuvre. La QA est souvent négligée, alors qu’elle est essentielle à long terme pour la réussite et la stabilité d’un projet. Ce texte est intéressant et utile, car il aide les ingénieurs logiciels débutants à comprendre l’importance de la QA et propose des moyens concrets de l’intégrer dans des projets réels.

1 commentaires

 
GN⁺ 2023-12-09
Avis Hacker News
  • L’ingénierie logicielle n’est souvent pas un sujet central de l’informatique (CS) et est fréquemment enseignée dans d’autres cursus, comme des options ou des parcours dédiés au software engineering.

    À la CMU, il existe des programmes de master et de doctorat en ingénierie logicielle, qui couvrent de nombreux sujets, dont ceux mentionnés dans le billet de blog.

  • Beaucoup constatent qu’il est plus facile de collaborer avec des personnes titulaires d’un diplôme en informatique. Elles comprennent l’importance de bons algorithmes et n’essaient pas d’implémenter elles-mêmes un parseur ou de la cryptographie.

    Il est souligné qu’en ingénierie logicielle, il manque souvent un travail de correction des idées naïves sur le travail en équipe et la qualité.

  • Le développement de logiciels de haute qualité peut s’apprendre dans des entreprises expérimentées.

    Autrefois, c’étaient les entreprises du FAANG, mais aujourd’hui on peut aussi l’apprendre dans des sociétés comme TailScale. Au lieu d’abuser de microservices sans intérêt, de Docker ou du traitement JSON, elles peuvent améliorer la qualité grâce à QuickCheck, aux tests d’hypothèses et au fuzzing.

  • Affirmer qu’il faut livrer un logiciel sans bug dans les délais est un mauvais point de départ pour un article sur le logiciel de qualité.

    Croire qu’il est possible de déployer du code sans bug est une idée déconnectée de la réalité.

  • Il existe des programmes de computer engineering et des universités qui mettent l’accent sur les stages et la pratique.

    Dans beaucoup d’universités, les départements de CS sont issus des départements de mathématiques et mettent donc l’accent sur la théorie. L’université n’est pas simplement une école professionnelle, mais un lieu où l’on apprend à maîtriser des contenus complexes.

  • L’idée que l’université enseigne la construction de logiciels industriels est exagérée.

    À l’époque où les pipelines de déploiement continu sont devenus la norme, faire vérifier manuellement les bugs par un service d’assurance qualité est considéré comme une méthode dépassée.

  • L’argument selon lequel un logiciel sera « plus stable » ou « plus facile à maintenir » n’est pas convaincant pour les personnes qui ne travaillent pas directement sur la base de code.

    Les développeurs parlent du coût de l’absence d’assurance qualité (QA), car c’est un langage que l’entreprise et les managers comprennent.

  • On peut choisir trois éléments parmi la qualité, le temps, la complexité de la communication et le coût.

    L’ingénierie logicielle est un sport d’équipe auquel il est difficile d’appliquer des processus d’usine, et il faut accorder de l’importance au travail collectif comme à la progression individuelle.

  • Les développeurs logiciels ont appris à produire des logiciels de qualité, mais il leur est difficile de l’appliquer en pratique parce que les MBA ou les conseils d’administration qui dirigent l’entreprise ne le comprennent pas.

    Dans la plupart des entreprises, l’avis des développeurs est globalement ignoré.

  • La qualité est en réalité une propriété qui ne peut s’acquérir que par la pratique.

    La capacité à produire des résultats de haute qualité s’obtient par un entraînement répété.