Penso che la risposta generale sia che spesso è troppo complesso (o impossibile) calcolare il tempo necessario.
A volte sarebbe solo una questione di ridurre i tempi di elaborazione per stimare meglio la quantità di lavoro richiesta (ad esempio, fare una migliore analisi dei file da copiare o applicare un calcolo più complesso per stimare meglio il numero di passaggi necessari per completa una simulazione).
Altre volte è piuttosto indeterminato. Quando il tuo sistema installa un nuovo programma, spesso ha molte dipendenze da verificare se sono installate. E generalmente non ha idea di quanto tempo impiegherà ognuno e di quali dipendenze potrebbero avere bisogno a loro volta. Potresti avere già tutte le dipendenze installate e potrebbero essere necessari 30 secondi, oppure potresti mancarne dozzine e potrebbero volerci ore. Difficile dare un campo di gioco equo, soprattutto quando ogni situazione sarà unica.
Inoltre, altri scarichi nel sistema possono cambiare nel tempo (a causa di ciò che l'utente fa ... o in background / processi pianificati).
A volte la stima potrebbe essere migliorata se il programmatore vi dedicasse un po 'più di lavoro. Ma poi è un'altra realtà che questa probabilmente non è la preoccupazione principale della maggior parte degli sviluppatori, rispetto a promuovere le attività produttive effettive che l'applicazione può svolgere.
Alla fine, in questo momento, credo che abbastanza spesso sia solo una stima lineare - uno sguardo a quante delle attività di base richieste ha completato il programma. Quindi tende davvero ad essere una stima molto approssimativa, e dovresti generalmente considerarla come tale.
Una buona analogia potrebbe essere quando stai leggendo un libro.
E decidi che vorresti avere un'idea di quanto tempo ci vorrà per finire il libro ...
Puoi controllare il conteggio delle pagine e ottenere una rapida stima in base al ritmo finora.
Potrebbe essere una cattiva stima se hai appena iniziato a leggere, perché la tua velocità potrebbe non essere ancora tipica. Ma spesso sarebbe una supposizione approssimativa.
Oppure potresti anche sfogliare il libro, avere un'idea approssimativa di quante immagini ci sono e della spaziatura del testo. E poi avere un'idea migliore di ciò che devi affrontare.
Ma può essere ancora una stima scadente se, ad esempio, la leggibilità del testo diminuisce, forse passando da una prosa semplice a una complessa. Oppure la stima potrebbe finire in modo errato perché non sei riuscito ad anticipare un'altra attività che distoglierà la tua attenzione.
Potresti ottenere una grande stima applicando una grande quantità di tempo per analizzare attentamente ciò che rimane nel libro pagina per pagina, e allo stesso modo puoi migliorarlo controllando il tuo calendario e mantenendo un elenco di passi di lettura a lungo termine per vari libri.
Ma alla fine, è il tempo necessario per farlo, vale la pena aspettare solo a leggere il libro?
Tutti ameremmo indicatori migliori. Ma com'è, probabilmente dovremo fare i conti con stime approssimative, almeno fino a quando i computer nel loro insieme non inizieranno a migliorare gli algoritmi standardizzati, e saranno abili nel pesare "in modo" intelligente e nell'anticipare i fattori dinamici (come i tuoi modi)!
E la barra di avanzamento su questo è forse bloccata al 5% in questo momento. Dovremo solo vedere come va Cool Cool