domingo, 29 de junio de 2014

¿Cómo puede un enfoque ágil aumentar la productividad?


Cuando se plantea una mejora de un proceso, se trate de un proceso de producción o mantenimiento, o un proceso asociado a un servicio, uno de los objetivos protagonistas para impulsar la iniciativa de mejora es "conseguir un aumento de la productividad", sin sacrificar la calidad, y más aun, si es posible incluso de paso aumentando la calidad.

Sin entrar en las múltiples definiciones de la palara productividad o en los términos específicos derivados de ella, para lo que sigue de este post me quedo con la acepción económica de la palabra productividad ofrecida por la RAE: "Relación entre lo producido y los medios empleados, tales como mano de obra, materiales, energía, etc. La productividad de la cadena de montaje es de doce televisores por operario y hora".


A cualquier directivo le gustaría escuchar algo al estilo de lo siguiente: "con el enfoque ágil se consigue un aumento de un 40% de la productividad". Sin embargo, en muchos contextos es muy difícil hacer una medición tan precisa como esa. Primero simplemente porque las unidades de trabajo (requisitos, indicencias, tickets, expedientes, informes, o lo que sea que el equipo de trabajo genera o atiende), no son iguales, ni siquiera uniformes, es decir, no se trata de producir televisores, o poner un ladrillo sobre otro :-). Así pues cada unidad de trabajo requiere un esfuerzo diferente. Por otra parte, tampoco es muy certero hacer una comparación entre la productividad que se tiene en un determinado momento y luego en otro, especialmente porque el contexto puede no ser comparable, por ejemplo, los equipos, la tecnología, los proyectos, los clientes, etc, probablemente no serán los mismos en ambos momentos. Además, es importante destacar que cada equipo de trabajo, y más aún, cada línea de trabajo (cada proyecto, producto o servicio) encargada a un equipo de trabajo tiene su propio contexto, el cual condicionará la mejora de productividad que se pueda conseguir en dicho contexto.


Así pues, no sería capaz de prometer un aumento concreto de productividad en un equipo de trabajo, sin embargo, puedo describir por qué un enfoque ágil, sin lugar a dudas, generará un aumento en la productividad de cualquier equipo de trabajo.Obviamente, me refiero a un aumento de productividad que no implica aumentar los resursos o el personal, ni trabajar más horas, sino que la estrategia es ahorrar esfuerzo mal invertido para aprovecharlo invirtiéndolo correctamente, o mejorar el desempeño el equipo y de sus integrantes mediante una mejor organización del trabajo.

Para argumentar la potencial contribución que el enfoque ágil puede hacer en cuanto a productividad me basaré en las prácticas ágiles catalogadas en AgileRoadmap+ una herramienta que hemos desarrollado para evaluar la aplicación de prácticas ágiles. Cada práctica constituye una oportunidad de mejora, sin embargo, su efectividad podría variar según el contexto y dependiendo de la intensidad con la que se aplica la práctica.

Por lo tanto, si nuestro objetivo es aumentar la productividad, a continuación se indican en orden de mayor a menor contribución, qué prácticas ágiles contribuyen a conseguir este objetivo, y cómo.



