Pourquoi ne faites-vous jamais autant de choses que vous l'aviez prévu? [fermé]

26

Je commence toujours la journée en pensant "je vais facilement faire ça d'ici la fin de la journée" et je fixe ce qui ressemble à un objectif réaliste.

Alors pourquoi je ne l'ai jamais frappé? La tâche finit toujours par prendre 3 fois plus de temps en raison de bugs imprévus, de changements de dernière minute, etc.

Est ce juste moi? Je ne semble pas mieux prédire ce qui peut être fait en une journée.

billy.bob
la source
8
Ce n'est pas seulement toi. Voir la loi de Hofstadter .
Peter Boughton
18
Parce que vous perdez votre temps à poser des questions sur P.SE, au lieu de faire votre travail :) :)
Jas
2
La prochaine fois que vous estimez une tâche, multipliez le résultat par 3, et vous êtes en sécurité;)
3
Je ne compte rien faire et je gagne toujours. Je dimensionne tous mes bugs à l'infini, donc ma vitesse n'est toujours pas définie.
Job
1
Mon ancien patron disait que mes citations de temps étaient en années chat . Je pense qu'il vient de déplacer chaque citation d'un ordre de grandeur. Heures -> Jours; Jours -> Semaines; Semaines -> Mois; Mois -> Client de remboursement.
Orbling

Réponses:

17

Parce qu'on ne vous a jamais appris à planifier.

La planification est une compétence , tout comme le codage ou l'écriture. Mais d'une certaine manière, il est exclu de presque tous les programmes.

Elle doit être apprise et mise en pratique, et vos estimations de vos propres capacités doivent être continuellement mises à jour. C'est pourquoi les pratiques de travail comme Agile mettent l'accent sur la mesure de votre travail réel passé et sur sa comparaison avec vos estimations, afin que vous puissiez améliorer vos capacités de planification.

Comme d'autres l'ont dit, vous devez tenir compte non seulement de la tâche, mais de tous ses prédécesseurs, des tâches associées (par exemple, apprendre à faire X), et vous devez être conscient de vos propres biais mentaux internes qui vous empêcheront de en tenant compte de la façon dont vous travaillez réellement.

Entraînez-vous dessus et qui sait, vous pourriez vous améliorer.

Alex Feinman
la source
8
En plus de ne pas planifier pour tous les petits mangeurs de temps dans une journée rendant la planification difficile, la planification est également une compétence qui n'est pas amusante à apprendre. Lorsque vous faites une erreur de codage, vous obtenez un bogue et vous le corrigez et vous apprenez une leçon. Lorsque vous obtenez une erreur de planification, VOUS AVEZ ÉCHOUÉ !!! En respectant les délais, vous vous sentez mal et vous vous sentez un échec, tant de gens ne planifient tout simplement pas. Pour contrer cela, j'ai commencé à tenir des listes de tâches très détaillées et détaillées, mais je me donne toujours des heures stupides de temps supplémentaire. Ensuite, je me sens vraiment accompli car je suis toujours en deçà du budget!
CodexArcanum
@Codex, bon point. Il existe des moyens de transformer les «échecs de planification» en quelque chose contre lequel vous pouvez «coder un correctif». Chaque échec de planification est une occasion d'apprendre. Examinez une technique comme l'analyse des causes profondes pour aider à comprendre le contexte de l'échec, afin que vous puissiez mieux planifier la prochaine fois et introduire des contre-mesures spécifiques qui permettront d'éviter l'échec à l'avenir.
Alex Feinman
1
Non seulement ce n'est pas amusant d'apprendre, mais c'est souvent une perte de temps. Je l'appelle "metawork" - passer du temps à analyser ou à organiser votre travail. Quand il y a des tonnes de choses à faire, le méta-travail peut donner l'impression que vous vous construisez une grotte isolée sous l'avalanche au lieu d'essayer de vous creuser, mais ce que vous faites, c'est vraiment affûter vos outils pour préparer le travail à venir.
nlawalker
Au moment d'écrire ces lignes, 11 personnes ont voté pour cette réponse. Ce qui signifie qu'il y a 11 personnes qui sont dans l'illusion qu'il existe réellement une telle chose qu'un plan qui estimera correctement le temps requis.
Robert Harvey
@nlawalker: Pas amusant d'apprendre? Si je n'ai pas appris quelque chose de nouveau en un jour, l'enfer à chaque heure du jour de veille, je considère le jour comme un échec.
Orbling
26

