¿Cómo explicar a un laico por qué un desarrollador no debe ser interrumpido mientras se codifica? [cerrado]

92

Si solo considera la segunda parte de mi pregunta, "¿Por qué un desarrollador no debe ser interrumpido mientras se codifica?", Eso ha sido discutido varias veces por personas inteligentes. Heck, incluso el cofundador de SO, Joel Spolsky, escribió una publicación en el blog sobre "entrar en la zona" y "ser expulsado de la zona" y por qué toma un promedio de 15 minutos alcanzar la productividad cuando se participa en complejos, tareas relacionadas con el desarrollo de software. Así que creo que se ha establecido el por qué.

Lo que me interesa es cómo explicar todo eso a alguien que no conoce los beans sobre Beans (khmm me refiero al desarrollo de software). ¿Cómo decirle a la esposa, o al tipo gracioso de la contabilidad en el lugar de trabajo, o al viejo amigo que te llama por Skype cada 30 minutos con un "Wazzzzzzup ?!", que todas las interrupciones tienen un impacto mucho más profundo en tu trabajo que los obvios 30 segundos que tomaron de tu tiempo. Obviamente no puedes explicarlo con oraciones como "Tengo que hacer malabarismos con muchos nombres de variables en mi memoria a corto plazo" a menos que quieras ser blanco de miradas en blanco o abuso amistoso.

Me gustaría poder explicar todo eso a los que no son desarrolladores de una manera que los haga comprender claramente, sin ser ofensivos, elitistas o demasiado técnicos.

EDITAR: Gracias a todos por sus excelentes ideas. He aceptado la respuesta de EpsilonVector como su analogía era el más cercano a mis necesidades originales. La explicación de "quedarse dormido" no es ofensiva ni técnica, casi cualquier persona puede relacionarse con ella, y las consecuencias de ser molestado mientras se duerme o mientras está en la zona son muy similares: experimenta frustración y "pierde" 15-20 minutos de tiempo.

András Szepesházi
fuente
36
¡Haga que comiencen desde 0 y cuenten hasta un número muy grande, a mitad del grito ! ¡ardilla!
Tim Post
8
Seguramente relevante para la mayoría de las profesiones, intente detener a un cirujano a medio flujo.
ozz
24
baje de skype en el trabajo.
Josh
66
"sin ser ofensivo", sabía que había una trampa en alguna parte. :)
biziclop
77
@Josh En el trabajo usamos Skype para la comunicación entre oficinas. Lo necesitamos abierto. Tengo una cuenta de trabajo separada, pero aún te encuentras con estos problemas.
Matthew Scharley

Respuestas:

124

Pruebe las siguientes analogías: Primero: "¿Cuánto tiempo le toma quedarse dormido?" "X minutos" "Ahora imagina que cuando estás a punto de quedarte dormido, alguien entra y te interrumpe, ¿cuánto tiempo te tomará quedarte dormido ahora? Esos pocos segundos que te quedan, o tendrás que comenzar de nuevo para ' hundirse 'a donde estabas? " "Tendré que comenzar de nuevo" "Genial. Lo mismo. Al igual que conciliar el sueño, me lleva un tiempo 'hundirme' en el modo de enfoque, y me toma un tiempo volver a hacerlo una vez que me interrumpen, excepto que también olvido la mitad de lo que estaba haciendo ".

Segundo: "Sabes cómo cuando estás leyendo un libro te 'hundes en él'; después de un tiempo ya ni siquiera notas las palabras, bloqueas todo lo que te rodea y estás totalmente inmerso en las imágenes mentales. Lo ves." "Si." "¿Cuánto tiempo te toma llegar allí?" "Aproximadamente X minutos" "Ahora imagina que cuando estás tan inmerso en el libro que alguien entra y te interrumpe, ¿cuánto tiempo te llevará volver a eso? ¿Sucederá de inmediato o tendrás que comenzar de nuevo para ' hundirse 'a donde estabas? " "Tendré que comenzar de nuevo" "Genial. Lo mismo. Al igual que con la lectura, me lleva un tiempo 'hundirme' en el modo de enfoque, es tan molesto cuando alguien me saca de allí,

EpsilonVector
fuente
14
+1 excelente, excelente, especialmente el "quedarse dormido". Exactamente el tipo de explicación que estaba buscando.
András Szepesházi
1
No podría ayudar - me puedo caer directamente de vuelta a dormir normalmente ...
Armand
1
@Alison No sé sobre no puedo, pero hay muchas personas que no leen y, por lo tanto, no pueden relacionarse con el segundo punto.
Matthew Scharley
3
Me encanta la metáfora de quedarse dormido, ¡pero no usaré eso para explicarle mi trabajo a mi esposa en el corto plazo! ;>
dthorpe
77
No despiertes al programador alexthunder.livejournal.com/309815.html
Chris Nava
30

