Cada programador, de vez en cuando, tiene un día perfecto. Te levantas 5 minutos antes de que suene la alarma sintiéndote genial. El desayuno está preparado y en el mostrador, junto con café recién hecho, para que pueda tomar algo y salir por la puerta. Durante su viaje, llega a cada luz verde, y el tráfico parece ser especialmente ligero. Al contemplar el día que tiene por delante, puede comprender completamente el diseño y las consecuencias de la tarea que tiene por delante, que ha sido bien planificada con requisitos firmes.
Llegas al trabajo y descubres que no tienes correos electrónicos importantes, ni mensajes de voz en espera, y tus compañeros de trabajo están fuera o en reuniones a las que no tienes que asistir. Enciende su editor y se encuentra inmediatamente en la zona, puede sentir la estructura del código y ver sus estructuras de datos y algoritmos encajando en su lugar dentro de un conjunto hermoso y coherente. Los pensamientos fluyen a través de sus manos hacia el teclado, ingresando código perfectamente formado que es elegante, fácil de mantener y que no se encuentra ningún error.
Durante el día que trabaja sin interrupciones, la oficina está tranquila y está tan concentrada que nunca se siente tentado a perder el tiempo para ponerse al día con las noticias, los blogs, etc. Cuando compila y ejecuta sus pruebas, descubre que todo funciona sin problemas, por supuesto que sabías que lo haría, y al final del día te comprometes sin conflictos. Al mirar el reloj al salir, te das cuenta de que pasaste 12 horas y se sintió como una breve sesión de codificación de 20 minutos.
Ese día, ese día perfecto, es lo que suponemos que tendremos cada vez que tengamos que estimar algo.