Perché non hai mai ottenuto quanto hai pianificato? [chiuso]

26

Inizio sempre la giornata pensando "riuscirò facilmente a farlo entro la fine della giornata" e imposterò quello che sembra un obiettivo realistico.

Quindi perché non lo colpisco mai? L'attività finisce sempre con 3 volte di più a causa di bug imprevisti, modifiche dell'ultimo minuto ecc.

Sono solo io? Non sembra che prevedi meglio cosa si può fare in un giorno.

    
posta billy.bob 02.11.2010 - 17:35
fonte

11 risposte

17

Perché non hai mai insegnato come pianificare.

La pianificazione è un'abilità , proprio come la programmazione o la scrittura. Ma in qualche modo è escluso da quasi tutti i programmi.

Ha bisogno di essere appresa e praticata e le tue stime delle tue capacità devono essere continuamente aggiornate. Questo è il motivo per cui pratiche di lavoro come Agile enfatizzano la misurazione del tuo lavoro passato passato e lo confrontano con le tue stime, in modo da poter migliorare le tue capacità di pianificazione.

Come altri hanno già detto, devi rendere conto non solo del compito, ma di tutti i suoi predecessori, dei compiti da svolgere (es. imparare come fare X), e devi essere consapevole dei tuoi pregiudizi mentali interni che ti impedisce di tenere correttamente conto del modo in cui lavori effettivamente.

Allenati e, chissà, potresti migliorare.

    
risposta data 02.11.2010 - 17:53
fonte
26

Difficile credere che nessuno abbia menzionato legge di Hofstadter ancora.

Penso che la vera risposta sia che la tua pianificazione presuppone sempre uno scenario migliore, come se tutto avesse funzionato immediatamente e non si fosse mai verificata alcuna interruzione. Nella vita reale, inizi a programmare, poi il telefone suona, sei distratto per 5 minuti, trascorri altri 15 minuti su stackoverflow o programmers.stackexchange per calmarti e rifocalizzarti, fare un po 'di codice, imbatterti in un comportamento inaspettato di qualche API, fare alcuni googling, spendono 2 ore per testare le possibili soluzioni ecc.

In altre parole: "best-case" accade solo nei tuoi sogni.

    
risposta data 02.11.2010 - 20:14
fonte
10

Ogni programmatore, una volta ogni tanto, ha una giornata perfetta. Ti svegli 5 minuti prima che la sveglia suoni, sentendoti bene. La colazione è fatta e sul bancone, insieme a caffè fresco, così puoi prendere qualcosa e uscire dalla porta. Durante la tua permuta colpisci ogni semaforo verde e il traffico sembra essere particolarmente leggero. Contemplando il giorno prima di te, sei in grado di comprendere appieno il design e le conseguenze del compito che ti aspetta, che è stato ben pianificato con requisiti rigidi.

Ti metti al lavoro e scopri che non hai email importanti, nessun messaggio vocale in attesa e che i tuoi colleghi sono fuori o in riunione a cui non devi partecipare. Spegni il tuo editore e sei immediatamente nella zona, puoi sentire la struttura del codice e vedere le tue strutture dati e gli algoritmi adattarsi in un insieme bello e coeso. I pensieri passano attraverso le mani alla tastiera, inserendo un codice perfettamente formato che è elegante, manutenibile e senza errori.

Durante il giorno lavori senza interruzioni, l'ufficio è tranquillo e sei così concentrato che non sei mai tentato di passare il tempo a leggere notizie, blog, ecc. Quando compili ed esegui i tuoi test, trova che tutto funzioni senza intoppi, ovviamente lo sapevi e alla fine della giornata ti impegni senza conflitti. Guardando l'orologio mentre ti allontani ti rendi conto di averlo messo in 12 ore e sembrava una breve sessione di codifica di 20 minuti.

Quel giorno, quel giorno perfetto, è ciò che assumiamo avremo ogni volta che dobbiamo stimare qualcosa.

    
risposta data 14.12.2010 - 20:05
fonte
7

