Avant d’aller trop loin, permettez-moi de dire que Estimation du logiciel: démystifier l’art noir est une excellente ressource pour ceux qui s’intéressent ou pensent à des estimations. Les deux images ci-dessous sont extraites de ce livre, de même que le cœur des idées présentées ci-après.
Comme vous l'avez noté, les estimations jouent un rôle important dans la capacité de prévoir et de planifier le travail avec précision. Ne pas avoir d'estimations rend aveugle le business sur le temps qu'il faudra pour quelque chose. Il n’est pas rare que les entreprises aient une idée complètement fausse du temps que cela prendra - ce qu’elles pensent être facile prend entre six et huit semaines et ce que l’on pense être difficile, c’est un bidouillage vendredi après-midi.
La première chose à faire est de donner une estimation. Une estimation en soi n’est pas un chiffre unique, c’est un engagement. "Combien de temps va prendre ABC" -> "Environ 5 jours" signifie que c'est environ 5 jours. Cependant, une bonne estimation est une fourchette dans laquelle vous êtes sûr à 90% de l'avoir dans cette fourchette. Si vous voulez dire "je suis à 90% sûr que cela prendra entre 1 et 5 jours", dites-le. Ne travaillez pas avec "Je pense que cela prendra entre 1 et 10 jours, donc 5 jours est probablement une moyenne" - ce n'est pas une estimation et vous vous tromperez 50% du temps.
Eh bien, 50% ou plus du temps, les programmeurs sont des sous-estimateurs notoires pour la durée des tâches.
Considérons le cône d'incertitude:
Image tirée de http://www.construx.com - article intégral disponible à l' adresse http://www.construx.com/Thought_Leadership/Books/The_Cone_of_Uncertainty/
Sachez que la première estimation dans cette plage est 16x. Cela revient à dire "je pense que cela prendra entre un après-midi et deux semaines" - mais vous ne le savez pas encore. Au fur et à mesure que vous avancez légèrement dans la conception, la plage se réduit à 4x. Cela ne signifie pas que cela prendra une semaine, cela signifie que vous diriez plutôt "après avoir examiné cela un peu, cela prendra entre trois semaines" - oui, l'estimation a augmenté, mais aussi la fourchette de l'estimation est allée vers le bas.
Pour chaque estimation que vous donnez, vous devez être sûr à 90% que l'estimation se situe dans cette plage. Vous pouvez vous tromper - 10% du temps, il tombera en dehors de cette plage.
Il y a plusieurs façons d'estimer la taille des projets. En le comparant à des projets antérieurs, en utilisant un proxy (je pense que cela prendrait 1000 lignes de code qui prendraient autant de temps à écrire), en utilisant des points de fonction (convertir en LOC ...), en obtenant des estimations de plusieurs personnes, puis l'affiner de manière itérative ... certains travaillent pour certains projets, d'autres pour d'autres projets.
Un chapitre très important de ce livre que j'ai mentionné en haut est le numéro 23 qui traite des politiques d'estimation et des relations avec les gestionnaires et les dirigeants.
La clé d'une estimation est le processus itératif qui consiste à l'affiner après y avoir travaillé un peu.
Donner une estimation trop précise trop tôt dans le processus peut être très sujet aux erreurs. Si vous n’êtes pas sûr de cela, donnez une estimation large puis revenez avec une autre estimation après un certain temps pour approfondir le problème et éventuellement décrire comment vous allez le faire, en regardant la quantité de code que vous avez écrit pour. le dernier problème similaire et d'autres facteurs qui auront une incidence sur l'estimation.
Les estimations nécessitent un peu de réflexion - ne donnez pas les estimations du brassard. Celles-ci comportent souvent d' énormes erreurs par rapport à ce que cela prend quand on y pense un peu.
De Comment répondre quand on vous demande un devis?
Que dire lorsqu'on lui demande une estimation
Vous dites "je vais vous revenir."
Vous obtiendrez presque toujours de meilleurs résultats si vous ralentissez le processus et passez un peu de temps à suivre les étapes décrites dans cette section. Les estimations données à la machine à café (comme le café) reviendront vous hanter.
À partir du chapitre 4 de Software Estimation:
Notez que dans ce cas, les estimations après un peu de révision sont systématiquement moins sauvages et sujettes aux erreurs que les estimations spontanées. Ne faites pas d'estimations spontanées. Asseyez-vous et réfléchissez à la tâche à effectuer et faites l’estimation après quelques réflexions.