Mathieu Eveillard

Pourquoi la qualité logicielle se joue avant la première ligne de code

Pourquoi la qualité logicielle se joue avant la première ligne de code

Parler de « qualité logicielle » renvoie à un imaginaire très technique : stratégies de tests, modularité, architecture, refactoring… Et c’est vrai : il y a souvent beaucoup à faire sur ces sujets. Mais, en amont, la conception fonctionnelle joue elle aussi un rôle capital. Bien des bugs vus par l’utilisateur sont en fait des défauts de conception, des cas-limites que l’on n’avait pas anticipés. Et avant cela, quel sens y aurait-il à développer avec excellence une application qui serait mal conçue, ou, pire, qui ne répondrait pas aux besoins de ses utilisateurs ?

Dans mon métier, il est impossible de ne pas s’intéresser à la conception fonctionnelle : Garbage in, garbage out.

La conception fonctionnelle, moment charnière entre Discovery et Delivery

Que faut-il comprendre par « conception fonctionnelle » ? Commençons par la situer, au milieu du flux de production logiciel :

La conception fonctionnelle consiste donc à décrire le quoi avant de penser au comment. Autrement dit, modéliser votre métier tel qu’il serait si l’informatique n’existait pas, et décrire le comportement attendu de la part du logiciel (cela fait toujours partie du « quoi »).

Voici donc, pour rendre la chose plus concrète, quelques outils, pratiques et formalismes que vous pourriez utiliser lors de cette étape. Liste non exhaustive.

Votre boîte à outils fonctionnelle

Conclusion : « C’est technique »… vraiment ?

Si ces considérations vous paraissent « techniques », soyez pourtant assuré que nous n’avons parlé ici que du comportement attendu de l’application, autrement dit d’aspects purement fonctionnels. De toute manière, ce mot (« technique ») ne veut rien dire : je mets au défi quiconque de m’en proposer une définition univoque – quelqu’un devrait à ce moment précis me parler de Heidegger 😉

Exemple : vous concevez un produit SaaS consommable par API (API First). Détailler la signature de chaque endpoint, c’est technique ?

← Tous les articles