Calculer le coût et le prix de vente d’un projet web
Et oui, voilà un sujet qui ne manquera pas d’intéresser les lecteurs de ce blog qui vivent des développements qu’ils font pour leurs clients. Ceci étant, je souhaite tout de suite prévenir le lecteur que tout ce qui suit ne s’applique qu’à des projets réalisés « from scratch » (c’est à dire sans utilisation de logiciels/scripts déjà existant type CMS et compagnie).
Je ne vais pas vous faire tout un roman sur les méthodes d’estimation du coût d’un projet logiciel, d’autres l’ont déjà fait mieux que je ne pourrais le faire (vous pouvez par exemple lire l’excellent software estimation de Steve McConnell chez Microsoft Press), mais je vous livre ici ma méthode empirico-pataphysique personnelle.
Pour trouver le coût d’un projet web, je propose une démarche avec trois phases préliminaires, puis une phase de calcul du coût, qui débouche enfin sur le calcul du prix de vente.
Phase 1 : Estimer la taille du projet
Il existe une théorie très précise pour estimer la taille d’un projet de développement : le comptage des points de fonctions. Qu’est ce qu’un point de fonction ? Cela peut être une entrée externe du système (boite de dialogue par exemple), une sortie externe (un affichage pour faire simple) et les requêtes que fait ou subit le système (à l’interne comme depuis et vers l’extérieur). Bref, un point de fonction c’est un objet qui nécessite l’œil d’un expert (qui va regarder le code écrit) pour être reconnu. Ce n’est donc pas ce qu’on veut utiliser ici.
A la place, on va estimer la taille d’un projet grâce au nombre de lignes de code (LOC pour Lines Of Code) qu’il contient. Puis on va transformer ce nombre de LOC en nombre de points de fonctions. Il existe de nombreuses tables de correspondance qui donnent le nombre de LOC d’un langage donné qui correspondent à un point de fonction. Quelques exemples figurent dans le tableau suivant :
Ce tableau signifie par exemple qu’un point de fonction vaut au minimum 40 lignes de C#, au maximum 80 lignes et la plupart du temps 55 (le fameux mode). Le lecteur observateur aura remarqué que la couleur pour le Php est différente, c’est parce que les chiffres pour ce langage sont une estimation personnelle, pour le reste c’est un consensus assez général.
Enfin, on notera que ce tableau est utilise dans les deux sens : si je connais le nombre de points de fonctions je pourrais estimer le nombre de LOC et réciproquement.
Phase 2 : Estimer l’effort à produire
Il faut maintenant estimer l’effort nécessaire pour finaliser le projet dont on connaît maintenant la taille. Pour cela j’utilise une méthode dérivée de la méthode ISBSG (International Software Benchmarking Standards Group) qui va me donner le nombre de mois-homme qu’il va falloir pour finaliser le projet. A noter que pour moi un mois homme consiste en 140 heures consacrées au projet, si le chiffre est différent pour vous, il faudra adapter la formule suivante :
taille team correspond au nombre de personnes qui contribue à plein temps au projet. On remarque que l’effort à fournir augmente quand on augmente le nombre de membres du projet, ce qui est naturel car il faut que les gens discutent entre eux pour réaliser le projet, ce qui prend une partie du temps de développement.
Ainsi, si vous avez un projet de site web qui fera environ 100000 lignes de Php, et que vous avez trois personnes sous la main pour le réaliser, il vous faudra consacrer 43 mois-homme pour en venir à bout (on notera que seul il aurait fallu 21 mois-homme) en partant de zéro.
Phase 3 : Le planning
Une fois qu’on sait qu’il faut X mois-homme pour réaliser un projet et qu’on a Y hommes sous le coude, cela ne signifie pas qu’il suffit de X/Y mois pour réaliser le projet. En effet plus il y a de monde sur un projet plus il y aura du temps perdu en tâches non techniques. La formule magique pour déterminer le nombre de mois qu’il faudra pour la réalisation est (elle vient du bouquin de McConnell) :
Si on reprend l’exemple, on voit qu’il faudra environ 10 mois à nos trois développeurs pour finir le projet Php de 100000 lignes. Une autre remarque est que cette formule ne s’applique que lorsque le nombre de mois calculé est plus grand que le nombre de mois-homme nécessaire (ici pour une équipe d’au moins 3 personnes).
Au final : coût et prix de vente HT
A ce stade cela devient facile :
Coût = nombre de mois * nombres de développeurs * coût d’un dev. * environnement
La variable environnement représente un multiplicateur qui correspond aux facteurs de coûts hors salaires des développeurs : locaux, machines, secrétariat, commercial etc… Généralement on l’estime à 7%, ce qui signifie que le multiplicateur d’environnement est 1,07. Toujours sur notre exemple, cela fait un coût de 128400 euros (en admettant un salaire de 2400 euros bruts mensuel pour un développeur).
Pour calculer le prix de vente, il ne reste plus qu’à rajouter votre marge, si c’est 50% vous multipliez par 1,5. Pour notre exemple cela fera 192600 euros HT pour les 100000 lignes de PHP. Qu’est ce que représente 100000 lignes de Php ? Mystère mais WordPress c’est autour de 80000 lignes pour vous donner une idée.