Práctica ágil
Cómo contribuye a aumentar la productividad
PRA01. Promover la sencillez en todos los aspectos. Ofrecer la solución más simple y mínima que pueda ser satisfactoria para el cliente. Cuando ni el cliente ni el equipo de trabajo estudian la posibilidad de postergar o incluso quitar elementos prescindibles en cuanto al resultado esperado se corre un alto riesgo de invertir esfuerzo en esos aspectos que probablemente no generan valor, y que además posiblemente complicarán el trabajo. Ese esfuerzo ahorrado en elementos no imprescindibles puede ser muy significativo.
PRA07. Evitar invertir esfuerzo en adelantar trabajo que no esté comprometido y/o no esté cercano a su entrega. El esfuerzo invertido en realizar trabajo con demasiada anticipación tiene un alto riesgo de ser desperdiciado. Si el contexto es cambiante dicho trabajo puede ir perdiendo prioridad por otros trabajos que aparezcan, puede quedar obsoleto por las modificaciones que  se requieran al intentar aprovechar dicho trabajo adelantado, o incluso pueden que nunca llegue aprovecharse.
PRA28. Documentar, pero solo lo estrictamente necesario. Que sea rentable el aprovechamiento de la documentación respecto del esfuerzo asociado a elaborarla. La documentación se puede aprovechar durante el proceso realizado para generar el resultado, o puede llegar a aprovecharse como acompañamiento del resultado. En ambos casos podríamos llegar a rentabilizar el esfuerzo invertido en documentar.  Sin embargo, cuando no se consigue dicha rentabilización debería considerarse una reducción o eliminación de cierta documentación, ahorrando esfuerzo invertido en su elaboración.  
PRA02. Abordar y entregar trabajo terminado de forma incremental. Cuando la entrega del resultado se hace de forma incremental se tiene la oportunidad de confirmar (o no) la conveniencia de invertir esfuerzo en trabajo previsto anteriormente. Así, es más seguro avanzar hacia el resultado mitigando el riesgo de invertir esfuerzo en elementos que no aportarán valor y al mismo tiempo poder incluso reemplazarlos por otros que se descubran de mayor interés.
PRA10. Limitar el trabajo en proceso (WIP), es decir, la cantidad de unidades de trabajo que tiene el equipo en una determinada actividad Tanto a nivel de trabajo encargado a un equipo como a nivel de trabajo encargado a una persona, el hecho de estar cambiando de un trabajo a otro en corto tiempo (en el mismo día o semana) afecta negativamente el rendimiento. La supervisión y organización del trabajo, para limitar o reducir los trabajos que debe estar realizando un equipo o una persona simultáneamente puede mejorar significativamente el desempeño.
PRA20. El equipo se auto-organiza y toma las decisiones técnicas Cuando los miembros del equipo no son proactivos y esperan siempre por instrucciones respecto de quién, cómo y cuándo se debe realizar ciertas tareas técnicas, en esta situación se corre el riesgo que se produzcan esperas que lleven al equipo a ocuparse de trabajos que quizás son menos prioritarios que aquellos por los cuales están esperando instrucciones.
PRA26. Que los integrantes del equipo puedan encargarse de diferentes tipos de actividades (ojalá de todas), aunque puedan ser especialistas en alguna(s) de ellas. Durante un proceso es natural que se presenten situaciones en las cuales la carga de trabajo es significativamente diferente en las diferentes actividades. Un cuello de botella en una actividad puede conllevar a que los integrantes del equipo que no realizan dicha actividad deban parar para ocuparse en otros trabajos mientras se resuelve el cuello de botella. Cuando los integrantes de un equipo pueden echar una mano en cualquier actividad, se garantiza que el proceso puede recuperarse rápidamente de cualquier cuello de botella, invirtiendo esfuerzo en la actividad afectada.  
PRA11. Formar equipos pequeños y procurar que mantengan sus integrantes. En procesos que requieren un trabajo muy colaborativo, la comunicación entre los integrantes del equipo es esencial. Evidentemente en un equipo pequeño (p.e. no más de 10 integrantes) la comunicación es más fluida, especialmente cuando hay que explicar y llegar a acuerdos en reuniones.
PRA25. Que el equipo sume entre sus miembros las habilidades para abordar todas las actividades necesarias para terminar el trabajo. Cuando el equipo no tiene algún conocimiento o habilidad entre sus miembros probablemente dependerá de otra persona o equipo (interno o externo) para poder continuar o terminar su trabajo. Los protocolos asociados a la solicitud y recepción del trabajo realizado fuera del equipo provocarán posiblemente esperas o cambios de trabajo mientras no se reciba el trabajo encargado.
PRA41. Promover que los miembros del equipo en su trabajo lleguen a conocer todas las partes del producto o servicio que han sido encargadas al equipo. Otra situación que puede provocar una espera para continuar o terminar un trabajo es cuando en el equipos hay integrantes que tienen la exclusividad en cuanto a conocimiento y habilidades para abordar el trabajo en una parte del producto o servicio encargado al equipo.  
PRA22. Co-localización de los miembros del equipo, todo el equipo trabajando en el mismo espacio físico La comunicación cara-a-cara es el medio de comunicación más eficiente. Cuando el equipo no está co-localizado existe el riesgo que estemos invirtiendo más tiempo del necesario para tomar decisiones o comunicar ideas, especialmente cuando esto obliga a una mayor elaboración de comunicación textual. Sin embargo, no todos los actos de comunicación requieren una comunicación presencial cara-a-cada y pueden realizarse con otros medios tales como el chat, email, o incluso videoconferencia.  Es importante tener acordados claramente qué medios deben utilizarse y en qué situaciones.
PRA23. Contar con un espacio físico de trabajo que favorezca la interacción entre los miembros del equipo El espacio de trabajo también puede ser una barrera para colaboración entre los miembros del equipo (incluso cuando está ya co-localizados). Así pues, es importante que el espacio físico adecuado complemente la co-localización del equipo.
PRA37. Establecer una disciplina de aprovechamiento de las reuniones Esta práctica contrarresta el posible efecto negativo que puede generarse cuando un equipo no está habituado a realizar reuniones o simplemente cuando estando habituado, sus reuniones tienden a ser largas y dudosamente productivas. Debe implantarse una disciplina que asegure que las reuniones sean productivas. Uno de los aspectos claves es que cada reunión cuente con un buen moderador, que fije lo objetivos, regule las intervenciones, esté vigilante del tiempo y del progreso adecuado de la reunión, etc.  
PRA12. Acotar el ámbito de trabajo de cada equipo. En caso de productos o servicios de gran envergadura si se tiene bastante personal, lo recomendable es formar equipos encargados de ciertas áreas. Esto favorecerá la especialización del trabajo en dichas áreas pero no necesariamente en que dicha especialización recaiga en una sola persona. Con lo cual se mantiene la ventaja que no dependemos de una persona y en caso de no estar disponible se genere una espera.



