Empezar a terminar
El trabajo de un arquitecto IT en una empresa requiere muchas veces de enfrentarse a tareas de diferente índole, tamaño o prioridad. Estas, llegando a "la mesa de entrada" del departamento de arquitectura se convierte de manera muy fácil en un continuo inicio de nuevas actividades, y cuando nos queremos dar cuenta tenemos en nuestro backlog decenas de tareas sin terminar, lo que nos termina convirtiendo en un cuello de botella, y nos transforma en una pelota de stress y nervios.
Pensando en como resolver este tema y comenzar a destrabar tareas y ser mas eficientes, es necesario manejar de mejor manera el flujo de actividades que pasa por arquitectura.
Una alternativa podría ser buscar la forma de que nos lleguen menos tarea, revisando si debiéramos hacer todo lo que hacemos, y definiendo claramente los procesos y límites del área. Muchas veces esto no es posible o, aún haciéndolo, seguimos en la misma situación. En estos casos, debemos dejar de empezar una tarea tras otra, y enfocarnos en comenzar a terminarlas. De esta manera seremos mas eficientes, aumentaremos la calidad de lo que producimos, minimizaremos el riesgo de nuestras actividades y reduciremos el nivel de stress al que estamos sometidos.
Gerald M Weinberg, en su libro Quality Software Management - System Thinking estima que el cambio de contexto entre tres tareas nos consume un 40% de nuestro tiempo de trabajo. Esto quiere decir que si tengo un proyecto A, B y C y tenemos 40 hs netas productivas por semana (eso con suerte, muchos tenemos la agenda abarrotada de reuniones y nos quedan menos de 20 hs productivas por semana), estaremos gastando 16 hs en el cambio de contexto entre las tareas, tratando de volver al nivel de conocimiento que teníamos antes de dejarla por iniciar otra actividad. Y solo nos están quedando 8 hs semanales para invertirle a cada proyecto.
Supongamos por un rato que podemos priorizar los proyectos A, B y C del párrafo anterior, y que decidimos arbitrariamente que vamos a hacer una tarea por vez, eliminando el cambio de contexto. En este escenario, tendríamos las 40 hs por semana para cada proyecto, lo que nos permitiría terminar el mas prioritario en menos tiempo. Siguiendo con este ejemplo, y para que nos quede claro el impacto que tiene el multitasking, supongamos que cada uno de los proyectos A, B y C se pueden hacer en 4 hs cada uno, y que el orden en que están nombrados indican su prioridad. Haciéndolo de la forma en que trabajamos habitualmente, los tres en paralelo, la línea de tiempo sería:
Para hacer el ejemplo mas simple, tengamos en cuenta que el cambio de contexto nos lleva una hora (es menos, y depende mucho de las tareas). En este caso, terminaríamos el proyecto A en la hora 19, la tarea B en la 21 y la tarea C en la 23. Pero el proyecto A era el mas prioritario, y solo lo entregamos dos horas antes del C!. Creo que podemos hacerlo mejor.
El siguiente cuadro muestra la línea de tiempo de ejecutar los proyectos anteriores uno a la vez:
Como se ve, se elimina el cambio de contexto, lo que nos produce una mejora enorme en nuestra productividad. El proyecto A lo terminamos en la hora 4 (versus la hora 19 de nuestra forma de trabajo habitual), el B en la hora 8 (versus hora 21), y el C en la hora 12 (versus hora 23).
Se que el ejemplo es bien simple, y que en el día a día trabajamos con tareas y proyectos mas complejos, con interdependencias, y con muchas distracciones que nos distancian de este mundo ideal planteado. Pero ver las cosas de esta manera nos permite acercarnos a una primer aproximación de como mejorar la forma en que hacemos las cosas.
Una buena forma de poner en práctica esta forma de trabajo es seguir los principios de Kanban en nuestro día a día. Lo bueno es que no requiere cambiar de procesos ni estructura. Podemos seguir organizados y trabajando con el mismo proceso, pero debemos hacerlo diferente.
Kanban
Kanban es una derivación de dos palabras japonesas: Kan - visual, y ban - tarjeta, lo que significaría algo como "tarjeta visual" o "visualización a través de tarjetas". Es un enfoque de trabajo basado en principios básicos, que busca asegurar un flujo continuo de actividades, y que las que se realicen primero sean realmente las mas importantes. Esto lo asegura siguiendo 5 principios simples:
- Visualizar el flujo de trabajo, lo que asegura comprender el flujo y como funciona.
- Limitar la cantidad de tarea en curso. Esto asegura que terminemos las tareas mas prioritarias, antes de comenzar con la siguiente tarea, limitando la cantidad de tareas en paralelo, reduciendo el context switch, lo que reduce los errores, el riesgo y los dolores de cabeza.
- Gestionar el flujo, midiendo de manera simple, supervisando la ejecución y mejorando donde sea necesario.
- Explicitar las políticas de proceso. Al visualizar como se trabaja, se hacen explícitos vicios ocultos o problemas no detectados, lo que es un disparador para la mejora.
- Mejorar en forma continua y colaborativa. El proceso debe cambiar y evolucionar de manera continua, y evolucionar en forma constante.