Difficile de croire que personne n'a encore mentionné la loi de Hofstadter .

Je pense que la vraie réponse est que votre planification suppose toujours le meilleur des cas, comme si tout fonctionnait immédiatement sans interruption. Dans la vraie vie, vous commencez à coder, puis le téléphone sonne, vous êtes distrait pendant 5 minutes, passez encore 15 minutes sur stackoverflow ou sur les programmeurs. certains googler, passer 2 heures pour tester les solutions possibles, etc.

En d'autres termes: "le meilleur des cas" ne se produit que dans vos rêves.

user281377
la source
1
Voir le commentaire de @Peter Broughton (5 heures avant votre réponse!).
ChrisF
Ouais, tu as raison, ChrisF. Doit avoir manqué celui-là.
user281377
+1. C'est essentiellement pourquoi je me fie à la règle "faire une estimation raisonnable, puis la doubler". Et même alors, cela prend souvent plus de temps. Un de mes professeurs à uni avait l'habitude de dire "triple it". Donc je suppose que je vais bien. :)
Bobby Tables
10

Chaque programmeur, de temps en temps, passe une journée parfaite. Vous vous réveillez 5 minutes avant que votre alarme ne se sente bien. Le petit déjeuner est fait et sur le comptoir, avec du café frais, donc vous pouvez prendre quelque chose et sortir par la porte. Pendant votre trajet, vous atteignez chaque feu vert et le trafic semble être particulièrement léger. En contemplant la journée qui vous attend, vous êtes en mesure de comprendre pleinement la conception et les conséquences de la tâche qui vous attend, qui a été bien planifiée avec des exigences fermes.

Vous vous mettez au travail et vous constatez que vous n'avez pas d'e-mails importants, pas de messagerie vocale en attente et que vos collègues sont soit absents, soit à des réunions auxquelles vous n'avez pas à assister. Vous lancez votre éditeur et vous êtes immédiatement dans la zone, vous pouvez sentir la structure du code et voir vos structures de données et algorithmes se mettre en place dans un ensemble magnifique et cohérent. Les pensées circulent entre vos mains vers le clavier, saisissant un code parfaitement formé qui est élégant, maintenable et sans aucun bug à trouver.

Pendant la journée, vous travaillez sans interruption, le bureau est calme et vous êtes tellement concentré que vous n'êtes jamais tenté de passer du temps à vous tenir au courant des actualités, des blogs, etc. Lorsque vous compilez et exécutez vos tests, vous constatez que tout fonctionne sans accroc, bien sûr, vous saviez que ce serait le cas, et à la fin de la journée, vous vous engagez sans conflits. En regardant l'horloge en sortant, vous réalisez que vous avez mis 12 heures et que cela ressemblait à une brève session de codage de 20 minutes.

Ce jour-là, ce jour parfait, c'est ce que nous supposons avoir à chaque fois que nous devons estimer quelque chose.

Cercerilla
la source
7

N'oubliez pas les réunions, les gens qui vous interrompent, etc. Les bugs imprévus sont difficiles à prévoir, mais avec le temps, vous devriez être en mesure de vous faire une idée du nombre de bugs que vous découvrez dans un certain délai. Pour estimer combien de temps quelque chose prendra, vous devez tenir compte du contexte. C'est-à-dire "en supposant que je ne sois pas interrompu ou que je ne découvre pas de bogues, je devrais être capable de faire quelque chose en X temps"

