30 votes

Comment donnez-vous une estimation de temps valide pour quelque chose que vous n'avez jamais fait?

Comme un nouveau développeur qui est le seul mec sur le personnel que j'ai rencontré quelques difficultés, mais peut-être le plus difficile a été les estimations de temps. Je strugle chaque fois que je dois donner à un projet d'estimation.

Ma question est; Si je n'ai aucune expérience et je n'ai pas de collègues dev dans mon environnement, comment dois-je fournir une bonne estimation? J'ai lu Joel Spolsky de l'article sur la Planification Fondée sur des données Probantes , mais comment cela peut s'appliquer si je n'ai pas de preuves?

J'apprécie tous les conseils sur ce sujet.

30voto

Jon Skeet Points 692016

Vous n'avez pas à fournir une bonne estimation. Vous donnez une bonne réponse que vous le pouvez, et de leur expliquer que c' est juste une estimation très approximative, et pourquoi il est si rude.

Si vous faites, il est très clair que:

  • Vous ne pouvez pas donner une estimation précise
  • Il est tout à fait raisonnable que vous ne pouvez pas donner une estimation précise parce que c'est un travail différent de ce que vous avez fait avant
  • Vous allez mettre à jour l'estimation que le temps passe et que vous connaissez le sujet mieux

Je pense que vous devriez être bien. Vous avez besoin de faire ces choses très claire, bien que, dans l'écriture, de sorte que vous n'avez pas tenu vos estimations approximatives plus tard.

6voto

DanSingerman Points 17301

Vous êtes autorisé à dire "je ne sais pas, je n'ai pas assez de preuves"

Faites ensuite du prototypage pour obtenir des preuves.

Alors réponds à la question.

Donc, vous pourrez peut-être en fait donner une estimation du moment où vous pourrez donner cette estimation.

5voto

John Dibling Points 56814

OMI Joel est moyen, façon dont, dans son article, ainsi que ses conclusions et recommandations ne sont fondées sur aucune réalité. (Désolé, Joël), Fondamentalement, il est dit que vous devez être en mesure de planifier votre travail vers le bas pour les unités de temps, d'heures ou moins avant même de commencer. Mais la réalité est que vous ne savez pas ce que les unités de travail sont tous (non-trivial systèmes) avant de vous lancer dans le code. Donc vous ne pouvez pas venir avec une heure-par-heure ventilation de ce que vous allez faire avant même que vous ouvre le capot et avoir les détails de refléter ce qui se passe réellement avec précision.

Donner un projet de l'estimation est très difficile, si vous voulez que l'estimation de la valeur. Venir avec des estimations précises est difficile pour les programmeurs, car très souvent vous n'avez pas de découvrir toute la complexité de ce projet jusqu'à ce que vous obtenez sous le capot.

Donc la solution pour cela est d'obtenir sous le capot quand on se relève avec des estimations. Pour les petits projets et des corrections de bug c'est assez simple:

  • Reproduire le bug sur votre machine.
  • Trouver le code qui est à l'origine du bug.
  • Comprendre comment écrire le code qui va corriger le bug.
  • Estimer combien de temps il vous faudra pour écrire le code.

Pour trouver le code, vous devez vous écrire, doit nécessairement découvrir la plupart ou toutes les complexités qui aurait jeté hors de votre devis.

La chose intéressante à propos de cette méthode est que le temps qu'il faut pour générer l'estimation est très souvent 90% de la durée totale réellement faire le travail. Vous avez pratiquement de faire le travail dans le but d'arriver à une estimation. Avec des corrections de bugs en particulier, la solution est souvent de l'ordre d'une ligne de code, de sorte que votre estimation sera à la fin de 5 minutes. C'est bien parce que les délais peuvent être fixés autour des estimations comme ça.

Comme vous obtenez pratique avec cela, vous obtiendrez de mieux en mieux ", il suffit de savoir" combien de temps les choses vont prendre. Au début, vous ne serez en mesure "juste pour savoir" combien de temps la plus petite des projets prendra. Mais au fil du temps, vous serez en mesure d'estimer plus grand & de plus grands projets.

3voto

JoshBerke Points 34238

J'ai d'abord la base de mon estimation sur ma supposée de la complexité du problème. Quelle est la taille du problème. Combien de morceaux peut-il toucher au besoin. Cela me donne une ligne de conduite générale. Puis j'ai toujours assurez-je ajouter de 15 à 25% facteur de flottement parce que vous allez manquer quelque chose.

Enfin vous faites, il est très clair que c'est une estimation basée sur votre niveau de compréhension du problème, et comment vous pouvez résoudre.

Aussi, ne pas donner des estimations approximatives en très précis à la fois. 4,5 heures n'est pas une estimation approximative. Une demi-journée est une estimation approximative.

3voto

Stefano Borini Points 36904

Bien qu'il est très difficile, je l'estimation sur des Lignes de Code. Ce paramètre, dont le sens de la productivité est proche de zéro, encore vous donne une idée de la complexité d'un projet.

Mesurer le fait que, en moyenne, un développeur peut écrire sur environ 200, max 300 lignes de code par jour. Tenir compte du fait que juste pour le codage d'un seul homme de l'armée:

  • Un petit projet de 1000 lignes de (logique) du code peut se faire en une ou deux semaines
  • Une moyenne de la complexité du projet de 10.000 lignes de (logique) code pourrait être terminé dans les deux ou trois mois.
  • Un grand projet de 100.000 lignes de (logique) du code exige au moins une couple d'années

La logique du code, vous devez ajouter le test, qui est déjà inclus dans les estimations précédentes. Pour avoir une idée de la complexité, de l'Gimp est de 600.000 lignes de code, un noyau varie dans le million ou plus.

Pour cela, ajoutez le fait que si vous travaillez en cascade, le temps dont vous avez besoin pour développer le code est en fait une petite partie du temps nécessaire pour élaborer des spécifications et de la conception. Je dirais 2/3 fois pour le specs+design, et le 1/3 restant, va dans le codage, peut-être même plus sur les spécifications et design de la partie. Il est vraiment temps de consommer.

Ainsi, le suivi de votre estimation de la complexité, pour les lignes de code, considérer la main-d'œuvre que vous avez et combien ils peuvent travailler en parallèle, et ajouter la surcharge de specs+design, vous obtiendrez une estimation très approximative.

Je vous suggère de l'homme mythique mois. C'est un livre fantastique sur ce sujet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X