Los programadores son dispositivos humanos que convierten la cafeína en código de programación.
Pregúntale a un programador cuándo produce más. ¿Día o noche? Es casi seguro que la mayoría diga la opción dos. ¿Pero por qué? Un fenómeno que se ha visto en películas tan geniales como Antitrust, la mítica «Hackers», la de Mark Zuckerberg «The Social Network», «Revolution OS» y «Swordfish». Todas estas películas comparten un patrón común que no, no es un lenguaje de programación, son los ficticios hackers que prefieren la noche para delinquir programar. En el mundo real, la cosa no es tan diferente. La mayoría de los programadores se sienten más «cómodos» programando de noche. Yo también.
Con noche me refiero intrínsecamente a la madrugada, aquel período del día en donde la vorágine descansa y el silencio ambiental prolifera (excepto los viernes, sábados y festivos). Algunos programadores empiezan antes, otros después. Una tendencia popular es levantarse a las 4.00 y programar antes de que la vorágine despierte. Otros van a dormir a las 4.00. Personalmente me alterno entre ambos. Hay días que me despierto demasiado temprano y otros en donde me acuesto demasiado tarde, y también suelo pasar de largo cuando algo lo merece.
No, no somos robots (aunque muchos quisiésemos). No, tampoco somos super humanos. Somos personas que convertimos cafeína en código, o de otro punto de vista, convertimos cansancio en ideas.
¿Cansancio?
¿Para qué existe la noche? La primera respuesta es: dormir, aquel maravilloso pero inútil tiempo perdido para nosotros pero ganado para muchos en donde nuestro cuerpo descansa (si fuésemos robots esto no pasaría).
¿Qué pasa si no dormimos? Nos cansamos. ¿Y qué significa el cansancio para un programador? Según The Ballmer’s Peak:
En realidad, el cansancio nos obliga a concentrarnos en una tarea específica. Ni el cerebro ni el cuerpo tienen la energía y frescura para preguntarse el aquí y el allá.Steve Ballmer, CEO de Microsoft
¿Por qué trabajar en tareas complejas cuando el cerebro quiere dormir?
Cuando estoy cansado, sólo tengo la capacidad de pensar en lo más importante, por ejemplo, escribir líneas de código, razonar, lógica, etc…
Estar cansado nos hace enforcarnos, simplemente porque cuando el cerebro está cansado… ¡tiene que concentrarse! No sobra la capacidad intelectual para darse el lujo de perder la concentración.Yo
Algo interesante que he descubierto es que cuando intento mitigar el cansancio – refiriéndome a bebidas energéticas – la hiperactividad del cerebro vuelve por un rato provocando la pérdida de concentración y llevándome inmediatamente a revisar alguna red social.
Codear es un proceso creativo, no olvidar.
Y con este subtitulo quiero ahondar en un caso de estudio.
«Ego depletion», o «el agotamiento del ego» se refiere a la idea de que el auto-control y otros procesos mentales que requieren un esfuerzo consciente centrado dependen de una alta cantidad energía (es decir, cuando estamos descansados). Cuando esa energía es baja (osea, cuando estamos cansados), la actividad mental que requiere auto-control se ve afectada. Es decir, utilizando el auto-control en esas condiciones deteriora la capacidad para controlarse a uno mismo. En ese sentido, la idea de la (limitada) fuerza de voluntad que tiene una persona es correcta.
Aquí hago hincapié en lo siguiente: cuando estamos cansados, ¿tenemos suficiente fuerza de voluntad para descansar? La mayoría de los programadores, no. Por eso, y es una de las mejores razones para explicarlo, es que de noche un programador produce más. Se aísla, evita las distracciones y se concentra en sólo una cosa, no teniendo así el impulso que la poca energía que la mente tiene en ese momento podría provocar.
Es como si Internet desapareciera por un momento.
Las consecuencias. Volviendo a la mono-tarea.
Hackear tu cerebro – porque también necesitamos descansar.
O sueño polifásico. Existe evidencia de que una pequeña siesta puede aumentar significativamente la productividad. Una siesta de 20 minutos puede hacer una gran diferencia. Para un programador, ¿no tendría más sentido tomar una siesta de 20 minutos y despertar descansado en lugar de horas frente al monitor babeando? Es una excelente idea que la ejecuto de vez en cuando.
Un gran artículo sobre el Sueño Polifásico se puede encontrar aquí.
Conclusiones
Los programadores trabajamos en la noche, ya que no hay un límite de tiempo para dejar de trabajar, además tenemos un enfoque más relajado, el cerebro no sigue buscando distracciones, el cansancio y una brillante pantalla nos mantiene despiertos y muy enfocados.