|
|
|||||
|
|
|
Comment créer un cahier des charges
|
|
||
|
On peut décomposer ce travail en 4 phases principales : - Description initiale L’établissement d’un cahier des charges implique beaucoup de transmissions d’informations entre différents intervenant chez le client et le développeur. Cette transmission peut bien sur se faire par courrier classique, mais cette méthode comporte de nombreux désavantages : -
Transmission très lente (il y a déjà suffisamment de délais dus
à au temps de réaction et de traitement de chaque intervenant) Pour toutes ces raisons, il est très préférable de communiquer par email. Le manque de formatage des emails peut par contre rendre les communications plus difficiles. Une solution hybride comme la réalisation de fichiers pdf envoyés en pièce attachée d’email est donc préférable. Si le client n’est pas équipé d’un système de création de fichier pdf, il est possible de lui faire installer un système gratuit comme Cute pdf (http://www.cutepdf.com) qui permet d’imprimer depuis n’importe quel logiciel dans un fichier pdf.
Voyons en détail ce que chaque phase implique.
Phase 1 : Description initiale En général, ce travail est à réaliser par le client, en interne. Si le projet est relativement petit et/ou si un seul (ou un petit nombre d’) interlocuteur possède toutes les données chez le client, il est aussi possible de réaliser cette phase sous la forme d’une discussion (en personne ou par téléconférence).
A) Le but est de réaliser une description très générale des fonctionnalités nécessaires. Par exemple : 1. Module de gestion des clients comprenant: fiche
client, facturation, gestion des relances, gestion des mailings de prospections,
... Lorsque certain de ces traitements sont d’ores et déjà réalisés à la main ou avec un autre logiciel, il est recommandé de fournir des exemples réels de cas minimum, moyen et maximum (par exemple une facture comprenant une seule ligne, une facture de taille moyenne, une facture très longue). Pour répondre au souci de confidentialité des clients, il est tout à fait possible de noircir les noms et adresses des clients avant de les envoyer. Si le travail est effectué à distance, les documents peuvent être transmis par fax ou mieux encore sous forme de fichiers (pdf par exemple) ou images (provenant d’un scanner).
B) Il faut ensuite réaliser une description très générale de l'architecture matérielle nécessaire ou en place. Par exemple : 1. Chaque groupe d'utilisateurs travaille de manière
indépendant (pas de partage d'information entre les groupes). Si l’architecture matérielle est déjà en place, il suffit de la décrire, et d’y ajouter les améliorations (s’il y en a) que la client désire voir correspondre à la nouvelle application. Un exemple fréquent est la mise en place d’un nouveau logiciel permettant à des représentant de prendre des commandes chez le client et de les transmettre facilement, la méthode en place étant encore le crayon et le papier. Cela implique un changement de l’architecture matérielle en même temps que le développement du logiciel correspondant. Si elle n’est pas en place, il est la encore important d’exercer un rôle de conseil. Il faut demander au client une description en termes de qui fait quoi, où, et quand.
C) Il faut aussi faire une liste des correspondants principaux (et coordonnées / mail / téléphone) pour chacun des modules décrits en A . Il est en effet très rare qu'une seule personne connaisse de manière détaillée TOUS les aspects pratiques d'une organisation... Plusieurs correspondants peuvent bien sur être listés pour chaque module. Les personnes listées ici seront responsables des informations détaillées transmises pour chaque module. Leur choix est donc très important. Une fois que la phase 1 a été réalisée par le client (le résultat ne devrait pas être plus de 2 ou 3 pages), envoi du document résultant au consultant (moi).
Conditions particulières Les conditions particulières peuvent faire partie du cahier des charges ou être mise en place dans un document séparé. Je ne rentrerai pas dans le détail ici de tout ce qu’elles peuvent impliquer. Comme leur nom l’indique, elles sont souvent spécifique à chaque projet. Il faut simplement penser à aborder ces sujets avec le client et à les formaliser dans un accord écrit. Ces conditions peuvent concerner des domaines très divers, comme par exemple : -
Le client veut une licence pour ses 40 divisions incluse dans le
prix de développement Une idée fausse très souvent rencontrée chez les client est que le fait de vous donner des informations permettant la réalisation du logiciel leur donne automatiquement des droits de propriétés intellectuelle, et que si le logiciel écrit pour eux est ensuite revendu comme un progiciel, ils ont automatiquement droit à un pourcentage sur les ventes. Lorsque vous établissez un cahier des charges pour un client, et/ou plus tard lorsque vous fournissez le devis correspondant, vous devez donc aussi aborder ces sujets avec lui et formaliser les décisions prises par écrit.
Phase 2 : Questions réponses En me basant sur le document issu de la phase 1, je réalise une liste de questions sur les modules décrits en 1-A, une description plus technique sur l'architecture décrite en 1-B, et éventuellement une description technique et légale des conditions particulières décrite en D avec bien sur aussi des propositions de solutions alternatives, la description des problèmes que chaque solution implique, etc. J'envoie les questions/propositions à chaque correspondant concerné (et au correspondant principal bien sur) grâce à la liste 1-C et j'effectue un suivant constant des réponses reçues (ou pas). Au fur et à mesure de l'avancement de ce prcessus, je réalise un arbre des questions réponses consultable à tout moment par le correspondant principal et si désiré par les correspondants/module sous la forme d’une page web (non reliée à quoi que ce soit et protégée par un mot de passe pour des raisons évidentes de confidentialité), avec un arbre des étapes et des liens vers les documents correspondants. Cette page va se présenter sous la forme suivante (par exemple). Chaque texte souligné est un lien vers le document correspondant. Les dates en rouge correspondent aux document en attente et permettent de visualiser d’un coup d’œil l’avancement des travaux et ce qui reste à faire. Le délai entre la date d’envoi et le moment ou la réponse est attendue est en général d’une semaine, de manière à laisser aux intervenants le temps de traiter le problème en plus de leur charge de travail normale sans pénaliser le temps de réalisation du cahier de charges. Ce délai est en général discuté avec le client au tout début du processus. Il peut être raccourci ou allongé en fonction des circonstances.
1. Module de gestion des clients comprenant: 1.1 Fiche client (13 mai 2006) 1.2 Facturation (13 mai 2006) 1.3 Gestion des relances (13
mai 2006) 1.4 Gestion des mailings de prospections
(13 mai 2006) 2. Module de prise de rendez vous par client
(14 mai 2006) 3. Module de gestion des courriers reçus/scan
effectués/traitements effectués (14 mai 2006) 4. ...
Chaque fois qu’une réponse est reçue, je modifie la page pour le signaler, mets en place un lien vers le texte de la réponse, éventuellement soumets des questions complémentaires, et incorpore les informations obtenues dans le chapitre correspondant du cahier des charges. Si une date de réponse attendue est dépassée, je relance le correspondant en retard et signale le fait au correspondant principal. Ce système permet en général d’obtenir les réponses dans un délai raisonnable. Tant que la réponse n’est pas obtenue, des relances régulières sont faites, par email et par téléphone. Il s’agit ici d’obtenir des réponses sans s’aliéner les correspondants qui sont en général en retard du fait de leur charge de travail, pas par mauvaise volonté…
Cette phase comprend autant de cycles que nécessaire et produit à chaque cycle un cahier des charges plus précis et complet.
A ce stade la liste de départ est devenue beaucoup plus détaillée (par exemple, la gestion des relances comprend des sous chapitres pour chacun des types de relances successives, avec délai, textes, actions à effectuer, etc.) et chaque ligne de la liste inclut un texte de description aussi précis que possible, avec écrans de maquettes quand cela est nécessaire). Lorsque le cahier des charges atteint un niveau de cohérence suffisant (c'est à dire quand je n'ai plus de questions restées sans réponse), il est recommandé de passer par une phase de commentaires par les futurs utilisateurs:
Phase 3 : Commentaires Cette phase n'est pas OBLIGATOIRE, mais elle assure que des problèmes non jugés important par les (ou inconnus des) décisionnaires mais qui bloquent les utilisateurs tous les jours puissent être incorporés, et que l'expérience de la vie pratique de l'entreprise puisse avoir une chance d'être utilisée dans le futur outil : A) Le cahier des charges étant dés le départ organisé en modules correspondant aux différentes activités listés en 1-A, chaque partie est envoyée (encore une fois, sous forme de fichier pdf) à : - Soit tous les utilisateurs concernés La deuxième méthode est en générale plus efficace, sachant que les utilisateurs en question seront aussi plus tard nécessaires dans la phase de test.
Chaque destinataire dispose d'un temps prédéterminés pour lire et commenter les informations reçues. Si les utilisateurs ne comprennent pas le document reçu ou certaines parties de celui ci, ils posent des questions sur ce qui n'est pas clair pour eux, et ces questions sont souvent aussi révélatrices de problèmes que des commentaires précis. Encore une fois, je réalise un arbre sur le web visible par les correspondants principaux dans chaque module avec les noms des destinataires, les dates de réponses attendues, les réponses reçues des utilisateurs, et éventuellement, dans le cas de questions, les dialogues engagés... Suivant la culture d’entreprise en place, il est parfois difficile d’impliquer les utilisateurs. Pour améliorer les retours d’information, il est dans ce cas nécessaire de mettre en place une boite à idées anonyme.
B) Une fois la partie A terminée (module par module), je réalise un résumé des demandes/questions/commentaires et le soumets à chacun des correspondants principaux avec bien sur mes propres réflexions sur chaque demande. Les envois de documents, dates de réponses attendus, etc., sont aussi visibles sur le l'arbre du site web. Une fois que les réponses sont reçues, les modifications nécessaires/voulues correspondantes sont incorporées au cahier des charges et cette phase est répétée pour vérifier au niveau des utilisateurs que les solutions trouvées ne génèrent pas d’autres problèmes. Plusieurs cycles successifs sont souvent nécessaires à ce niveau pour obtenir une solution qui obtienne le support actif des utilisateurs.
Réussir à obtenir ce support actif signifie que les utilisateurs vont être impatient de pouvoir utiliser le nouveau système et donc que l'on constatera beaucoup moins de résistance au moment de la mise en place du logiciel. Cet aspect de la réalisation d'un logiciel est largement sous estimé par beaucoup de développeurs et en général TOTALEMENT ignoré par les clients avant leur première expérience de déploiement (et souvent même après, étant donné qu'il est beaucoup plus facile de blâmer l'équipe de développement pour les problèmes de déploiement que d'accepter le fait que les employés de la compagnie font de la résistance).
Une fois cette phase terminée, on obtient un cahier des charges qui est soumis aux différents correspondants pour approbation. Encore une fois, un arbre de soumission/approbation est disponible sur le web pour permettre de suivre le déroulement de cette phase. Normalement, à ce niveau, et sauf erreur flagrante dans une des phases précédentes, l’approbation par les différents correspondant est une formalité. Il faut préciser que chaque module peut comprendre différentes options parfois incompatibles les unes avec les autres. Des fonctionnalités peuvent être décrites qui sont optionnelles, souhaitées, mais dont la réalisation ne sera effectuée que si le budget le permet, ou dans un deuxième temps.
Phase 4 : Chiffrage D’accord… Le chiffrage ne fait pas à proprement parler partie de l’établissement du cahier des charges… Il est l’étape suivante de celui-ci. Il est d’ailleurs clair qu’une fois le cahier des charges établi, rien n’empêche le client de l’utiliser pour faire un appel d’offre et de faire ensuite exécuter le développement par quelqu’un d’autre. C’est même souvent le cas lors de gros projets. C’est seulement lorsque le cahier des charges atteint ce niveau de précision qu’un chiffrage des coûts de développement PRECIS peut être effectué... L’expérience nous montre toutefois que même en prenant toutes ces précautions, lors de la phase d’implémentation, des modifications seront soit demandées par le client/les utilisateurs soit rendus nécessaires par des problèmes techniques non envisagés dans les phases précédentes. Lorsque je soumets une proposition chiffrée à un client, le chiffrage est final si le module est réalisé en conformité avec le cahier de charges. Si des modifications sont nécessaires du fait d’une erreur de ma part, elles sont gratuites. Si des modifications sont demandées par le client, elles sont chiffrées précisément et payantes (sauf si mineures, mais le nivaux de difficulté est déterminé par moi, la simplicité apparente d’une modification demandée entraînant souvent beaucoup de changement en profondeur).
Ces conditions sont celles que j’applique en général. Elles donnent à chaque partie un niveau de sécurité important : ce qui sera réalisé est ce qui est décrit dans le cahier des charges.
Nombreux sont les cas de dépassement de devis dans l’industrie informatique. Ces dépassement sont très souvent dus à un cahier des charges mal fait, parfois entièrement en interne et dans un nombre de cas alarmant remplis d’erreurs, de descriptions incomplètes et de références à des informations non fournies dans le cahier des charges lui même ou dans ses annexes.
Il est clairement impopulaire de renvoyer un cahier des charges de ce type au client potentiel en lui expliquant que le document en question est quasi inutilisable… Mais si vous ne le faites pas et que vous acceptez le travail, attendez vous à une relation développeur/client plus que chaotique.
Consulting J’espère que ce document sera utile à certain d’entre vous comme cadre de travail. N’oubliez pas que si vous le désirez, je peux réaliser ce cahier des charges pour vous. Je peux travailler en direct avec un client pour établir le cahier des charges qui sera utilisé pour un appel d'offre, ou sous-traiter l'étape de réalisation du cahier des charges pour un confrère développeur. Pour quel prix ? Clairement, cela dépend de la complexité du projet, du nombre de correspondants à gérer, etc. Deux types de facturation sont possibles :
|
|||||
| Links: |
|
||||