Extrapoler les estimations données par une équipe de développement

mois-homme,estimations,effort,budget,programmeurs,développeurs

2008-12-17 – 08:00

2008-12-17 – 20:00

2010-05-18 – 19:23

Ce à quoi cet article se propose de répondre est une question à laquelle les chefs de projet sont souvent confrontés: une feuille d'estimations à été remise par des programmeurs et il faut maintenant transformer ces estimations en budget.

Tous les chefs de projet vous le diront, les programmeurs sont dans l'incapacité de déterminer le budget qui couvre le travail qu'ils vont devoir fournir.

La capacité intellectuelle — grands dieux, non — n'a absolument rien à voir avec le constat d'incapacité préalablement énoncé. C'est tout simplement qu'ils ne peuvent avoir une vue globale du travail à réaliser et qu'ils prennent pour mesure de leur productivité des conditions artisanales dans lesquelles ils ne se retrouvent que très rarement.

Ainsi, il est bon de savoir que les programmeurs, lorsqu'ils remettent des estimations, en sont réduits à émettre des hypothèses qui peuvent très bien ne pas se vérifier. Ils émettent toujours l'idée que les analyses, tant fonctionnelle que technique qui sont faites en amont, font commerce de détail, qu'elles sont suffisamment fouillées, qu'elles font l'inventaire de TOUT ce qui est à faire.

Et cela, nous savons que ce n'est pas le cas. D'ailleurs, premier élément sur lequel il va falloir plancher, c'est justement de calculer le travail d'analyse … et ce travail d'analyse, nous le découpons toujours en 3: l'analyse d'impact, l'analyse fonctionnelle et, enfin, l'analyse technique (et cela quel que soit le nom qu'on leur donne!

Puis, ils ne vous parleront pas non plus, ou très rarement, de l'effort de test, effort qui pourrait très bien être découpé en plusieurs phases également, comme le propose le modèle en V. S'ils vous parlent de tests, soyez assuré que ce qu'ils entendent par tests ce sont les tests unitaires, activité qui s'apparente au développement. Voilà donc un deuxième élément dont il va falloir tenir compte, car par expérience, les programmeurs ne vous parleront pas des activités en aval de leur travail.

Au rang des activités en aval du travail des programmeurs, et donc non incluses dans les estimations que vous fournissent les programmeurs, on compte également les activités de déploiement … car l'objectif est quand même d'installer les programmes réalisés, de les mettre en production. Nous y reviendrons plus loin.

Ce que leurs estimations ne couvrent pas non plus, ce sont toutes les activités de supervision, de contrôle. En d'autres termes, il va falloir tenir compte d'activités de Gestionde projet. Nous vous invitons donc à prendre connaissance de l'article que nous aavons consacré au sujet: Calculer correctement l'effort de Gestion de projet.

Enfin, leurs estimations ne renseignent généralement pas le nombre de personnes auxquelles ils envisagent d'assigner le travail à faire. A priori, nous sommes un peu déconnectés de la problématique des estimations avec ce sujet embêtant: les ressources. Mais pas tant que cela car le nombre de personnes qu'ils envisagent sur les tâches peut avoir une influence non négligeable sur le budget. Cela mériterait quelques éclaircissements qui pourront faire l'objet d'un nouvel article. En essence, sachez que toute équipe de 5 à 6 personnes implique l'addition d'un chef d'équipe … et c'est là bien évidemment qu'une influence sur le budget peut être détectée.

Ce qu'il faut ajouter aux estimations

Comme l'invite de cet article le suggère, son prodrome, il y a donc, aux estimations fournies par le développeur, quelques activités supplementaires que le chef de projet avisé budgètera.

  1. L'analyse (fonctionnelle et technique) (l'analyse d'impact n'appartient pas à la phase d'exécution d'un projet)
  2. Les tests
  3. L'activité de supervision
  4. Les déploiements

… et cela fera déjà une énorme différence, comme vous allez le voir. En fait, nous partons de la formule globale que nous présentons au paragraphe suivant.

Formules

Comme il s'agit donc de pouvoir budgéter le travail global, nous vous proposons une formule globale également que voici:


    ET = ANA + DVL + TST + DEPL + PM + CTGY

… où

