2. Estimation de projets informatiques

L'estimation des projets informatiques est l'une des plus importantes activités du développement de logiciels. La planification rigoureuse et le pilotage du projet ne sont pas envisageables en absence d'une estimation sérieuse et fiable. L'estimation des durées des activités consiste à évaluer le nombre d'unités de temps ouvré qui sera probablement nécessaire pour effectuer chacune des activités identifiées.

Une fois le "projet" défini par les responsables du métier, ces modules devront être réalisés (en passant par des étapes successives, telles que les spécifications fonctionnelles globales, les spécifications fonctionnelles détaillées, le cahier des charges, la conception de la base de données, la réalisation, la recette, etc.). Il est bien entendu que ces étapes prennent du temps, aussi bien du côté de la MOE que celui de la MOA, et même de l'exploitation... et parfois beaucoup plus (ou beaucoup moins) que les métiers et la maîtrise d'ouvrage ne pourraient l'estimer. Pour pourvoir accorder un budget, il est nécessaire d'avoir une vision, même globale, des différents coûts engendrés, et du temps nécessaire à la réalisation. Ainsi, ces méthodes d'estimation des charges aident les responsables métiers à apprécier non seulement la charge, mais aussi la quantité de temps nécessaire à la réalisation, la taille de l'équipe, etc.

Par ailleurs, les techniques de gestion de projet nous apprennent à planifier l'ensemble des travaux nécessaires à la production d'un ouvrage et à la conduite du projet. Pour cela, on suit une démarche rationnelle qui repose sur un enchaînement chronologique des questions (quoi, comment, avec qui et quoi, combien, quand) qu'il faut se poser pour définir complètement et précisément un projet.

L'estimation d'un projet informatique comprend quatre étapes :

  1. Estimer la taille du produit à développer : Celle-ci se mesure généralement en nombre d'instructions (lignes de code) ou en points de fonction, mais il existe d'autres unités de mesure possibles. Une comparaison des avantages et des inconvénients de chacune de ces mesures est abordée dans les références bibliographiques données en fin du produit.

  2. Estimer la charge en mois hommes ou en jours hommes : le « Mois*Homme ou Jour*Homme » est l'unité de mesure de la charge de travail dans le contexte d'un projet. La syntaxe « Mois*Homme ou Jour*Homme » est beaucoup plus près de la réalité, puisqu'en effet, le nombre obtenu résulte bien –théoriquement– de la multiplication d'un nombre de jours par un nombre d'homme.

2.1. Estimation de la taille

Le premier stade d'une opération d'estimation consiste à estimer, le plus précisément possible, la taille du logiciel à développer. Les sources d'information, relatives au périmètre du projet, naissent avec une description formelle des besoins (spécification des besoins des clients, appel d'offres, spécification du système, spécification des exigences du logiciel).

Les deux principaux moyens d'estimation de la taille de l'ouvrage qu'on a trouvé dans la littérature sont :

  1. l'analogie : Si on a déjà fait un projet similaire dont on connaisse la taille, on estimera chaque partie principale du nouveau projet comme un pourcentage de la taille de la partie similaire du précédent projet. On estimera la taille totale d'un nouveau projet en cumulant les estimations des tailles de toutes les parties. Un estimateur chevronné peut produire des estimations convenables, par analogie, s'il connaît les valeurs précises des tailles des parties d'un projet précédent et si le nouveau projet est suffisamment voisin de ce précédent.

  2. La comptabilisation des caractéristiques quantitatives de l'ouvrage : On peut utiliser une approche algorithmique telle que celle des points de fonction pour convertir le total en une mesure de la taille. Les caractéristiques globales incluent le nombre de sous-systèmes, de classes/modules, de méthodes/fonctions. Des caractéristiques plus détaillées incluent le nombre d'écrans, de dialogues, de fichiers, de tables, de rapports édités, de messages etc.

2.2. Estimation de la charge

Après avoir estimé la taille de l'ouvrage à produire, on peut en déduire l'estimation de la charge. Cette conversion de la taille du logiciel en charge totale du projet ne peut s'envisager qu'après définition d'un cycle de vie de développement du logiciel et définition d'un processus de développement de la solution pour spécifier, concevoir, réaliser et tester le logiciel.

La réalisation d'un projet de développement de logiciel implique plus qu'un simple codage du logiciel ; car le codage ne représente souvent qu'une faible partie de la charge. Les autres étapes du projet informatique, tels que « la documentation, réalisation des prototypes, concevoir les livrables, revoir et tester le code », représentent la part prépondérante de la charge totale du projet. L'estimation de la charge du projet exige d'identifier, d'évaluer, et d'additionner les travaux qu'on doit accomplir pour construire un ouvrage de la taille estimée.

2.3. Estimation des délais

La troisième étape de l'estimation consiste à déterminer les délais à partir de la charge estimée. Ce qui implique généralement d'estimer les ressources affectées au projet (la Structure de Contribution) ce qu'elles devront faire (le WBS – Work Breakdown Structure – Organigramme des Tâches) quand elles commenceront à travailler au projet et quand elles le termineront. Lorsqu'on aura ces informations, on doit planifier les tâches. À nouveau, les historiques des projets passés, réalisés par l'entreprise (Organisme) ou, à défaut, des modèles classiques, peuvent être utilisés pour déterminer le nombre de personnes dont on aura besoin pour un projet d'une taille donnée et pour ordonnancer ces travaux.

Par ailleurs, si on n'a rien d'autre, la formule empirique inventée par McConnell en 1996 donnera une idée du temps total requis.

Délai en mois=2.5* (charge en mois)^(1/3)

Des opinions diverses proposent au lieu de 2.5 des coefficients variant de 2,0 à 4,0. Ce n'est qu'en procédant à des essais qu'on trouvera le bon coefficient applicable à nos propres travaux.

2.4. Estimation du coût

Il faut prendre en compte de nombreux facteurs pour estimer le coût total d'un projet. Ces facteurs incluent les charges des travaux, les acquisitions ou les locations de matériels et de logiciels, les frais de déplacements (réunions et essais) les télécommunications (appels à longue distance, vidéoconférences, lignes dédiées aux tests, etc.) les formations, les frais de locaux etc.

L'estimation exacte du coût total du projet dépend de la façon dont l'entreprise affecte les coûts. Au lieu d'être affectés aux projets, certains coûts peuvent être pris en compte en les intégrant dans les taux horaires (en dinars par heure). Souvent, un directeur de projet estimera seulement le coût du travail et n'identifiera que les coûts additionnels qui ne sont pas considérés, par l'entreprise, comme des frais généraux.

Un calcul plus précis de coût de la charge résulte de l'utilisation d'un taux pour chaque catégorie de personnel (technicien, qualiticien, encadrement, documentation, support, etc.).