No creo que el estado de ensueño que describe Joel sea técnico. Es el mismo cambio en el cerebro derecho que cualquiera experimenta cuando dibuja o cae bajo el hechizo de un libro realmente bueno. ("Dibujo en el lado derecho del cerebro" de Betty Edwards lo describe perfectamente.) Todos han experimentado esa sensación de concentración en la que desconocen el paso del tiempo.

Creo que es condescendiente desde el principio imaginar que esto es algo que solo las personas técnicas entienden, que el concepto debe ser simplificado para que los no desarrolladores lo entiendan. Simplemente explíquelo en un lenguaje sencillo: lo entenderán.

duffymo
fuente
17
En mi experiencia, no necesariamente lo entienden, pueden aceptarlo como un hecho, pero aún así no pueden relacionarse con eso. Para la mayoría de las personas que conozco, el trabajo es solo un trabajo que puede suspenderse o continuarse en cualquier momento.
3
No con las personas con las que hablo. En mi experiencia, todos los que hacen trabajos que no son de memoria podrían relacionarse perfectamente. Tal vez estás hablando con demasiadas personas haciendo tareas de memoria.
duffymo
3
@duffymo: Hmm. No considero una persona de ventas que está escribiendo una oferta personalizada para un cliente que realiza una tarea de memoria. Aún así, si lo interrumpo, él / ella perderá el máximo medio minuto hasta volver a la normalidad. A eso me refería: la mayoría de los trabajos son mucho más fáciles de suspender / continuar que los nuestros. EN MI HUMILDE OPINIÓN.
55
Es cuestión de cuánto estado pierdes. Los programadores tienden a necesitar mantener un estado completo del programa en la cabeza mientras codifican, pero otras profesiones que implican más escritura mantienen el estado en el documento que están construyendo. ¿Qué estado es más fácil de restaurar?
Michael K
2
Creo que mucho depende de si la persona realmente experimenta el estado de flujo durante su trabajo (o tiempo libre). Si alguna vez lo hicieron, entenderán mejor a qué nos referimos.
Péter Török
23

Vuelva a enrutar su hilo interno a IO verbal, es decir, gire cuando lo interrumpan y siga murmurando código y mirando a la distancia media hasta que se den por vencidos y se vayan. Si hablan, solo murmuren más fuerte.

Peter
fuente
16
LOL esto es bueno, pero ciertamente conduce a un divorcio si el interruptor es la esposa.
András Szepesházi
¡Este es definitivamente el enfoque más rápido y efectivo! : P
Robin Maben el
16

Dígales que la codificación (o inserte otra actividad de alta concentración aquí) es como ser un artista de circo que hace las placas giratorias .

Primero comienzas girando un plato en un palo, hazlo funcionar, luego comienza a girar un segundo plato, sigue así, regresa al primer plato, dale un poco de giro adicional para que siga funcionando, luego comienza a girar un tercer plato , póngalo en marcha, luego regrese al segundo plato, un pequeño giro adicional, un primer giro adicional del plato, un tercer giro adicional del plato, luego comience a girar cuarto, etc.

Entonces suena el teléfono y todos los platos se caen.

El estado de flujo se ha ido. Ahora tienes que empezar de nuevo. Haz girar un plato ...

Me gusta pensar que cada placa es una porción de datos, variables, conceptos, estados, etc. que debe tener en mente.

Dhaust
fuente
13

Hace unos meses hice que alguien entrara a mi cubo y sacara mis auriculares mientras codificaba. Dejando de lado la furia interna, mi enfoque consistía en explicar que a menudo los programadores están inmersos en un pensamiento lógico que requiere un enfoque diferente y concentrado del pensamiento y que la interrupción repentina realmente puede arruinar el proceso de pensamiento. No ha sucedido de esa persona otra vez, así que tal vez funcionó. Otra cosa que puede considerar es la señal de ocupado / libre. Tengo un amigo que hace algoritmos y tiene un signo de dos lados que dice "Codificación - No interrumpir" en un lado y "Free to Chat" en el otro. Eliminar la ambigüedad es la clave aquí.

n1reu
fuente
16
Siempre que deje el lado "Free to Chat" hacia arriba una cantidad razonable de tiempo. Si el lado de "No interrumpir" siempre está arriba, es mejor que no tengas señal alguna ...
Dean Harding
44
Parece que sería molesto tener que voltear el cartel todo el tiempo.
Nadie
3
Podrías tener un Thinking Cap en lugar de una señal. Siempre que tenga puesto su Thinking Cap, la gente no debería interrumpirlo.
Ant
3
¿"Free to chat" no implicaría (para los gerentes): "No tengo suficiente trabajo que hacer"?
badgerr
8
En mi lugar de trabajo, nuestro indicador indocumentado "en la zona" es la presencia de auriculares. El jefe ha dicho, "incluso si no estás escuchando nada, póntelos si te estás concentrando. Tomaremos eso como que estás ocupado".
JYelton
12

