« Novedades de AS3 (II): Cambios en la declaración de variables y clases. Paquetes. | Inicio | Leopard Developer Tools Overview »

Sobre el "cambio de contexto"

Joel Spolsky comenta un post de Dimitri Zimini sobre los retrasos que puede suponer sobre un proyecto el sacar al programador del mismo, y hacerle perder toda relación con el mismo, para volver atrás a otro proyecto de hace meses.

Los programadores necesitamos concentrarnos en lo que estamos haciendo. Algunos lo conseguimos aislándonos del exterior con unos auriculares, otros simplemente cerrando la puerta de la sala en la que están trabajando, otros ignorando el teléfono. Cada uno tiene su forma de atacar el problema, pero todos necesitamos lo mismo: tranquilidad.

Tranquilidad para lanzarnos a la resolución de un problema, para alcanzar el estado mental en el que todo tu cerebro, toda tu capacidad lógica, todo tu poder de raciocinio está dedicado única y exclusivamente a una cosa: resolver el bug o desarrollar la funcionalidad.

Pero alcanzar ese estado necesita de un proceso de inmersión que no es trivial, ni en tiempo, ni en esfuerzo. Por eso las interrupciones no suelen ser sólo breves cambios de contexto, sino que en realidad suponen la explosión de una burbuja, la burbuja en la que te encuentras, que te aísla de todo lo que no sea tu funcionalidad.

Por eso, una interrupción de sólo unos minutos te puede suponer una pérdida de horas de trabajo. Porque no todo es tan fácil como poner una señal en un libro para saber dónde te llegas. Es muy complicado salir de un problema para volver a entrar en él, sobre todo si entre medias tienes que realizar otra inmersión en un problema totalmente distinto a aquél del que te han sacado.

Las interrupciones pueden ser inevitables. Hay veces en las que es necesario pararlo todo para resolver un bug de alguna aplicación que se desarrolló hace meses, pero eso no significa que esa deba ser la forma normal de operar.

No se puede estar cambiando de contexto cada hora. Simplemente, no se puede.

Comentarios

Que razón tienes!!, pero que dificil es hacer creerlo a quien te molesta ;)

Me parece una muy buena reflexión.
Creo que todo el que comparte espacio de trabajo con un programador debería leerlo y reflexionar.
Saludos!

Totalmente de acuerdo. Voy a reenviarlo a mi novia para que entienda -como muy bien apunta Joan Garnet- mi autismo digital :)

El término "autismo digital" lo acuñó uno de los socios de la empresa en la que colaboro actualmente para definir este estado mental definido aquí.
Concretamente se refería a la modalidad "auriculares", aunque para las demás mencionadas creo que también es aplicable :)

Voy a enmarcar esto y ponerlo en algún sitio en la agencia.