Ci sono tre scenari in cui mi viene chiesto di prevedere quanto tempo ci vorrà:
- I know I can solve the problem without further consultation of anything (that is, there is no unknown in the problem. I already have all the knowledge to solve the problem)
- I know the problem can be solved but I need to do a lot of experimentation to see how things work (for example, you may know a car tire is easy to change, but if you have never changed it, you may run into issues that you will avoid/correct the next time around, thus making your prediction of how long it will take, better... yes, this I know is one of the answers to my question here... experience)
- I am told the problem can be solved, but I have no idea where to begin so I start breaking it down into small pieces and go to Step 2 (where I know it can be solved, but needs experimentation)
In genere sono pessimo nel predire quanto a lungo ci vorrà qualcosa anche se ho già fatto qualcosa di simile prima. Mi imbatto sempre in un intoppo che non avevo previsto. La mia domanda è principalmente rivolta al Punto 1 e piuttosto al Punto 2 (al Punto 3, so che le mie previsioni saranno sempre sbagliate). So che richiede esperienza, che mi consentirà di fare delle buone previsioni ma che ha di essere alcune regole di base che posso seguire per iniziare a fare previsioni un po 'accurate. In questo momento sento che non sarò mai in grado di fare delle buone previsioni, non importa quanta esperienza guadagni. Una regola che ho sentito è qualcosa sulla falsariga di predict how long it will take, then multiply it by 2, then add two more weeks
(più di uno scherzo ... o forse no?)
Ora so che prevedere il tempo impiegato da un compito è un problema generale nel settore, ma le persone continuano a prevedere in una certa misura e non possono sempre essere sbagliati (in particolare su attività più piccole). Nel mio caso, se qualcuno mi dice How long do you think a linked list with these features will take?
, darò una previsione sbagliata anche se so come crearne uno senza consultare alcun corpo / libro.
So my request is to SO (especially veterans in the industry) is to give me (us) pointers on how to get better at predicting how long a task will take.
Sfondo
Sono attualmente uno studente dei Master che lavora in un'azienda. Sono molto giovane in termini di esperienza nel settore ed esperienza in generale. Sto leggendo molti libri su una migliore programmazione, design ecc. (La maggior parte di loro è stata consigliata qui in SO) e la mia conoscenza della programmazione è sempre più grande grazie al lavoro / scuola e SO; ma naturalmente, ci sono letteralmente tonnellate più che ho bisogno di assorbire.