web-dev-qa-db-fra.com

Quelle est la mesure du possible pour estimer le temps des projets de programmation?

Il semble que c'est presque impossible de se rapprocher, car vous pourriez rencontrer un nombre quelconque de problèmes et que les choses ne prévoyaient pas d'abord. À quelle distance nous attendrons-nous raisonnablement estimer? Notre PM veut pouvoir avoir des choses comme des cartes GANT et de telles semaines de mappage à la fois et de tels ... Nous disons donc que nous pouvons obtenir ces bugs, et c'est combien de temps chacun Prendra, et le but sera vendredi, mais les choses sont jetées et poussées dans la semaine prochaine, comme à chaque fois! Comment sommes-nous supposons deviner le bon moment?

41
MetaGuru

Notre hôte Joel recommande planification basée sur des preuves , qui inclut des méthodes pour tenir compte des estimations, des interruptions et des distractions inexactes, ainsi que tous les autres suspects habituels.

Les principaux articles de Bang:

  • La personne faisait Un travail donné a déclaré final sur son estimation. Aucun gestionnaire, les chefs de direction ou les comités ne sont autorisés à dépasser les estimations, ne ré-attribuer que des travaux à quelqu'un d'autre.
  • Plus vous cassez des tâches, plus l'estimation finale sera fiable. L'effet est double: les erreurs d'abord et sous-estimation auront tendance à s'annuler de plus en plus, et deuxièmement, pour effectuer la panne, vous finissez par réfléchir au travail plus en détail, en améliorant la précision globale.
45
Jeffrey Hantin

J'aime beaucoup le livre estimation logicielle: démystifier l'art noir par Steve McConnell. Un couple de points vraiment importants qu'il se concentre sur:

  1. Vous cherchez une estimation ou une cible? Une estimation signifie "Combien de temps faut-il pour mettre en œuvre ces fonctionnalités?" Une cible signifie "Combien de fonctionnalités puis-je mettre en œuvre à cette date?" Ce sont deux choses différentes et il est important de s'assurer que tout le monde impliquait sache quelle chose parle tout de temps, et de ne pas confondre les deux.

  2. Méfiez-vous de donner une estimation avec trop de précision, surtout plus tôt. Ne donnez pas d'estimations à point unique; Si votre meilleure hypothèse au début d'un projet est de 4 semaines, estimez quelque chose comme "2 à 8 semaines". Il est impossible d'être plus précis jusqu'à ce que vous travailliez à travers les phases du projet (développement des exigences, conception, etc.) qui éliminent une partie de l'incertitude.

17
Jesse Smith

Je recommanderais de diviser autant que possible la tâche avant d'effectuer une évaluation, cet exercice ne vous obligera que de bien comprendre ce que vous devez faire et comment vous prévoyez de le faire. Une fois que cela est fait, vous augmentez vos chances de comparer la sous-tâche à quelque chose que vous avez déjà fait et que vous avez quelque chose de plus proche de la réalité. Si la spécification de ce que vous avez à faire n'est pas clair, vous découvrirez également à ce moment-là, ce qui est une bonne chose.

Les tâches de plus de 40h peuvent difficilement être évaluées avec précision si votre chef de projet est bon, il saura que! C'est bien d'avoir tort, l'expérience est la seule chose réelle qui fera une réelle différence dans vos évaluations (et à la fin, vous aidera seulement à vous rapprocher d'une réponse correcte, pas parfaite).

J'ai également eu une très belle expérience avec la planification du poker, plus mon équipe l'utilise, meilleures de leurs évaluations (plus c'est amusant!)

7
MissT

Travailler comme pigiste c'est un problème constant pour moi. Si je l'ai mal tort, je perds de l'argent.

Le problème avec l'estimation de la programmation est précisément que plusieurs personnes ont identifié ici - ce sont les inconnues et les gothas qui peuvent souffler et estimer dans des terres sans danger.

Donc de plus en plus ce que j'utilise est une approche en deux fois

R. Si le problème est dans un domaine connu sur le logiciel, je suis totalement familière avec je fais une panne mentale simple et donnez une citation. Souvent, avec les clients, ils demanderont à un ballon de ballon lors de la discussion sur le projet et avec ceux-ci, je suis généralement heureux de convenir - je suis sur le côté de la prudence, mais cela ne fait que construire des projets précédents.

B. Si le problème est un domaine inconnu. Dans ces cas, je vais essayer d'identifier quels sont les problèmes de crux à l'avance et je vais coder un cas d'essai autour d'eux à la "portée" du problème. Parfois, on peut persuader le client de payer pour cela comme une étude "faisabilité", mais même si vous ne pouvez pas mettre à l'époque impayé et sloger le problème est moins cher que de cibler le client X, puis de la recherche de la durée de résolution de NX.

Identifier quels problèmes tombent dans A ou B, et identifier quels sont les éléments du creux de B, est à l'épreuve de l'expérience, mais je pense que la règle générale est universellement applicable: isolez toujours les problèmes de crux à l'avant et traitez ces premiers. Une fois qu'ils savent, des techniques plus conventionnelles peuvent être utilisées avec une certaine confiance.

4
Cruachan

Il faudra 6 à 8 semaines.

Passez quelques jours de planification et rompez le projet jusqu'à 2 ou 3 jours d'unités, puis facteur dans le temps passé à faire des activités de non-développement. Mais quelque chose de plus de quelques semaines, cela sera une estimation basée sur d'autres projets de difficulté similaire.

1
Pete Kirkham

Lorsque des choses inattendues montent, nous réagissons en changeant l'architecture, la conception ou le code, etc. L'estimation elle-même devrait évoluer avec ces choses. Il ne devrait pas être une valeur déterminée au début d'un projet et jamais mises à jour lorsque tout sinon peut être mise à jour et évoluer pendant le projet.

1
Brian Ensink

Une chose est que l'estimation n'est possible que si vous travaillez avec quelque chose de familier, en utilisant des technologies familières. Si vous travaillez sur quelque chose de véritablement nouveau, les estimations temporelles ne tiennent certainement pas. Néanmoins, faire un plan (briser le projet en morceaux et les commander en quelque sorte) est assez bénéfique en soi, même si les estimations du temps sont vraiment des devinements. Votre PM connaît probablement cela; la principale chose est de faire ne sorte de plan, pas que les estimations sont correctes.

1
Joonas Pulakka

Pour moi, ce n'est que quelque chose qui vient avec l'expérience. Quand j'étais un garçon Wee comme programmeur, il semblait que je sous-estimait toujours la longueur d'un projet. Comme vous l'avez dit, les choses se produiraient et le projet prendrait plus de temps. Maintenant que j'ai un "temps de vol", je suis beaucoup mieux pour anticiper ce que sont ces "choses". Des choses inattendues se produiront encore, mais en général, les délais sont beaucoup plus précis de nos jours.

0
Al W

Je recommanderais vivement "Agile Estimation et rabotage" de Mike Cohn. Il décrit une estimation relative basée sur des points qui sont plus faciles à faire par la nature humaine. Ce livre décrit également la planification du poker qui est vraiment amusante.

0
Miquel