Comment rédiger de bonnes spécifications ?

Même si les méthodes agiles prennent de plus en plus le pas sur des méthodes plus anciennes comme la méthodologie waterfall, avoir un référentiel documentaire et en particulier des spécifications fonctionnelles est indispensable. Selon nous, savoir rédiger des spécifications présente de nombreux avantages : 

  • cela évite le syndrome “never-ending project” : avoir un périmètre clair (même une backlog) n’est souvent pas suffisant pour se dire : “c’est terminé, je passe en prod”. Il est toujours possible de raffiner son projet, d’ajouter telle ou telle fonctionnalité… et donc, cela permet de rassurer le donneur d’ordre (le client) sur l’atterrissage du projet. 
  • cela permet de partager facilement les connaissances pour accueillir de nouveaux développeurs sur le projet par exemple ; 
  • cela permet d’avoir un référentiel avec les utilisateurs lors de la maintenance, de la transmission ou de la refonte d’un projet (mais je connais des entreprises qui font du projet comme nous et qui refusent de maintenir le projet qu’ils ont développé –  je trouve que c’est un peu facile !) ;

Alors, comment rédiger des spécifications fonctionnelles de façon efficace et tout en évitant de vous faire perdre trop de temps ? 

Note 1 : Pour simplifier cet article, nous ne parlerons que du fonctionnel (donc pas des autres aspects d’un projet comme les performances, la sécurité etc.). 

Note 2 : Nous ne parlerons pas non plus des aspects plus généraux tels que la description générale du projet, la vue d’ensemble, le contexte etc.

Quelques conseils généraux pour rédiger des spécifications

  1. Préférez les schémas aux longues explications ! Un bon schéma est souvent plus facile à comprendre.
  2. Essayez de faire des descriptions claires et précises, en évitant le jargon technique excessif. Évitez d’être trop verbeux. 
  3. Découpez vos différentes spécifications en éléments digestes, un document de plus de 50 pages n’est pas une bonne idée, il faut trouver la bonne granularité.
  4. N’oubliez pas que c’est un document vivant, susceptible d’être mis à jour au fur et à mesure de l’évolution du projet.. Pensez aussi à la manière de gérer les modifications, les différentes versions, le statut de ce document ou bien encore les revues et la validation.

Pour vous aider dans la conception, n’hésitez pas à utiliser des outils tels que Asana ou encore Jira.

La méthode que j’aime bien

1. La cinématique générale de l’application : 

Commencez par le plus général. En général, on peut commencer par un diagramme de processus qui peut représenter les différentes étapes et les affecter à des types d’utilisateurs différents. Dans ce schéma, identifiez les points d’interaction entre les composants et les systèmes.

Par exemple, pour un site e-commerce (pour prendre un exemple que tout le monde connaît), les étapes pourraient être :

Schéma pour rédiger des spécifications techniques pour un site e-commerce

Le client sélectionne des produits qu’il ajoute à son panier, il valide son panier, indique s’il dispose d’un compte ou bien en crée un nouveau, valide l’adresse d’expédition, effectue le paiement…

2. Rédigez des scénarios ou des cas d’utilisation :

Pour rédiger des spécifications, commencez par rédiger des scénarios simples. Vous pouvez détailler les éléments suivants : 

  • les différentes interactions : acteurs, les actions possibles et les résultats attendus, 
  • les maquettes des écrans, 
  • les données d’entrée et de sortie, 
  • les règles métiers 
  • la gestion des erreurs, les exceptions 

Prenons un exemple, c’est plus parlant : 

cas d’utilisation n°XXX : Créer un compte client

Acteurs : client

Description : Ce cas d’utilisation permet à un client de créer un compte sur le site e-Commerce, ce qui lui permettra d’accéder à des fonctionnalités personnalisées et de se connecter ultérieurement.

Maquette : 

Rédiger des spécifications - Créer un compte

Scénario principal :

  • L’utilisateur accède à la page d’inscription.
  • L’utilisateur saisit son nom, son prénom, son adresse e-mail et un mot de passe.
  • Le système vérifie que l’adresse e-mail est unique.
  • L’utilisateur confirme la création de son compte.
  • Le système crée le compte utilisateur et envoie un e-mail de confirmation.

Règles métiers, gestion des erreurs : 

Si l’adresse e-mail n’est pas unique, le système affiche un message d’erreur et propose un lien vers la page “mot de passe oublié”. 
Si l’utilisateur ne remplit pas tous les champs obligatoires, le système affiche un message d’erreur.

Postconditions : Le compte utilisateur est créé, et l’utilisateur reçoit un e-mail de confirmation.


Les erreurs qu’il faut éviter pour rédiger des spécifications fonctionnelles

  • Manque de clarté et de précision : Les spécifications vagues ou ambiguës peuvent entraîner des malentendus entre les développeurs, les testeurs et les clients. Il est essentiel d’être précis et explicite dans la description des fonctionnalités, des processus et des exigences.
  • Manque de flexibilité : Les spécifications doivent être suffisamment flexibles pour s’adapter aux changements inévitables qui surviennent au cours du développement du projet. Il est important de prévoir un mécanisme de gestion des changements, permettant d’actualiser le document de façon ordonnée et transparente.
  • Feedback des Utilisateurs : Les spécifications doivent être orientées utilisateur. Rédiger des spécifications sans avoir les retours des utilisateurs finaux peut conduire à un produit qui ne répond pas à leurs besoins. Il est crucial de mener des analyses des besoins, d’effectuer des tests utilisateurs, et de s’assurer que le document est régulièrement mis à jour en fonction de leurs retours.

Pour conclure

Alors nous savons que rédiger des spécifications fonctionnelles complètes et claires demande des efforts, mais cela contribue au succès du projet en minimisant les ambiguïtés et en alignant les attentes de toutes les parties prenantes.

Par ailleurs, avec un peu d’habitude, vous irez de plus en plus vite et vos spécifications s’amélioreront au fil du temps !

Vous avez besoin d’aide pour rédiger des spécifications ? Les équipes de TheCodingMachine vous accompagnent.


par TheCodM

Articles similaires TAG