Comme petit exercice pour vous-même, envisagez de faire ce qui suit:

  • Au début de la journée, notez quel est votre objectif et son estimation de temps.
  • À chaque interruption (réunion, discussion avec un collègue, etc.), notez la durée approximative
  • Chaque fois que vous trouvez un nouveau bogue, notez-le comme une tâche non planifiée avec le temps approximatif nécessaire pour le développer.

Vous constaterez que certains modèles commencent à émerger et pouvez planifier en conséquence. Chaque fois que vous indiquez à votre responsable une estimation de la date d'achèvement, mettez-le simplement en garde avec l'hypothèse du premier paragraphe. Vous pourriez être surpris de la précision de votre estimation lorsque vous supprimez le temps consacré aux interruptions et aux bogues.

Lorsque vous travaillez sur une liste de bogues ou une liste de fonctionnalités, vous effectuez probablement déjà le premier et le troisième point. Ce petit exercice vous dira où va tout votre temps et vous pourriez être surpris de la réponse.

Berin Loritsch
la source
+1 Si je notais chaque interruption que je recevais, en plus d'avoir à commander plus souvent de la papeterie, je perdrais une partie importante de la journée à la notation.
Orbling
3

Vous voudrez peut-être élargir votre calendrier de prévisibilité. Pouvez-vous déterminer ce que vous pouvez faire en une semaine? Si chaque tâche prend trois fois plus de temps que prévu, il semble que vous soyez suffisamment cohérent pour être prévisible. Vous avez juste besoin de régler par 3x;)

JeffO
la source
+1 Toujours incorrect est toujours cohérent! Résultat.
Orbling
2

parce que vous avez simplement ignoré le fait que des bugs imprévus peuvent survenir.

Faites quelques statistiques sur le temps moyen que vous avez passé sur les bugs et tenez compte de ce temps lorsque vous faites votre plan.

YYC
la source
1

Parce que vous ne planifiez pas correctement. Aïe .

Je parie que si vous gardez un total cumulé de vos dépassements (sur papier même), puis ajustez vos estimations de ce%, vous pourrez planifier correctement.

FWIW, le logiciel est notoirement difficile à estimer. McConnell (de la renommée Code Complete) a même un livre à ce sujet.

Paul Nathan
la source
1

Quelque chose que je me retrouve souvent à faire est distrait par des choses aléatoires qui ne sont pas liées à ce que je fais. Une liste de tâches peut vous y aider; lorsque vous pensez à quelque chose, notez-le et faites-le après avoir terminé ce qui est devant vous.

Michael K
la source
1

Parce que je passe trop de temps sur Stack Overflow.

John Dibling
la source
1

Une matrice urgente / importante peut être utile de considérer pour voir où va votre journée. S'agit-il de choses urgentes mais non importantes comme des réunions non préparées et des interruptions? S'agit-il de choses urgentes et importantes que vous ne saviez pas au début de la journée? Juste un exercice pour voir où va votre temps.


J'aurais tendance à penser que la plupart des choses intéressantes sont importantes, sinon pourquoi sont-elles intéressantes? Juste une pensée.

JB King
la source
1
Mon problème avec cette technique a toujours été sa "troisième dimension" invisible: à quel point quelque chose est INTÉRESSANT. Malheureusement, pour moi, l'intérêt l'emporte sur l'urgence et l'importance à chaque fois.
jeudi
0

C'est une bonne question et une que je réfléchis constamment. J'ai tendance à penser que

  • il est très facile de mal évaluer la quantité de travail que X prendra.
  • Je n'ai jamais prévu d'insectes ou de voyages à la bouilloire.
  • Soit vous en faites beaucoup avec peu de code, soit rien ne fait beaucoup et il ne semble pas y avoir d'intervalle.
  • parfois vous perdez votre «zone», parfois les choses doivent être réfléchies.
dan_waterworth
la source