Non dimenticarti delle riunioni, delle persone che ti interrompono, ecc. Errori imprevedibili sono difficili da prevedere, ma nel tempo dovresti essere in grado di farti un'idea di quanti bug si scopre entro un certo periodo di tempo. Quando valuti quanto tempo ci vorrà, devi considerare il contesto. Cioè "Supponendo che non vengano interrotti o scoperti bug, dovrei essere in grado di fare qualcosa in X di tempo"

Per fare un po 'di esercizio, considera quanto segue:

  • All'inizio della giornata, annota qual è il tuo obiettivo e la stima del tempo per esso.
  • Ad ogni interruzione (riunione, conversazione di un collega, ecc.), annota la durata approssimativa
  • Ogni volta che trovi un nuovo bug, annotalo come un compito non pianificato insieme a quanto tempo impieghi per svilupparlo.

Scoprirai che alcuni modelli iniziano ad emergere e possono pianificare di conseguenza quelli. Ogni volta che comunichi al tuo manager un tempo stimato di completamento, non esagerare con l'assunzione del primo paragrafo. Potresti essere sorpreso di quanto accurata sia stata la tua stima quando rimuovi il tempo speso per interruzioni e bug.

Quando lavori a un elenco di bug o a un elenco di funzionalità, probabilmente stai già facendo il primo e il terzo punto. Quel piccolo esercizio ti dirà dove sta andando tutto il tuo tempo e potresti essere sorpreso dalla risposta.

    
risposta data 02.11.2010 - 17:50
fonte
3

Potresti voler espandere il tuo tempo di prevedibilità. Puoi determinare cosa puoi fare in una settimana? Se ogni attività richiede tre volte di più di quanto pensassi, sembra che tu sia abbastanza coerente per essere prevedibile. Hai solo bisogno di regolare di 3 volte;)

    
risposta data 02.11.2010 - 17:41
fonte
2

perché hai semplicemente ignorato il fatto che potrebbero verificarsi errori imprevisti.

Fai alcune statistiche sul tempo medio che hai speso per i bug e prendi quei tempi in considerazione quando fai il tuo piano.

    
risposta data 02.11.2010 - 17:44
fonte
1

Perché non stai pianificando correttamente. Ouch .

Scommetto che se mantieni una somma totale di quanto fai scivolare (anche su carta), quindi aggiusta le tue stime di quel%, sarai in grado di pianificare correttamente.

FWIW, il software è notoriamente difficile da stimare. McConnell (della fama di Code Complete) ha un libro anche su di esso.

    
risposta data 02.11.2010 - 17:54
fonte
1

Qualcosa che spesso mi trovo a fare è distrarre da cose casuali che non sono correlate a ciò che sto facendo. Un elenco di cose da fare può aiutare con quello; quando pensi a qualcosa, scrivilo e fallo dopo che hai finito ciò che hai di fronte.

    
risposta data 02.11.2010 - 18:11
fonte
1

Perché trascorro troppo tempo su Stack Overflow.

    
risposta data 14.12.2010 - 20:24
fonte
1

Matrice urgente / importante può valere la pena di essere considerata per vedere dove va la giornata. Si tratta di argomenti urgenti ma non importanti come riunioni e interruzioni non preparate? È su cose urgenti e importanti che non sapevi all'inizio della giornata? Solo un esercizio per considerare dove va il tuo tempo.

Tenderei a pensare che le cose più interessanti siano importanti o perché sono interessanti? Solo un pensiero.

    
risposta data 14.12.2010 - 19:50
fonte
0

Questa è una buona domanda e una che sto costantemente meditando. Tendo a pensare che

  • è molto facile giudicare male la quantità di lavoro che X impiegherà.
  • Non pianifico mai bug o viaggi nel bollitore.
  • o si ottiene molto con un piccolo codice o non si fa nulla e sembra che non ci sia nessuno in mezzo.
  • a volte perdi la tua 'zona', a volte le cose devono essere pensate.
risposta data 14.12.2010 - 20:16
fonte

Leggi altre domande sui tag