Ok, estoy agregando mi propia respuesta (sé que esto es un poco tonto, pero tal vez arroja algo de luz adicional sobre lo que estaba apuntando).

Le dije lo siguiente a alguien que me interrumpió recientemente en un mal momento: "Desarrollar software es como conducir un automóvil en una carretera muy transitada por primera vez en su vida. Toda su atención se centra en el volante, los pedales y los automóviles. apresurándose a su alrededor, y simplemente no tiene un poco de atención extra para una buena conversación. Si comienza a enfocarse en lo que trata la conversación, seguramente perderá el control sobre el automóvil y terminará en un accidente".

Esto era algo con lo que la persona podía relacionarse, pero está lejos de ser una buena analogía. Si me interrumpen, la consecuencia será muy diferente de un accidente. He estado desarrollando SW durante 2 décadas, entonces, ¿por qué comparo esto con algo que se está haciendo por primera vez? Y así.

András Szepesházi
fuente
1
Es una buena analogía. Simplemente quite la parte de la "primera vez" y enfatice que es una carretera muy transitada, con muchos cruces, semáforos, camiones y bicicletas, y eso es todo. Especialmente porque la encrucijada es buena para representar todas las decisiones que debe tomar, sin saber siempre qué puede golpear su automóvil detrás de la esquina.
Goran Jovic
No creo que sea una buena analogía, y creo que lo admites tú mismo, pero si logra que respeten tu tiempo de desarrollo, entonces úsalo.
Bernard
No esta mal.
Marcie
44
Solo agregue que ya hay tres niños gritando en la parte posterior que está luchando por ignorar (todas sus propias distracciones naturales).
Benjol
7

" Mihaly Csikszentmihalyi on flow " es una buena charla TED sobre esta idea de ser realmente productivo bajo ciertas condiciones que pueden o no atraer a las personas. No olvides que para algunas personas tal vez nunca quieran entender la explicación y, por lo tanto, es como golpear al caballo muerto recursivamente hasta el infinito.

JB King
fuente
+1 Estaba escribiendo una respuesta en Flow: en.wikipedia.org/wiki/Flow_%28psychology%29
StuperUser
+1 Además de la buena referencia al flujo, encuentro que la parte de "vencer al caballo muerto recursivamente hasta el infinito" es simplemente graciosa.
András Szepesházi
4

Lo llamo un trance de programadores. Hay muchas buenas analogías aquí, entonces, ¿cuál es una más, eh? Como se ha dicho anteriormente, un programador navegará mentalmente por varios flujos lógicos diferentes hasta que se presente el correcto. ENTONCES se escribe en código y se guarda en la computadora.

Entonces, digamos que está escribiendo un documento final o un documento importante. Los pensamientos fluyen en palabras hacia la computadora, pero aún no ha guardado los cambios. Luego poof, se va la energía o la computadora se bloquea. Recuperar todo eso llevará tanto o más tiempo y nunca será lo mismo que el original. (¿Cuántos de nosotros, veteranos, hemos tenido ESO que sucedió?)

Esto es lo que le sucede al código en tu cabeza cuando se interrumpe. Los pensamientos son tan frágiles como el humo. Si aún no se han guardado y aparece algo para interrumpirlos, se han ido.

R Hughes
fuente
Me gusta este uno de los mejores, ya que mucha gente lo entenderá, y porque es lo suficientemente expresa que no va a tomar 15 minutos para volver a ella, se necesitará más tiempo que la primera vez y con peores resultados,.
pez orb
3

Estimado y distinguido compañero de trabajo: En un esfuerzo por ser más eficiente, me estoy centrando en mi trabajo y estoy respondiendo preguntas por correo electrónico en momentos entre trabajos para mantener la interrupción al mínimo para servirle mejor a usted y al nombre de la empresa _ . Por favor envíeme un correo electrónico y me pondré en contacto con usted lo antes posible. Gracias.

usuario16784
fuente
2

Si escuchas música, coloca un letrero que diga algo parecido a

Headphones on? Please do not interrupt.

Esto solo es efectivo si alguien lee y no siempre tiene los auriculares puestos.

Ian Potter
fuente
Para mí sería al revés. Escuchar música y una concentración profunda no van juntas para mí.
CodesInChaos
2

