Monthly Archives: julio 2010

Mi aportación a la técnica pomodoro

Voy dar mi pequeña aportación sobre una técnica que descubrí la semana pasada pero que considero un must-know para todos los desarrolladores de software, la tecnica pomodoro. Hay otros blogs como el de David Bonilla que ya lo explican (aquí o aquí y ahora también aqui) y además lo hacen con una gran calidad de expresión.

Más que una tecnica de gestion de tareas personales como el Autofocus , la tecnica pomodoro da las pautas necesarias para provocar un estado mental de máxima concentración llamado flujo. Pero bueno,.. empezamos por el principio.

¿A quién no le suena una típica mañana en la mente de un programador?

9:00 – Mmmm. Buenos dias… voy  a ver mi correo
9:30 – (Unos cuantos correos y webs despues) Voy a programar !!…
9:35 – No he cogido agua. Voy a por mi vaso.
9:36 – ¿Por dónde iba…? Ah sí….
9:45 – Un correo. Voy a mirarlo. A ver… Si, ya sé cual es el problema del cliente. No ha encendido el ordenador. Una respuesta concisa y educada.
9:50 – ¿Tenía ya el test unitario terminado?. Ah, no. que faltaba añadir este dato de entrada.
9:52 – Voy a servicio…

Después de muchas idas y venidas de nuestra saltarina mente, al final del día tenemos la tipica sensación de que no hemos parado pero que no hemos hecho nada productivo. Esto ocurre tanto a los programadores como a cualquier persona que tiene que realizar un trabajo en el que necesita una concentración mental, por ejemplo a los estudiantes. Hace una semana hice una charla sobre el método en la primera reunión del Agile Spain en Alicante y se apuntó la pareja de uno de los asistentes que era estudiante.

Estudiante era también el creador de la técnica Pomodoro, Francesco Cirillo cuando en 1992 vió que tanto él como sus compañeros de estudio no eran capaces de estar concentrados sin levantar la cabeza más de 10 minutos seguidos. Para intentar mejorar esta marca (10 minutos) usó un reloj de cocina con forma de tomate y lo programó 25 minutos para que le sonara cuando habia terminado su sprint de concentración. Se dió cuenta que era algo que funcionaba e investigó para depurar esta ya famosa técnica. Todos los detalles estan en su web oficial.

¿Serías capaz tu de estar 25 minutos seguidos programando/analizando/testeando/estudiando…. sin cambiar tu mente de asunto? Si lo consigues ¡Felicidades !. Seguramente  te habrás dado cuenta cuanta de que estas siendo productivo, que el trabajo avanza y es más, que estas empezando a disfrutar de tu trabajo. Este estado mental  es llamado flujo y es muy dificil de conseguir en circunstancias normales.  Lo normal es que al primer intento no consigas completar un pomodoro y que una de las dos tipos de interrupciones te ataque en mitad de uno.

Francisco Cirillo define como interrupciones internas las que tu mente te lanza (“hay que ir a por agua”, “vamos a ver ese email que nos han enviado”, “tengo pis”, “voy a llamar a mi chica”…). Las interrupciones externas son las que producen otros agentes externos, dicese jefes o compañeros (“tienes que ponerte en contacto con este cliente”, “¿me ayudas a corregir esto?”, “¿Qué piensas de esta decision de diseño?…”). La tecnica dice que esas interrupciones hay que anotarlas en una lista de tareas no previstas e intentar seguir con la mente enfocada en la tarea en cuestión. Puede parecer una utopía pero la mayor parte de las tareas pueden retrasarse hasta que estos 25 minutos terminen. Es importante demostrar a esos agentes externos que sus peticiones van a ser igualmente satisfechas, sólo que cómo máximo 25 minutos más tarde.

¿Qué pasa cuando suena el reloj y han pasado los 25 minutos? Pues anotas una crucecita al lado de la tarea en la que estás o que has completado y descansas. Te mereces un descanso de 3 a 5 minutos en los que puedes ir a por agua, al aseo, ver ese video  de youtube que te han enviado, mirar por la ventana,… Lo que quieras que no requiera concentración mental. Si eres un samurai total del pomodoro y completas ¡4 pomodoros!  sal a la calle, respira hondo y sientete orgulloso por haberlo conseguido mientras te tomas un café, te comes el almuerzo o lo que te dé la gana.Tienes de 15 a 30 minutos de descanso por tu alta productividad.  Te lo mereces.

¿Qué pasa cuando llega una interrupción que no puedes simplemente apuntarla e ignorarla? Pues que te han roto el pomodoro. Con una mezcla entre resignación y  pequeño cabreo, vuelves a poner el reloj en marcha y esos 25 minutos empiezan a contar. Quizá mejor suerte en el siguiente.

Puede parecer que con tanto descanso, se está uno tocando las bowlings mientras que el resto de compañeros no se levantan de su silla. Nada más lejos de la realidad. Todos lo que conozco que usan la técnica dicen que cuando en un día se han hecho más de 8 pomodoros (tarea algo idilica) sólo tienen ganas de meter la cabeza en un barreño de agua con hielo y las tareas de su kanban van pasando a completado a una velocidad absurda.

En el libro de la técnica (gratuita su versión online) indica cómo hacer anotaciones para ver el avance con el dominio de la técnica. Propone anotaciones con un simbolo las interrupciones internas y con otro las externas para intentar disminuir ese número cada vez. Tambien se puede guardar el numero de pomodoros completados e interrumpidos. Todo esto permite mejorarse día a día. Según mi propia experiencia, el conseguir más de 3 pomodoros completos el primer dia puede ser tarea ardua. Siempre hay que conseguir más pomodoros que el día anterior. Como dice David Bonilla en su blog ¡Protege tus pomodoros!.

Intenta juntar varias tareas relacionadas que puedan llenar un pomodoro. Si te sobra un poco de tiempo, dedicalo a revisar el trabajo que has realizado para completar los 25 minutos. Un pomodoro es indivisible.

Para los que conozcan Scrum, la tecnica del pomodoro me suena al concepto del sprint. En un sprint de Scrum, las tareas están definidas en un intervalo concreto (2-4 semanas) de tal modo que si llegan nuevos requerimientos, no se interrumpe el trabajo de ese sprint para adaptarlos sino que se espera al siguiente.

Se me ocurren varios hilos de investigacion que me parecen interesantes y espero poder dedicarle atención en breve:

  • Cómo aplicarlo al trabajo por parejas (Pair Programming). Este libro parece interesante. Intentaré echarle un vistazo.
  • Cómo aplicarlo al trabajo de un equipo scrum.
  • Cómo aplicarlo al TDD (¿se usan pomodoros distintos para la generación de test, para la codificación y refactorización?)
  • Qué relacion tiene entre la velocidad de un equipo ágil y el número de pomodoros que son capaces de completar. (Sé que hay alguien que lo está investigando pero me falta su nombre)

Espero poder ampliar y corregir este post. O quizé mejor, escribir otro para explicar alguno de los puntos que investigue.

Espero vuestros comentarios!!