Aujourd’hui de nombreuses sociétés cherchent à se doter de nouveaux outils digitaux ( site ou web, applications web ou applications mobiles entre autres). Elles font très souvent appel à des agences we et digitales pour développer ses outils en communiquant leurs besoins. Pour cela, le cahier des charges est l’outil essentiel sur lequel il ne faut pas faire l’impasse.
Pourquoi rédiger un Cahier des Charges ?
Constat
Aux prémices d’un projet, l’expression du besoin est souvent informelle. Les idées auxquelles nous pensons nous viennent au fur et à mesure que les réflexions sur le projet s’engagent.
L’exemple typique de l’expression informelle d’un besoin:
« J’aimerais avoir une application web qui permettrait à mes clients de se connecter sur un espace membre, d’acheter nos produits, de donner des avis…. »
On comprend vite les limites de ce type d’information et rapidement il devient essentiel de structurer son expression de besoins pour que le prestataire en ait une meilleure compréhension.
Quel que soit le type de projet, la construction d’un entrepôt, la fabrication d’une voiture ou encore la réalisation d’un site web, le cahier des charges est un document fondamental. C’est l’expression du besoin.
Sans cahier des charges, on s’expose aux risques suivants :
- une expression de besoin trop vague
- des incompréhensions dans les échanges avec les prestataires
- une vision erronée du produit final
- une perte de temps
Pourquoi sa rédaction est importante ?
Avant même que votre projet démarre, vous avez besoin que toutes les parties prenantes du projet (ou en tous cas ceux qui vont travailler dessus) comprennent votre besoin. C’est à cela que sert le cahier des charges.
Vos prestataires ont besoin d’informations claires et précises pour travailler. N’oubliez pas que l’objectif pour vous, est d’obtenir des offres les plus complètes et pertinentes possibles.
Le Cahier des charges doit donc permettre :
- d’énoncer et de structurer le besoin
- à l’ensemble des parties prenantes d’avoir le même niveau d’information
- aux prestataires de pouvoir construire des offres pertinentes
Le contenu du Cahier des charges
Rédiger un cahier des charges expose le contexte auquel fait face l’entreprise et le marché dans lequel elle évolue. C’est un document dont la mise en place permet de définir les besoin et les résultats attendus du donneur d’ordres et doit comprendre les exigences et objectifs du projet:
- le contexte de l’entreprise et son marché
- le contexte et objectifs du projet
- les utilisateurs du projet
- le détail des fonctionnalités attendues du produit ou du service
- les exigences et contraintes fonctionnelles
- les exigences et contraintes techniques (spécifications techniques)
- les exigences et contraintes calendaires
Comment rédiger un Cahier des Charges ?
Introduction du Cahier des charges
Contexte du projet
Abordons maintenant le contenu même du cahier des charges et comment le rédiger pour un projet d’application digitale.
Introduire votre projet, c’est poser le contexte et la problématique. Le contexte permet d’énoncer la situation dans laquelle vous vous trouvez à l’instant T. La problématique, quant à elle, fait l’état de l’art des processus métiers. Elle énonce les problèmes et comment vous comptez les résoudre.
C’est la raison pour laquelle il faut faire le lien avec la solution attendue. Ici, il semble important de décrire le fonctionnement de l’application. Le fonctionnement consiste à exposer le parcours des différents utilisateurs, étape par étape, sur les fonctionnalités principales de l’application.
L’objectif ici est de faire comprendre à votre prestataire ce qui vous conduit à mener à bien ce projet.
Objectifs du projet
Il est primordial de réfléchir et de poser les objectifs du projet. Ils vous permettent de mieux communiquer avec votre prestataire. Ainsi, ce dernier va pouvoir mieux appréhender le contexte et les enjeux auxquels vous faites face.
Il expose tous les objectifs du projet, principaux et secondaires.
Utilisateurs du projet
Il s’agit ici d’identifier les différents utilisateurs de votre projet. En effet ces derniers peuvent être simples utilisateurs finaux de la solution, parties prenantes, administrateurs, abonnés ou non, etc.
On définit généralement les utilisateurs par leur niveau de droit d’accès à l’application. Ce droit d’accès étant lui-même régit par les règles de gestion de l’application.
Par exemple, un simple visiteur n’aura pas le même accès qu’un utilisateur enregistré. Ou encore, un abonné aura des droits d’accès différents d’un simple utilisateur enregistré.
L’administrateur quant à lui devra pouvoir créer, gérer ou modifier certaines informations ou certains droits utilisateurs de la solution.
Exigences fonctionnelles
Une exigence fonctionnelle est un besoin précis auquel l’application ou la fonctionnalité de l’application doit répondre. Ici, il s’agit donc de la liste des fonctionnalités que l’application doit contenir pour satisfaire l’utilisateur final.
Ces fonctionnalités peuvent concerner aussi bien le front office (la partie visible par l’utilisateur final) que le back office (la partie invisible par l’utilisateur final, l’administration de votre application par exemple).
Par extension, les exigences fonctionnelles peuvent aussi faire référence aux besoins en termes d’expérience utilisateur et de design d’interface.
Ainsi, la simplicité d’utilisation, la limitation du nombre d’étapes ou d’écrans pour atteindre un résultat, le temps que prend un processus métier à être exécuté, sont autant d’exigences que vous pouvez formuler pour votre cahier des charges au niveau UX (User Experience).
Exigences techniques
Une exigence technique est un besoin ou une contrainte technique à satisfaire par l’application.
Les exigences techniques concernent tout l’aspect technique du projet. Ce peut être des exigences en termes de matériel, de protocole de communication, de niveau de service, de sécurité ou encore de technologie.
Le choix de l’architecture technique
L’architecture technique du projet est, dans une grande majorité des cas, dépendante de vos contraintes techniques, et des systèmes d’informations existants.
Pour que votre prestataire puisse tenir compte de ces informations dans sa proposition, vous devez faire un état des lieux de l’existant et suggérer ou imposer un choix d’architecture technique.
Ainsi, il est fortement recommandé de proposer vos exigences en termes de:
- serveur utilisé
- langage utilisé
- type de base de donnée
- type d’api utilisée (publique, privée, SOAP, REST)
- communication avec les systèmes existants (types de fichiers utilisés, SSO, etc…)
- protocole de communication (RFID, BLE, WIFI, 4G, etc…)
- sécurité (normes ISO, etc…)
Si vous n’avez aucune connaissance sur le sujet, vous pouvez vous faire aider par votre prestataire ou votre DSI.
Langages imposés ou non
Selon le type d’application que vous souhaitez développer, il existe des langages de programmation appropriés.
Qu’il soit imposé, fortement suggéré ou sujet à discussion, vous devez faire part du langage et framework approprié.
Par exemple, pour le front end nous vous recommandons les frameworks:
- Angular
- React
- View
- Node
Par exemple, pour le back end nous vous recommandons les frameworks:
- Django
- Symfony
- Laravel
- Flask
Il en existe un très grand nombre et ces choix techniques doivent être pris pour des raisons de design d’application et d’efficacité de fonctionnalité et non par simple convenance de langage.
Pré-requis techniques
Ce sont tous les aspects techniques qui permettent d’assurer un fonctionnement optimal de votre application:
- Sécurité (protocole HTTPS…)
- Base de données(MySQL / Oracle / PostgreSQL…)
- Charge serveur supportée (capacité d’accueil d’utilisateurs en simultanés)
- Accessibilité (zoom, Affichage texte, Contrôle vocal, Sous-titres…)
- Support et compatibilité navigateur (compatible avec Chrome/Safari/Mozilla…)
- Tests nécessaires (tests unitaires, non-régression…)
- Hébergement (cloud, serveur dédié, serveur mutualisé, serveur interne, CDN…)
Exigences de la prestation
Les exigences de la prestation concernent les informations relatives au déroulement du projet. Elles comprennent notamment:
- le lieu d’exécution
- les livrables attendus
- la méthodologie projet
- le planning du projet
- la maintenance
Lieu d’exécution
Il décrit le lieu où se déroulera la prestation. Par exemple, la prestation peut être effectuée dans les locaux du client ou dans ceux du prestataire.
Livrables
Cette partie liste l’ensemble des livrables attendus. Le livrable désigne toute production émise par le prestataire : il est le résultat d’une prestation. Il est conseillé d’être le plus précis possible. Il arrive aussi que ce sujet fasse l’objet d’un arbitrage entre vous et votre prestataire pour le rendu de son offre.
Méthodologie projet
La méthodologie projet détermine la méthode qui sera appliqué pour votre projet.
Il est nécessaire de désigner une méthode pour le projet (Exemple: SCRUM, LEAN, EXTREME PROGRAMMING, PRINCE II, CYCLE EN V,…) et d’énoncer vos exigences à ce sujet.
Planning & Dates clés du projet
Il concerne toutes les dates relatives au projet. Voici celles qu’il ne faut pas oublier:
- lancement du projet (réunion de kick-off);
- choix du prestataire;
- réunions (selon la méthodologie choisie, ateliers de conception, comités de pilotage, comité de clôture, etc);
- événements clés liés au lancement du projet;
- mise en production et début de garantie.
Maintenance & Garantie
Cette partie reprend vos exigences en termes de garantie et de maintenance. En fonction de la complexité de votre projet, vous devez vous interroger sur le temps de garantie et la fréquence à laquelle vous souhaitez maintenir ou faire évoluer l’application.
Prioriser les fonctionnalités de l’outil
Constat
Lorsque l’on se lance dans un nouveau projet, il y a une chose à laquelle on ne pense quasiment jamais : la priorisation des fonctionnalités.
On veut toujours que notre produit soit le plus complet, qu’il ait le maximum de fonctionnalités possibles. Mais dans la majeure partie des cas, il existe un conflit entre le budget que l’on a et les exigences que l’on fixe en termes de fonctionnalités et de planning.
En bref, cela signifie que vous souhaitez avoir une application parfaite dès le départ, celle qui aurait toutes les fonctionnalités auxquelles vous avez pensé. Et ce, même si elles ne sont pas essentielles.
Mais rappelez-vous, “Rome ne s’est pas faite en un jour”, et Instagram non plus.
Si on y pense, au commencement, Instagram était une application qui permettait d’appliquer des filtres sur des photos. Neuf ans après son lancement, l’application a d’abord cherché un moyen de monétiser son activité, a implémenté puis supprimé un nombre incalculable de fonctionnalités et est devenu le réseau social que nous connaissons aujourd’hui…
Méthodologie de priorisation
Partant de ce constat, il faut sûrement réfléchir à ne pas jeter toutes ses forces dans la bataille et réfléchir à prioriser les fonctionnalités de l’outil. À la clé, des économies d’argent et un gain de temps sur la sortie de votre produit.
Le principe de la priorisation est simple : il s’agit de donner un poids de priorité à vos fonctionnalités.
La priorisation doit être réalisée par rapport aux objectifs du projet (retours client, générer de la trésorerie, générer de l’abonnement, etc…). Elle passe par un recensement, un ordonnancement, une caractérisation et une pondération des fonctionnalités (Exemple: Échelle de priorisation : de 1 à 3 (Basse/Moyenne/Haute)).
Faites le point sur l’intégralité des fonctionnalités à développer puis identifiez celles que vous jugez les plus importantes pour que votre projet soit viable. Accordez plus ou moins d’importance aux fonctionnalités essentielles. L’application doit permettre à vos utilisateurs finaux d’utiliser les fonctionnalités indispensables.
L’erreur à ne pas commettre : penser que TOUTES les fonctionnalités sont essentielles. C’est faux, contre productif et cela pourrait vous jouer de mauvais tours en cas de choix du mauvais prestataire.
Avantages de la priorisation
L’intérêt de prioriser les fonctionnalités, c’est de pouvoir mettre en production une première version rapidement sur le marché et à moindre coût. On parle de MVP (Minimum Viable Product). Cette méthode vous permettra d’avoir des retours utilisateurs.
Avoir un produit livré rapidement vous permet de répondre aux attentes du marché que vous avez identifié à l’instant T. À l’inverse, développer le produit final prendra plus de temps laissant le risque à un décalage entre les attentes marchés et le produit.
Il est important de comprendre que le MVP n’est pas un prototype. Au contraire, c’est une première version aboutie du produit. Ainsi vous pourrez développer ou réajuster de nouvelles fonctionnalités pour votre outil.
Les avantages de la hiérarchisation sont nombreux :
- une livraison produit plus rapide;
- développer à moindre coût;
- obtenir des retours des utilisateurs;
- “ne pas mettre tous ses œufs dans le même panier” – moins de risque que le produit final ne corresponde pas aux attentes marchés.
Pour aller plus loin
Voici une liste d’éléments qui permettront à vos prestataires d’affiner leurs propositions.
Champ d’application
Il correspond au contenu du document. Cette partie à pour but d’établir un récapitulatif des documents qui constitue le cahier des charges. Elle aide votre prestataire à affiner les temps de développement.
Cette partie peut s’inscrire dans la partie “Introduire son Cahier des charges”.
Glossaire
Il correspond au contenu du document. Cette partie à pour but d’établir un récapitulatif des documents qui constitue le cahier des charges. Elle aide votre prestataire à affiner les temps de développement.
Cette partie peut s’inscrire dans la partie “Introduire son Cahier des charges”.
Schéma fonctionnel
C’est l’arborescence des différentes fonctionnalités de votre application. Elle indique le cheminement du parcours utilisateur à travers l’application. Si vous en avez un, votre prestataire pourra vous répondre et vous conseiller plus rapidement sur les fonctionnalités à développer. Le cas échéant, c’est votre prestataire qui produira un cadrage fonctionnel (arborescence des fonctionnalités et sous fonctionnalités).
Ce sujet peut se trouver après la partie “Exigences techniques”.
Charte graphique et identité de marque
La charte graphique et l’identité reprennent toutes les normes d’utilisations des éléments graphiques d’une entreprise (couleurs choisies, style de police, logos etc..). Quel que soit le support de communication, elle est essentielle pour la cohérence de votre identité visuelle.
Cette partie peut se trouver après les “Exigences fonctionnelles”.
KPIs attendus du projet
Les KPIs sont des indicateurs de performance. Ils vous servent à évaluer et à mesurer si un objectif est atteint. L’intérêt est que vous puissiez prendre des décisions adaptées. Pour qu’ils soient pertinents, les KPIs doivent remplir certaines conditions :
- être réalistes;
- être mesurables;
- être définis dans le temps.
En fonction de votre projet, il vous est possible de choisir différents types de KPIs. Par exemple vous pouvez définir des KPIs de délais, de coûts, de ressources et d’efficacité.
Cette partie peut se trouver dans “Introduire son Cahier des charges”.
Design de l’application
Pour une application, l’adoption des utilisateurs est le critère clé de réussite.
C’est la raison pour laquelle il vous est possible de réaliser des enquêtes utilisateurs, des tests utilisateurs, des Wireframes (maquette fonctionnelle établie lors de la conception d’une interface utilisateur), des prototypes fonctionnels, et même le design d’interface des écrans.
Si vous n’avez aucune idée du design de votre projet, vous pouvez réaliser un benchmark des applications existantes sur votre marché, et votre prestataire peut vous aider dans une démarche de design UX (User Experience) et design UI (User Interface).
Cette partie peut se trouver dans “Exigences fonctionnelles”.
Pour finir, d’un bon cahier des charges résulte la bonne compréhension du besoin. Les points essentiels à retenir sont :
- énoncer clairement les bases de son besoin
- faire la liste de ses exigences fonctionnelles et techniques
- poser les bases de la relation avec votre prestataire
- prioriser les fonctionnalités souhaitées
La priorisation est très souvent omise ou négligée alors qu’elle pourrait potentiellement apporter un coup d’accélérateur à votre projet en termes de planning et d’utilisation des ressources. Considérez donc cette étape comme élément essentiel de votre projet.
Enfin, nous sommes ravis de vous avoir donné quelques pistes dans la rédaction de votre cahier des charges. Si vous avez besoin d’aide dans la rédaction de votre cahier des charges, c’est avec plaisir que nous répondrons à vos questions.