Patricio Letelier

domingo, 8 de junio de 2014

¿Por qué un enfoque ágil permite gestionar mejor los cambios en un proyecto?

El desarrollo y mantenimiento de productos o servicios en la actualidad  claramente están sometidos a importantes desafíos en cuanto a "time to market" u oportunidades de mercado, nuevas tecnologías, y competividad (que incluye, entre otros, aspectos tales como productividad, precios, costos y calidad). En un proyecto de desarrollo o mantenimiento los cambios pueden ser de diferentes tipos, por ejemplo, nuevos requisitos, cambios en requisitos ya existentes, o pérdida de prioridad de requisitos (pudiendo incluso quedar fuera del alcance del proyecto). Sí, alguien podría pensar que simplemente si existe un contrato asociado y éste es de alcance fijo, entonces no se deberían admitir cambios. Sin embargo, el solo hecho de no abordar los cambios que se presenten podría comprometer el éxito del proyecto, es decir, se podría quizás cumplir con el contrato, pero el resultado, en cuanto a la satisfacción y/o rentabilización de parte del cliente, podría ser un fracaso.

Un enfoque ágil para la gestión del proyecto no evitará que se presenten los cambios :-), sin embargo, por sus características ofrecerá un entorno más favorable para gestionar de forma efectiva dichos cambios.

Basándome en mi lista de prácticas ágiles a continuación expondré qué prácticas ágiles contribuyen más directamente a gestionar los cambios en  un proyecto. Podéis consultar la lista completa de prácticas en "Carta de prácticas ágiles: arma tu propio menú" y además, en nuestro sitio AgileRoadmap+ podéis evaluar qué prácticas os podrían ayudar a mejorar en vuestro contexto y establecer un orden para su implantación.

En mi opinión hay dos aspectos claves para conseguir que la gestión de los cambios en un proyecto resulte efectiva: (a) que los cambios aparezcan tempranamente y, (b) que lo que se tenga que cambiar no suponga demasiado re-trabajo.

A. Prácticas ágiles que ayudan a que los cambios aparezcan cuanto antes, especialmente aquellos que puedan tener mayor impacto en el proyecto.

La visualización de todo el trabajo pendiente encargado al equipo (PRA15) y la gestión continua y multicriterio del trabajo pendiente para que esté siempre debidamente priorizado (PRA9), ambas prácticas aseguran que siempre se está trabajando en lo más oportuno desde el comienzo hasta el final del proyecto. Al arrancar el proyecto se debe trabajar en lo más determinante para el éxito del proyecto, y en este ámbito de trabajo es precisamente donde pueden aparecer los cambios de mayor impacto. En la medida que el proyecto avanza se abordarán otros trabajos igualmente necesarios pero menos protagonistas en cuanto a la esencia del proyecto, con lo cual si aparecen cambios en ellos no deberían ser de tanto impacto.

El seguimiento continuo (frecuencia de días, no semanas) (PRA13), el abordar y entregar trabajo terminado de forma incremental (PRA2) y hacer entregas frecuentes de parte del resultado final (PRA3), las reuniones diarias del equipo (PRA14) y reuniones de revisión con el equipo y el cliente al terminar parte del trabajo (PRA19), todas estas prácticas contribuyen a la evaluación del trabajo realizado y a que aparezcan cuanto antes los posibles cambios.

B. Prácticas ágiles que contribuyen a que los cambios no supongan demasiado re-trabajo, o que no supongan desechar trabajo ya terminado.

Hay que evitar invertir esfuerzo en adelantar trabajo que no esté comprometido y/o no esté cercano a su entrega (PRA7). Muchas veces ocurre que la preparación por adelantado de un trabajo, particularmente su especificación detallada, puede quedar obsoleta o el trabajo en sí mismo puede haber perdido prioridad cuando llega el momento en el cual se suponía que se completaría. Promover la sencillez en todos los aspectos para ofrecer la solución más simple y mínima que pueda ser satisfactoria para el cliente (PRA1), esto contribuye a no embarcarse en una entrega demasiado ambiciosa incluyendo elementos que podrían ser prescindibles. Hay una ley de Murphy que establece que cualquier sistema complejo que funciona invariablemente ha evolucionado desde un sistema simple que funcionaba, es decir, cambiar hacia algo más complejo siempre será más conveniente que intentar cambiar algo que, de entrada ya es complejo. Finalmente, la práctica que nos recomienda abordar y entregar trabajo terminado de forma incremental (PRA2), nos abre un camino de desarrollo o mantenimiento incremental, el cual junto con lo anteriormente comentado promoverá que nos centremos en el trabajo que hemos determinado para el corto plazo y a su vez que posibles mejoras interesantes pero no imprescindibles se contemplen para incrementos posteriores.


Patricio Letelier