¿Por qué programo mejor de noche?

Los profesionales del desarrollo, programadores, gurus del código, en gran porcentaje trabajan mejor de noche.  Podemos preguntarle a cualquier desarrollador y en mas de un 90% de las veces les reponderá que sus mejores horas de desarrollo son durante la madrugada. En mi caso entre las 12:00 a.m. y 4:00 p.m.

Buscando en internet para responder esta duda, me encontré con un artículo de http://www.accionpreferente.com,  escrito por Enrique Lyon que me parecío muy intersante.

Concuerdo en un 100% con las observaciones realizadas en la nota, por la que se las reprodusco a continuación.

Un dicho popular dice que los programadores son máquinas que convierten la cafeína en códigos.

Y, por supuesto, si le preguntas a cualquier programador al azar cuándo hace su mejor trabajo, hay una alta posibilidad de que admita que lo hace de noche. Algunos más temprano, otros más tarde. Una tendencia popular es levantarse a las 4 am y trabajar un poco antes de que la locura del día comience. Otros, se van a la cama a las 4 am.

La esencia de todo esto es evitar las distracciones. Pero podrían simplemente cerrar la puerta, ¿qué tiene de especial la noche?

Creo que todo se reduce a tres cosas: el horario del fabricante, el cerebro somnoliento y pantallas de computador brillantes.

El horario del fabricante

Paul Graham escribió acerca del horario del fabricante en 2009 -, básicamente, que hay dos tipos de horarios en este mundo. El horario tradicional del gerente, donde el día se corta en horas, y diez minutos de distracción le cuesta, como máximo, el valor de una hora de tiempo.

Por otra parte, tienes algo que PG llama el horario del fabricante – un horario para aquellos de nosotros que producimos cosas. Trabajar en grandes sistemas abstractos implica ajustar toda la cosa en tu mente – alguien alguna vez comparó esto a la construcción de una casa de un caro cristal; tan pronto como alguien te distrae, todo se va hacia abajo y se rompe en mil pedazos.

Es por esto que los programadores se molestan tanto cuando los distraes.

Debido a esta enorme inversión mental, simplemente no podemos empezar a trabajar hasta que podamos esperar un par de horas sin que nos distraigan. Simplemente no vale la pena construir todo el modelo en tu cabeza para que luego se derribe media hora más tarde.

De hecho, hablando con muchos te darás cuenta de que sienten como si simplemente no pueden conseguir hacer ningún trabajo durante el día. El constante bombardeo de las interrupciones, los mensajes de correo electrónico para responder, simplemente no lo permiten. Así que realizan la mayor parte de su “trabajo trabajo” durante la noche cuando todo el mundo está durmiendo.

El cerebro somnoliento

Captura de pantalla 2014-07-11 a la(s) 10.43.24Pero incluso los programadores deberían estar durmiendo en la noche. No somos una raza de súper humanos. Incluso los programadores se sienten más alerta durante el día.

¿Por qué entonces llevamos a cabo nuestro trabajo mental más complejo cuando nuestro cerebro quiere dormir y hacemos tareas más simples, cuando nuestro cerebro está
más nítido y brillante?

Debido a que el cansancio nos hace mejores codificadores.

Al igual que en el pico de Ballmer, el cansancio nos puede hacer enfocar mejor, ¡simplemente porque cuando tu cerebro está cansado tiene que concentrarse! No queda suficiente capacidad intelectual para permitirse perder concentración.

Yo parezco conseguir menor trabajo bien hecho después de beber demasiado té o beber una bebida energética. Me hace hiperactivo y en un segundo estoy metiéndome a Twitter, viendo noticias de hackers, y simplemente parezco estar zumbando por todo el lugar..

Uno pensaría que trabajaría mejor – tanta energía, tanta capacidad intelectual estimulada. Pero, en cambio, me tropiezo conmigo mismo, porque no me puedo concentrar por más de dos segundos a la vez.

A la inversa, cuando estoy un poco cansado, acabo sentándome y codificando. Con un cerebro un poco cansado puedo codificar durante horas y horas sin siquiera pensar en la comprobación de Twitter o Facebook. Es como si Internet parara de existir.

Siento que esto es cierto para la mayoría de los programadores. Tenemos demasiada capacidad intelectual en aproximadamente el 80 por ciento de las tareas que realizamos – enfréntalo, escribir ese algoritmo, requiere de diez veces más para producir el entorno en el que puede funcionar. Incluso si estás haciendo la máquina más avanzada de aprendizaje (o algo así) que se pueda imaginar, una gran parte del trabajo no es más que limpieza de los datos y presentar los resultados de una manera amena.

Y cuando tu cerebro no está funcionando a plena capacidad busca algo que hacer. Estar cansado te hace tan tonto que la tarea que tienes mano es suficiente.

Las pantallas de computador brillantes

Esta es bastante simple. Sigue mirando hacia una fuente de luz brillante en la noche y tu ciclo de sueño se retrasará. Te olvidas de estar cansado hasta las 3am. Luego te despiertas a las 11am y en la tarde no estás cansado, porque oye, ¡sólo has estado despierto desde las 11am!

Dadas las suficientes iteraciones esto puede esencialmente arrastrarte a una zona horaria diferente. Lo que es más interesante es que no parece seguir rodando, una vez que llegas a ese equilibrio de irte a la cama entre las 3am y 4am, tiendes a permanecer allí.

O tal vez eso son sólo los relojes de alarma que hacen sus cosas porque la sociedad nos dice que somos unos vagos sucios si tomamos desayuno a las 2pm.

Conclusión

Para concluir, los programadores trabajan de noche, ya que no impone un límite de tiempo para dejar de trabajar, lo que les da un enfoque más relajado, su cerebro no sigue buscando distracciones y una pantalla brillante los mantiene despiertos.