Es una combinación de los motivos ya dados en varias respuestas:
– falta de interrupciones
– falta de distracciones y tentaciones
– falta de límites y plazos
– estado de flujo del programador
– “hacer heno mientras brilla el sol”
La falta de interrupciones es un factor importante. Esto se aplica a principios de
mañana tan bien como a altas horas de la noche, pero está compuesto por otros
factores
La falta de distracciones es otro factor, a veces falta de tentación.
En un momento de mi carrera tendía a salir a beber oa salir de discoteca
mucho, pero tuve que dejar eso de lado para trabajar en mi startup. Como la hora
más tarde la tentación se hizo más fuerte, pero cuando golpeé y pasé “también
tarde para salir “, mi concentración aumentó.
Falta de límites y plazos impuestos externamente – durante el día que
a menudo se ven obligados a lidiar con conflictos de horarios. Nadie horarios
cualquier cosa por la noche tarde. Los únicos límites son los límites de su
la capacidad del cuerpo para mantenerse despierto, la capacidad de su mente para concentrarse.
Y, como algunos han señalado, la fatiga puede, hasta cierto punto, realmente ayudar
te concentras, principalmente al disminuir las distracciones provenientes de
dentro de tu propia mente.
Temprano en la mañana y plazos impuestos externamente
Me resulta más fácil entrar en estado de flujo al despertar. A
veces en mi carrera cuando trabajaba desde una oficina en casa * lo haría
tambalearse escaleras abajo, tomar una taza de café, sentarse en mi computadora y
deslizarse en el flujo con bastante facilidad, haciendo un montón de trabajo por varios
horas seguidas
(* La situación correcta de la oficina en general puede ser crucial para evitar
distracciones e interrupciones desalentadoras. Esto va doble para
una oficina en casa, donde es mucho más fácil permitirse ser
distraído.)
Por supuesto, a medida que esa compañía progresó de una pequeña startup a una más grande
compañía, ya no podía permitirme ser tan productivo, tuve que parar,
interrumpir lo que estaba haciendo, limpiarme e ir a la oficina.
* Hacer heno mientras brilla el sol
Parafraseando un dicho común, la mayoría de los buenos programadores obtienen el 80% del
trabajo real realizado en el 20% del tiempo real.
El otro 80% de nuestro tiempo está lleno de todas las cosas que necesitamos hacer.
para llegar al estado mental donde ocurre ese 20%.
Parte de ese 80% es gastos generales de organización, investigación, planificación, etc.
Pero mucho, quizás la mayoría, del 80% se gasta trabajando en el problema,
haciendo progresos modestos mientras intentamos meter nuestras cabezas en eso
Estado donde hacemos progresos fantásticos.
Estado de flujo del programador
Una digresión menor, pero relevante para el punto en cuestión:
No creo que el tiempo pueda caracterizarse únicamente como estado de flujo. Eso
es el estado de flujo, pero no solo el estado de flujo. El resto comparte mucho
de la naturaleza del estado de flujo (incluida la fragilidad del estado de flujo)
pero viene de algún lugar diferente. Llámalo “flujo de programador
estado”.
Tiene que ver con tener todo el estado del problema en mente.
(y despejar tu mente de otras cosas, por lo que puede ser más fácil
entrar en flujo en la madrugada).
También tiene que ver con acceder simultáneamente a ambos
naturaleza lingüística / analítica de su cerebro y lo creativo / espacial
Razonamiento de la naturaleza de su cerebro.
Tenga en cuenta que digo “naturaleza” en lugar de “lado” porque si bien toda la idea
de cerebro izquierdo / cerebro derecho nunca fue realmente válido para empezar, lo hago
piensa que hay estados mentales y que a menudo son mutuamente
antagonista. Es muy difícil y muy raro poder hacer ambas cosas.
En seguida.
Pero volviendo al 80/20:
Una vez que entras en el estado de flujo del programador, comienzas a obtenerlo realmente,
y también comienzas a hacer un montón de progreso, por lo que no quieres
interrumpirlo, no por nada.
Pero más que eso, no solo estás en estado de flujo, y no estás solo
“hacer las cosas”. Estás persiguiendo un entendimiento, persiguiendo un
declaración codificada del problema y la solución.
El equilibrio de la actividad cambia de un lado a otro. A veces eres
aferrarse a una articulación casi realizada del problema / solución.
A veces intentas bajar lo que tienes en mente en la pantalla,
tratando de convertir un conjunto n-dimensional de relaciones entre
diferentes elementos del software en el lenguaje formal del código.
Programación en pareja
La programación en pareja funciona, aunque nunca se ha convertido en una práctica estándar
por otras razones no quiero entrar aquí. Y lo que es más
importante es por qué funciona, porque eso arroja luz sobre el flujo del programador
estado en general, y a su vez en el efecto noctámbulo.
Trabajar en estrecha colaboración con un socio lo ayuda a mantener ese enfoque y flujo,
en gran parte por tres razones. Estos no están en ningún orden particular o
importancia.
El efecto tándem: una vez que te pones en marcha, cuando vacilas, te arroja
una distracción momentánea desde tu propia mente, tu pareja puede
tirarte de nuevo al flujo. Cuando tropiezas con algo que no
entiendo bastante (o momentáneamente no entiendo), su pareja puede
aclararlo Cuando pierdes algo que te va a descarrilar,
tu pareja puede atraparlo.
El efecto de coaching mutuo: ¿alguna vez has notado lo fácil que es
es profundizar en un tema al discutirlo con alguien más que
también lo sabe profundamente? Es mucho más fácil aumentar tu concentración
y entrar en el estado de flujo cuando tienes el estímulo mutuo de
programación en pareja.
Parte de esto es psicológico, en el sentido de entusiasmo contagioso.
Algo de esto es práctico, en el sentido de obtener la información
en tu cabeza Algunos de ellos son … hm, no tengo una buena palabra para esto
uno; política quizás, si de una manera muy microcósmica, en el sentido
de mantener la presión sobre ti mismo para mantenerte enfocado y mantener
conduciendo hacia adelante.
El efecto Navegador: dado que el flujo se comparte y se mantiene
por dos personas, distracciones intelectuales (por ejemplo, buscar un
API detalle) puede ser manejado por uno mientras que el otro puede mantener el flujo
yendo. Entonces el que maneja la distracción puede ser retirado
en flujo por el otro socio.