Lo considero como una gran red de conexiones complejas que tengo que construir en mi mente, una estructura de relaciones entrelazadas que se afectan entre sí de formas diferentes, no siempre obvias, todas las cuales deben entenderse y mantenerse claramente en foco mientras escribo el código. La creación de esta web lleva de 5 a 15 minutos en un proyecto con el que estoy bastante familiarizado, y varias veces menos en un proyecto menos íntimo.

Cuando se interrumpe mi concentración, la red comienza a colapsar, y si la interrupción dura más de unos segundos o tengo que pensar en otra cosa incluso un poco compleja ("Cuando el servidor se cayó la semana pasada, ¿qué hiciste? decirle al cliente? "), la web colapsa por completo. Cuando termina la interrupción, tengo que volver a construir toda la web, en gran medida desde cero.

Si me toma 10 minutos construir la web y me interrumpen por solo 2 minutos tres veces por hora, debe comprender que en lugar de codificar durante 50 minutos de la hora, solo estoy haciendo 24 minutos de trabajo. Esas 3 pequeñas interrupciones reducen mi productividad a la mitad .

Matthew Frederick
fuente
1

Neil Ford lo contó el último Devoxx. Escribió un libro al respecto: El programador productivo. Explica consejos sobre los interruptores de 'flujo'. Si estás en el flujo, estás en tu punto de concentración más alto. Pero si te interrumpen, demoras más de -20 minutos en recuperar tu flujo.

Es posible que desee explicarlos si sale de su flujo, la memoria de acceso aleatorio en su cerebro pierde los datos sobre lo que está trabajando y necesita 20 minutos para recuperar los datos en su RAM;)

Jeff
fuente
Creo que hablar de acceso aleatorio y pérdida de memoria supera el objetivo de "no ser técnico".
András Szepesházi
0

Normalmente pongo el siguiente estado en mis clientes de mensajería instantánea:

Estoy en el trabajo y como no puedo realizar varias tareas, no me molesten ...

Al menos parece hacer el truco con el

viejo amigo que te llama por Skype cada 30 minutos con un "Wazzzzzzup ?!"

Yaneeve
fuente
1
Usted sabe que puede desconectarse o simplemente salir de su cliente de mensajería instantánea, Skype, etc.
Spoike
@Spoike No si IM también se está utilizando para el trabajo, como es común.
Eric Wilson
1
@EricWilson Registre una cuenta diferente para usar en el trabajo, y no le diga al viejo amigo que lo llama por Skype cada 30 minutos con un "Wazzzzzzup ?!"
Daniel Beck
@EricWilson: si desea concentrarse en su trabajo durante algunos períodos de tiempo, puede apagar o cerrar la sesión de mensajería instantánea / correo electrónico, incluso si se utiliza para el trabajo. He podido hacerlo en los lugares en los que he trabajado.
Spoike
0

Podría intentar explicar, pero también podría intentar esto:

Usted interrumpe ellos , mientras que están haciendo algo que requiere una profunda concentración, si se está leyendo, viendo una película, el cálculo o mejor aún contando algo. Entonces, todo lo que tienes que explicar es que es exactamente así cuando te interrumpen. Debería hacer el truco. Solo por favor no los moleste mientras conducen o algo así :).

Goran Jovic
fuente
Obviamente, a alguien no le gusta mi enfoque del problema, pero a veces la única forma es explicarlo con un ejemplo . Especialmente si el tema es oscuro para las personas a las que se lo está explicando.
Goran Jovic
No suena como explicar con el ejemplo. Suena como "vengarte".
Marcie
0

No te explico. Les informo amablemente que la interrupción solo agregó 6 semanas para programar.

Retroceso1986
fuente
44
Esta sugerencia es similar a "ser grosero, y la gente dejará de molestarte". Puede ser efectivo, pero no es una buena forma de trabajar en equipo.
Marcie
No creo que se haya especificado una "buena forma de trabajar en equipo" como requisito :) Según tengo entendido, la pregunta se dirigió a las interrupciones, que pueden ser o no ortogonales a la membresía del equipo.
Retroceso1986
0

Lo que hago en la oficina es encontrar lugares de hotdesk (escondites) en diferentes departamentos de la oficina, de esta manera nadie sabe dónde está y no puede molestarlo, pero si esto no es una opción, solo obtenga una señal y explique que a menos que sea de vital importancia, no molestar!

Kyndigs
fuente
0

No sé sobre el resto, pero para Skype al menos sugeriría usar el modo "No molestar". Y si debe usarlo para comunicarse en el trabajo, tener una segunda cuenta solo de trabajo que no comparta con nadie que no quiera molestarlo en el trabajo :)

satuon
fuente
0

No tiene que ser complicado. Algo tan simple y no hostil como "Estoy trabajando en algo que requiere mucha concentración. ¿Se puede poner esto en un correo electrónico? Prometo verlo tan pronto como termine aquí".

Andy Lester
fuente