Je suis nul aux estimations. Quand quelqu'un me demande combien de temps cela va prendre, je n'ose même pas deviner, je serai complètement à l'écart. Habituellement, je suis trop optimiste et je devrais probablement multiplier mon estimation par un facteur X important ...
Comment puis-je apprendre à faire de meilleures estimations? Ce n'est pas enseigné à mon université, et même si nous avons des délais pour toutes les travailleuses, je ne pense jamais au temps que prendra quelque chose. Ce que je devrais. Pour tout le monde (surtout le mien).
Réponses:
Je ne suis toujours pas bon en la matière, mais j'ai constaté que le suivi du temps que vous estimez pour les tâches et du temps que vous prenez réellement peut être d'une grande aide. De cette façon, vous pouvez avoir une idée précise de votre distance. Un logiciel de gestion des problèmes avec suivi du temps (Jira dans mon cas) ou une feuille de calcul peut être d'une grande aide pour cela.
Je pense plus que tout, c'est une expérience.
la source
La loi de Murphy de la gestion du temps: Pour savoir combien de temps quelque chose va prendre, savoir combien de temps il devrait prendre et doubler.
Ensuite, passez à l'unité de temps immédiatement supérieure. Ainsi, nous allouons deux semaines à un projet d’une journée.
la source
Vous pouvez apprendre en les faisant collectivement .
J'utilise Planning Poker . C'est une technique basée sur le consensus pour estimer.
Votre estimation doit être suivie et comparée à ce que vous avez réellement fait. Vous obtiendrez la vélocité .
Chaque fois que vous estimez quelque chose, multipliez par votre vitesse récente pour obtenir une estimation précise .
la source
L'estimation du logiciel par Steve McConnell (MS Press) est une bonne lecture.
L’essentiel avec l’estimation logicielle se résume comme suit:
C'est l'une des raisons pour lesquelles je pense que les projets itératifs ont beaucoup plus de succès que les grands projets en cascade. Ils n'essayent pas d'élaborer un plan pour un an à la fois avec très peu d'informations autres qu'une boîte noire vaudou de ce qu'ils pensent qu'il devrait être. À chaque itération, ils réestiment / répliquent et disposent des dernières itérations sur lesquelles baser leurs estimations.
Quelques autres points à garder à l'esprit:
la source
Je suis surpris que personne n'ait mentionné la technique d'estimation de type PERT décrite dans The Clean Coder de Robert Martin . Dans cette méthode, vous estimez combien de temps cela prendra pour 3 scénarios: optimiste (
O
), nominal (N
) et pessimiste (P
). Ensuite, la durée attendue =(O+4N+P)/6
et vous obtenez un écart type de(P-O)/6
.Cela semble fonctionner assez bien, et je l'ai utilisé à quelques reprises lorsque la direction se préoccupe vraiment de la durée probable de quelque chose.
Comme d'autres l'ont commenté, j'ai également fait des estimations en examinant des données historiques ("Combien de temps a-t-il fallu pour faire la même chose?").
Mais ma méthode préférée est de ne pas faire d’estimation du temps, mais seulement d’évaluer des estimations ponctuelles et d’obtenir une vitesse sur les itérations. Si une équipe est assez cohérente pour dimensionner et terminer son travail (histoires d'utilisateurs), vous gagnez un temps fou en ne vous demandant même pas combien de temps chaque chose prendra.
Il est terriblement difficile d’obtenir des estimations de l'heure, et il faut beaucoup de travail pour décomposer les informations en suffisamment de petits morceaux pour pouvoir les mesurer efficacement. Et même dans ce cas, elles sont rarement correctes car il y a trop de variables et nous oublions de prendre en compte des éléments tels que la maladie, les vacances ou même les distractions.
Si je dois faire des estimations d'heures, j'essaie de ne les faire que pour des tâches simples au sein d'une itération. Je mesure tout dans des estimations d'une demi-journée (4, 8, 12 heures) à moins que je sache que ce pourrait être moins. Mais j’estime rarement quoi que ce soit à moins d’une heure.
la source
En premier lieu et le plus important, vous devez définir un processus et le respecter. Incluez la révision du plan à la fin de chaque phase du processus. Vous pouvez également réviser le processus, mais de manière ordonnée.
Deuxièmement, faites une sorte de design. La conception est la première étape de la planification, vous ne construisez pas une maison sans dessins.
Troisièmement, le temps de piste (effort). Vous devriez au moins différencier:
Tests d'acceptation, avec l'utilisateur (inclure la correction des défauts)
Ce serait formidable si vous mesuriez l'effort de réparation des défauts pour chaque type de test, mais cela ajoute à la complexité, de sorte que vous pouvez le faire plus tard.
Quatrièmement, identifier les éléments de base clés pour l’estimation. Par exemple:
Cinquièmement, corréler les éléments de base et les efforts. Par exemple:
Sixièmement, suivez les performances et les écarts par rapport aux estimations pour chaque projet. Vous pouvez ainsi ajuster vos facteurs de corrélation.
Septièmement, répétez et améliorez. Vous obtiendrez de nombreuses informations juste à la fin du premier projet et, au troisième, vous vous sentirez à l'aise de planifier et d'estimer.
Jetez un coup d'œil à http://en.wikipedia.org/wiki/Personal_Software_Process , cela fonctionne vraiment.
la source
Lorsque vous rencontrez un problème d’estimation, essayez de le scinder en plusieurs parties. Ensuite, voyez si vous avez déjà fait des choses semblables aux morceaux. Si vous en avez, vous devriez déjà avoir une idée juste du temps que prend chaque pièce. Si vous ne le faites pas, vous devriez commencer à suivre activement le temps pris pour différents types de tâches. Cela vous aidera dans les estimations futures.
Le temps total nécessaire sera plus que la somme des pièces individuelles, car vous avez besoin d'un peu de temps pour l'intégration et les tests.
Si vous n'avez pas fait quelque chose de similaire, vous pouvez probablement vous fier à l'expérience d'autres personnes et obtenir une estimation de leur part. Ne prenez pas cela à la lettre. Rien ne vous enseigne comme l'expérience.
C'est un peu comme tirer sur une cible. Les plans précédents à l'estimation devraient vous indiquer votre décalage, de sorte que vous puissiez le corriger.
la source
Je trouve qu'il est plus facile de faire le processus de division aux tâches minimales comme mentionné ci-dessus, de travailler sur chacune d'elles, puis de doubler cette estimation. Ensuite, je les ajoute et ajoute cinquante pour cent. Cela me donne une durée approximative du projet dans des conditions idéales. Si le travail va pratiquement se faire en parallèle avec d'autres, il faudra plus de temps. Si vous devez attendre d'autres personnes, attendez-vous à ce qu'elles prennent deux fois plus de temps que prévu. L'attente de contenu, de commentaires ou d'autres informations prend souvent beaucoup plus de temps que cela ne semble possible.
Où je travaille, nous établissons une estimation du meilleur des cas / cas prévu / pire des cas pour chaque étape du processus, ce qui est utile comme guide et également pour évaluer le fonctionnement de vos estimations.
La technique n’est pas très importante, sauf que vous devez être capable de combattre la tentation du programmeur de sous-estimer les tâches, mais ce qui est important, c’est de rester prudent lorsque vous pouvez livrer quelque chose. Si cela vous prend sept semaines pour construire quelque chose et que vous avez promis huit semaines, vous pouvez arriver un peu plus tôt et bien paraître ou bien faire des tests supplémentaires et être assuré de la fiabilité. Si vous avez promis six semaines, vous pouvez avoir l'air mauvais, même si ce n'est absolument pas de votre faute. En cas de doute, devinez prudemment.
la source
Vous pouvez essayer de créer un historique de l'estimation et de la réalité pour différentes tâches afin de constituer un enregistrement suffisant pour savoir quel multiplicateur utiliser pour des éléments spécifiques répétés dans votre liste. Certes, il s’agit d’un exercice d’essais et d’erreurs, mais il a semblé bien fonctionner pour moi. Il y a aussi quelque chose à dire pour de nombreux essais avant que le schéma n'apparaisse probablement. Ceci est probablement similaire à beaucoup d'autres réponses qui diraient que l'on pourrait se résumer à «Fais-le! c'est vraiment ainsi que la plupart d'entre nous avons développé cette compétence. Est-ce pénible de voir à quel point on peut se tromper en faisant des estimations? Oui, mais si les estimations s’améliorent, tout le monde finira par être heureux.
la source
Si vous pouvez décomposer le projet en tâches plus petites et faire des estimations pour celles-ci, vous serez globalement plus précis. Toute tâche de plus de quelques jours devrait être décomposée davantage. Si vous ne pouvez pas le décomposer plus loin que vous avez probablement un écart de besoins. Si vous devez faire une estimation de retour de la serviette pour une exigence d'une ligne, rien ne peut vraiment vous aider. Malheureusement, beaucoup de magasins fonctionnent de cette manière la plupart du temps.
la source
Plutôt que d'écrire un livre à ce sujet, je vais simplement donner un petit conseil sur la façon d'utiliser la méthode d'estimation "décomposée":
Découpez votre affectation en tâches plus petites. Estimez chaque tâche le mieux possible.
Ajoutez une tâche de planification et de conception (qui inclut ce que vous faites maintenant.) Estimez-la.
Si vous n'en avez pas déjà un, ajoutez une tâche pour "rassembler les tâches". Cette tâche peut ne pas sembler utile au début. Cependant, lorsque vous utilisez cette méthode d'estimation "décomposée", il y a toujours du temps à faire pour que "tomber entre les tâches" et "rassembler les tâches". Celui-ci peut être difficile à estimer. Fais de ton mieux.
Ajouter une tâche pour les tests et la documentation. Votre mission ne nécessite peut-être pas beaucoup d’essais et de documentation, mais vous devriez au moins y consacrer un peu de temps.
Additionnez les estimations de tâches pour obtenir une estimation globale.
Allez-y et multipliez cette estimation totale par deux ††. Cela vous donnera le temps de rembourrage pour:
Enfin, n’ayez pas peur de dresser vous-même des estimations probablement totalement fausses. Parfois, le simple fait de tout esquisser, si inexact soit-il, peut vous aider à mieux comprendre ce que cela implique.
†† Au fur et à mesure que vous acquerrez de l'expérience, ce "facteur de fudge" peut être adapté à votre style personnel et à votre environnement de travail.
la source
La formule qui marche quand je travaille pour moi:
décomposer les tâches en une granularité de 1 à 4 heures. Je trouve que je suis généralement précis avec ces
le «facteur des inconnues»: multiplier par un facteur de 2 porté au nombre d'inconnues. C'est à dire si vous voulez développer une application couchdb, mais que vous savez maintenant rien sur javascript et http .. ajoutez 2 ^ 2 comme facteur mult.
facteur de changement de contexte: multiple de 1,5 si vous voulez travailler dans un environnement parfait (chez vous, dans le coin bureau, etc.) ou 2,5 si vous allez travailler dans un environnement imparfait (bureau / lieu encombré, etc.)
Je trouve que cela correspond à +/- 20% du temps réel pris !!
la source
Apprenez votre propre parti pris. Si votre dernière estimation était trop basse d'un facteur deux, la prochaine fois, doublez votre estimation initiale. (Bien sûr, la loi de Hofstadter rend difficile de faire cela correctement ...)
Il est également toujours judicieux de se rappeler le travail nécessaire après la publication initiale du travail précédent et de l'ajouter à l'estimation suivante. Par exemple, votre dernière tâche a pris 2 mois, mais après la mise en production, le support technique, les correctifs logiciels et les modifications supplémentaires vous ont coûté un mois supplémentaire. Dans ce cas, estimez la prochaine fois 3 mois pour une tâche similaire.
la source
Pour les utilisateurs, lisez "Software Engineering Economics" de Barry Boehm et "Controlling Software Projects" de Tom DeMarco. Après avoir lu et assimilé ces deux éléments, lisez "Estimation des coûts logiciels avec COCOMO 2" de Barry Boehm.
Pour ce que j'ai à dire ensuite, cela vous aidera BEAUCOUP d'avoir suivi un cours de probabilités et de statistiques, même un cours de base de livre de recettes.
Aucune estimation n'est parfaite. Il y a une probabilité d'arriver tôt et une chance d'arriver tard. Le modèle COCOMO détaillé et original de Boehm donnait des prévisions qui se situaient à moins de 30% du résultat réel, mieux que 60% du temps. C'était beaucoup mieux que ce qui était commun quand il a écrit et publié le livre.
Lorsque vous prenez votre meilleure estimation (et c'est tout ce que l'estimation est), vous incluez ces probabilités. Si vous intégrez l'estimation, vous augmentez la probabilité que vous arriviez en retard. Si vous augmentez l'estimation, vous augmentez la probabilité que vous arriviez tôt ou que vous finissiez à l'heure. La quantité que vous retirez ou laissez sortir contrôle la façon dont la probabilité change et doit nécessairement dépendre des pénalités pour être en avance ou en retard. (Insérer des histoires d'horreur ici - et il y en a eu beaucoup au cours des années!)
DeMarco y répond dans une certaine mesure. Il fait également remarquer qu'il existe une "région d'impossibilité": certains horaires sont trop serrés pour être établis, quel que soit le type d'héroïsme tenté.
la source