ET
Effort Total
ANA
Effort Analyse (fonctionnelle et technique)
DVL
Effort Développement (compréhension et étude des analyses, programmation et tests unitaires)
DEPL
Effort de déploiement (installation)
PM
Project Management (supervision)
CTGY
Contingence (% prévu pour couvrir … l'imprévu)

… et comme nous vous le disions, seul le terme DVL de l'équation correspond aux estimations que vous ont fournies les développeurs. Autant le savoir!

Formule de l'effort

Dans la formule de l'effort global, ET, différents membres de l'équation peuvent être évalués en fonction de membres premiers. Cela parait évident si par exemple on en revient aux termes PM et CTGY.

Le terme PM doit être évalué en fonction de la taille de l'équipe et de la durée de la mission. Voyez à ce propos notre article Calculer correctement l'effort de Gestion de projet.

Le terme CTGY, peut se voir attribuer une valeur relative, un pourcentage par exemple en fonction des certitudes/incertitudes avec lesquelles vous devez composer.

Quant au terme TST, une valeur de subsitution de 33% de ANA + DVL est acceptable.

Posons donc que ANA + DVL est l'effort:


    E = ANA + DVL

… on en déduit que ET équivaut à:


    ET = ( 1,33 x E ) + DEPL + PM + CTGY

L'effort d'analyse

L'effort d'analyse est calculé chez Lato Sensu Management, quand il n'a évidemment pas été estimé spécifiquement, comme représentant une fois et demie l'effort de développement (programmation + tests unitaires). Ainsi, ANA = 1,5 x DVL! On en déduit dès lors – si une estimation spécifique pour l'effort d'analyse n'a pas été fourni, et à cette condition expresse – que la formule de calcul de l'effort devient:


    E = 2,5 x DVL

… et donc la formule du calcul de l'effort total devient:


    ET = ( 1,33 x ( 2,5 x DVL ) ) + DEPL + PM + CTGY

Si, à ce stade nous voudrions tenter une petite comparaison avec les estimations initiales d'une équipe de développement, où cela nous mènerait-il? Livrons-nous au calcul avec une estimation de départ de 100 jours (provenance: équipe de programmation):


    ET = ( 1,33 x ( 2,5 x 100 jours ) ) + DEPL + PM + CTGY = 332,5 jours + DEPL + PM + CTGY

Et vous voyez que nous sommes déjà très loin de l'estimation d'origine, ce qui nous fait étrangement penser à ce chef de projet expérimenté qui nous disait toujours multiplier les estimations par π (pi)! Il n'était pas loin le bougre, car enfin, 1,33 x 2,5 = 3.325.

L'effort de Project Management

L'effort de supervision de projet a été détaillé dans un article antérieur. L'idée sous-jacente développée vise à équilibrer la durée du projet et la taille de l'équipe qui doit réaliser le travail.

Dans le secteur informatique, et plus particulièrement dans la gestion de projets "logiciels", le span de contrôle est de 5 ou 6. Cela veut donc dire qu'un chef de projet est capable de superviser 5 à 6 personnes de manière directe.

Voyons cela à l'aide d'un exemple! Nous avons donc un effort de 332,5 jours à superviser. Equilibrer durée de la mission et taille de l'équipe, sur une base de 20 jours de travail par mois, revient à effectuer le calcul suivant:


    Durée = Taille = SQRT( 332,5 / 20 ) = 4

… où

SQRT
Racine carrée

On se retrouve donc avec une équipe de 4 personnes travaillant pendant 4 mois. Comme le chef de projet devrait, en théorie, être capable de superviser en span direct de 5 à 6 personnes — disons 6 — cela veut donc dire qu'on a besoin d'un chef de projet à 67% de son temps (4 / 6 = 66.67%) et cela sur la durée du projet, c'est–à–dire 4 mois de 20 jours. Nous y voilà! Cela donne les chiffres suivants:


    PM = SQRT( E / T ) * ( SQRT( E / T ) / 6 ) * T

… où

T
Nombre de jours ouvrés par mois

c'est–à–dire


    PM = SQRT( 332,5 / 20 ) x  ( SQRT( 332,5 / 20 ) / 6 ) x 20 = 55,42 jours

Vous pouvez aussi préférer une approche de calcul relatif de l'effort de supervision de projet. En la matière, il n'est pas rare qu'on réserve 15% de l'effort calculé. Dans notre cas, cela donnerait:


    PM = 332,5 jours x 15% = 49,875 jours.

L'effort de contingence

Voilà l'intrusion de la partie forfaitaire. Vous devrez lui substituer toute valeur qui vous semblera appropriée à couvrir les incertitudes de votre projet. Pour l'exercice, et parce que c'est une valeur habituelle, nous vous proposons de partir sur une contingence de 20%.


    CTGY = ( ( 1,33 x ( 2,5 x 100 jours ) ) + DEPL + PM ) x 20% = 465.5 jours

L'effort de déploiement

Nous ne pouvons pas vous proposer la moindre alternative ici. Il faudra vraiment obtenir des estimations de déploiement pour vous permettre de proposer une estimation globale, ou, à défaut, de parler d'estimations hors effort de déploiement.

Et au final, cela donne?

Et bien, nous allons vous laisser le soin de calculer cela pour votre projet! Remplissez les zones et voyez le résultat. Étonnant, n'est-ce pas?










Bien sûr…

Bien sûr, ne prenez pas appui sur ce calcul pour vous éviter d'évaluer le plus précisément possible l'effort global requis par un projet. Nous vous encourageons à être critique ! Cet article vous propose une évaluation grossière qui vaut de base de comparaison, c'est tout !

Commentaires des visiteurs

1. De le 16/04/2009 à 12:56Amélioration possible

Vous pourriez aussi calculer l'équipe et la durée idéales comme décrit dans votre article "La durée idéale; l'équipe idéale" (http://www.latosensu.be/articles/core/ideal-team-duration/index.php), et calculer la date de fin du projet.

Ce serait une amélioration sensible de votre formule.

2. De le 16/04/2009 à 13:44Et pourquoi pas...

Et pourquoi pas fournir aussi un prix moyen/jour et donc calculer le prix du projet, à la grosse louche ... nous sommes d'accord.

3. De le 16/04/2009 à 23:36Implémentation de votre proposition

Voilà ... nous pensons avoir modifié notre page selon vos souhaits.

Faites-nous part de vos commentaires.

Bien à vous

4. De le 17/04/2009 à 11:08Erreur sur le calcul des dates

La validité des dates laisse à désirer. Il est possible d'entrer des dates farfelues comme 56/01/5014.

5. De le 07/05/2009 à 11:17

Outil intéressant. Serait-il possible de pouvoir donner des pourcentages nous-mêmes pour le calcul de l'effort d'analyse et de tests? Merci encore. Nadine Houtman

6. De le 11/08/2009 à 10:11Pourcentages

Merci pour cette proposition de pourcentages. Nous allons effectivement implémenter cette solution dans une prochaine version, probablement avant la fin du mois d'août 2009. Bien à vous.

7. De le 11/08/2009 à 10:15Validité des dates

Merci de cette remarque. Notre script a été amélioré pour disposer de dates vraisemblables.

Stuur uw eigen commentaar


(niet gepubliceerd)





Machine de turing




(*) verplicht veld.

Vermijd meerdere malen de knop “ Poster ” in te drukken. Het kan enkele seconden duren vooral u verwittigd wordt dat uw commentaar door de server in anmerking genomen werd.

Notes à propos des commentaires

We vragen u behoedzaam te zijn en de regels van wellevendheid te respecteren. Commentaren die niet gepast of kwetsend zijn kunnen gewijzigd of zelfs verwijderd worden.

De e-mail adressen die jullie achterlaten worden NOOIT getoond omwille van vertrouwelijkheid: zij dienen enkel om u te kunnen contacteren om een of ander punt te verduidelijken indien nodig.

Noteer dat alle HTML sleutelwoorden uit uw commentaren worden weggehaald. Niettemin kan u volgende labels gebruiken om uw tekst te formatteren:

  • [p] en [/p] : paragraph
  • [b] en [/b] : bold
  • [i] en [/i] : italic
  • [q] en [/q] : quote
  • [http] en [/http] : anchor
  • [pre] en [/pre] : preformatted tekst
  • [code] en [/code] : broncode

Dank u

< September 2010 >
Ma Di Wo Do Vr Za Zo
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30