Creo que la respuesta general es que a menudo es demasiado complejo (o imposible) calcular la cantidad de tiempo que llevará.
A veces, solo se trata de reducir el tiempo de computación para estimar mejor la cantidad de trabajo requerido (por ejemplo, tomar un mejor análisis de los archivos que se copiarán o aplicar un cálculo más complejo para estimar mejor la cantidad de pasos necesarios para completar una simulación).
Otras veces es bastante indeterminado. Cuando su sistema está instalando un nuevo programa, a menudo tiene muchas dependencias para verificar que estén instaladas. Y, en general, no tiene una idea de cuánto tiempo tomará cada uno y qué dependencias pueden necesitar. Es posible que ya tenga todas las dependencias instaladas y que pueda demorar 30 segundos, o que le falten docenas y demore horas. Es difícil dar un estadio justo sobre eso, especialmente cuando cada situación será única.
Además, otros drenajes en el sistema pueden cambiar con el tiempo (debido a lo que hace el usuario ... o a los procesos en segundo plano / programados).
A veces, la estimación podría mejorarse si el programador les dedicara un poco más de trabajo. Pero entonces es otra realidad que probablemente esta no sea la principal preocupación de la mayoría de los desarrolladores, en comparación con el avance de las tareas productivas reales que la aplicación puede realizar.
Al final, en este momento, creo que a menudo es solo una estimación lineal, un vistazo a cuántas de las tareas básicas requeridas ha completado el programa. Entonces, de hecho, tiende a ser una estimación muy aproximada, y generalmente debería considerarlo como tal al entrar.
Una buena analogía podría ser cuando estás leyendo un libro.
Y decide que le gustaría tener una idea de cuánto tiempo llevará terminar el libro ...
Puede verificar el recuento de páginas y obtener una estimación rápida basada en el ritmo hasta el momento.
Podría ser una mala estimación si recién comenzaste a leer, porque tu velocidad podría no ser típica todavía. Pero a menudo sería una suposición bastante aproximada.
O también puede hojear el libro, tener una idea aproximada de cuántas imágenes hay y el espaciado del texto. Y luego ten una mejor idea de lo que enfrentas.
Pero aún puede ser una estimación pobre si, por ejemplo, la legibilidad del texto disminuye, quizás pasando de una prosa simple a una compleja. O la estimación puede terminar muy mal porque no pudo anticipar otra tarea que distraiga su atención.
Podría obtener una gran estimación aplicando una gran cantidad de tiempo para analizar cuidadosamente lo que queda en el libro página por página, y también podría mejorarlo al revisar su calendario y mantener una lista de pasos de lectura pasados a largo plazo para varios libros.
Pero al final, ¿vale la pena demorar el tiempo que lleva hacerlo en solo leer el libro?
Todos amaríamos mejores indicadores. Pero tal como está, probablemente tendremos que cumplir con estimaciones aproximadas, al menos hasta que las computadoras comiencen a obtener algoritmos estandarizados mejorados, y sean expertos en sopesar "inteligentemente" y anticipar factores dinámicos (como sus formas).
Y la barra de progreso en eso puede estar atascada en 5% en este momento. Solo tendremos que ver cómo va eso 8-)