El desarrollo agile está reconocido como una de las metodologías de trabajo más exitosas de los últimos años. Casi todas las organizaciones intentan implantarlo en un momento u otro. Sin embargo, a pesar de sus muchas ventajas, implantarlo con éxito es una tarea compleja y muchos equipos se topan con demasiadas dificultades, por lo que terminan abandonando o apostando por un sucedáneo algo más sencillo pero que no aporta las ventajas competitivas que se vaticinaron.
En los últimos diez años he participado de forma activa en procesos agile en diferentes roles, formatos y organizaciones, incluyendo tanto posiciones dentro del equipo de desarrollo como en el equipo directivo que ha llevado a cabo la implantación. Quisiera compartir, a continuación, algunas de las claves que creo que pueden llevar al uso efectivo de esta metodología y que han permitido a OnTruck alcanzar un alto grado de madurez tecnológica, de equipo y de procesos en tan solo 12 meses.
¿Cuáles son las principales características de la metodología agile?
La metodología agile en las TIC surge, principalmente, como reacción a procesos demasiado burocráticos que no permiten innovar a la velocidad requerida por el mercado, y que asumen que es posible capturar correctamente las especificaciones del problema y desarrollar software que las implemente a la primera. Dado que la realidad de la industria es que las especificaciones no son casi nunca ni correctas, ni estables y que la implementación posterior tampoco es 100% perfecta, la metodología agile incorpora tres características muy poderosas para hacer frente a esa situación:
- Iteraciones rápidas para reaccionar tanto a cambios en el mercado y las especificaciones como a errores internos en el análisis y desarrollo de la solución.
- Involucración de tantos miembros del equipo como sea posible en todas las fases del proceso de desarrollo, para conseguir transferir el contexto y el problema y mejorar la calidad del resultado.
- Reflexión periódica conjunta sobre el proceso y cómo mejorarlo para aumentar la efectividad y eficiencia del equipo.
¿Cuáles son las fases en el desarrollo agile de un producto?
A la hora de plantearse introducir una metodología agile es importante familiarizarse con todas las fases y conocer las implicaciones y dificultades ocultas que entrañan, para evitar las trampas que llevan a un sucedáneo. Las fases más importantes son las siguientes:
- Análisis de un problema/reto y de un contexto: el hecho de que la metodología sea ágil, no implica que haya que saltarse ni minimizar esta fase o delegársela a una única persona que generará después una «especificación». Al contrario, es clave que se involucren cuantos más miembros del equipo, mejor, pues ello redundará en la elección correcta de la arquitectura y de las micro-decisiones que tienen todo desarrollo.
- Generación de una solución que añada valor al cliente: esta es otra fase donde, por acortar tiempos y acelerar, se suele dejar fuera a miembros del equipo que podrían haber aportado observaciones cruciales. Hay que evitar el delegar el diseño de la solución a un subconjunto del equipo, sin que estén presentes miembros de todas las áreas. Otra de las claves en esta fase es intentar encontrar la solución más pequeña posible al problema, evitando el añadir requisitos funcionales o técnicos espurios. El contar con todo el equipo en esta fase va a garantizar también una estimación más realista, lo que redundará en mayores garantías de que el proyecto se realice en los tiempos acordados.
- Desarrollo de la solución: aquí es clave que los miembros del equipo trabajen de modo conjunto, apoyándose y contrastando bloqueos y puntos conflictivos a diario, integrando a menudo, para evitar sorpresas de última hora al unir las distintas piezas.
- Comprobación de que lo desarrollado cumple lo acordado: en la metodología agile. Esta fase se realiza muy a menudo y es por tanto sumamente útil el contar con herramientas automatizadas que permitan llevarla a cabo, en el menor tiempo posible, y con las mayores garantías.
- Lanzamiento de la solución: esta fase es clave a la hora de garantizar la satisfacción del cliente y suele dejarse de lado, pues a menudo se observa que los equipos agile consideran que el trabajo terminó cuando el software quedó desplegado. Sin embargo, es vital el ejecutar un plan de acción durante los primeros días y/o semanas, incluyendo elementos como entrenamiento a otros departamentos, comunicaciones de marketing, etc.
- Reflexión conjunta sobre cómo mejorar la eficiencia de la metodología de trabajo: es lo principal de toda metodología ágil y muy a menudo se observa su ausencia o falta de eficacia en aquellas implantaciones defectuosas. Si el equipo no tiene experiencia en reuniones de retrospectiva será esencial contar con un asesor experto que consiga generar las dinámicas adecuadas para la mejora continua.
- Comprobación de que la solución efectivamente resuelve el problema/reto planteado: algo que normalmente se olvida, pero sumamente importante si se quiere que el producto mejore continuamente. Es muy común considerar un desarrollo como terminado al subir el software a producción y olvidarse de monitorizar durante un tiempo si efectivamente ese desarrollo soluciona el problema que lo motivó.
- Mantenimiento de la solución: una causa común del fracaso de implantación de esta metodología es el olvidarse de contar con el impacto que genera el mantenimiento de todos los desarrollos pasados que siguen activos, pues generará un trabajo con el que no se contaba con prioridad alta y descarrilará la iteración en curso.
¿Qué dificultades suelen presentarse al implantar una metodología agile?
A la hora de poner en práctica este tipo de metodología laboral es importante estar familiarizado con las dificultades que aparecerán, para construir planes que permitan paliarlas y garantizar el éxito de la implantación. Hay dos tipos de dificultades: extrínsecas al equipo, que deben ser resueltas por los gestores o implantadores; e intrínsecas, que requieren apoyo hasta que el equipo las supere por sí mismo.
Dentro de las extrínsecas, las principales dificultades vendrán del hecho de que la metodología no es consistente con otros procesos en la empresa y aparecen fricciones. Previo a (y durante) una implantación, deben considerarse aspectos como los mecanismos de delegación de autonomía y confianza, la gestión por parte de la empresa de las situaciones donde hay fracasos o errores y las interacciones entre equipos, tanto para la ejecución de un proyecto como en el día a día.
Además, es importante dedicar tiempo a alinear los incentivos y las revisiones del desempeño con el concepto de trabajo en equipo en vez del logro individual. Aquí es importante emplear metodologías como las revisiones 360, donde no solo el supervisor valora el desempeño de un empleado sino también sus compañeros o subordinados.
A nivel más técnico, es importante que tanto la arquitectura de las soluciones como las prácticas en despliegues y aprovisionamiento de sistemas permitan iteraciones rápidas. De nada sirven unos procesos perfectos si luego hay que esperar una semana porque «pre-pro» está caído o lo está usando otro equipo.
A nivel intrínseco las principales dificultades aparecen debido a la falta de experiencia de los miembros del equipo con dinámicas de cooperación grupal o asunción de responsabilidades sobre el resultado final. Cuando el proceso impide escurrir el bulto ante un fracaso es necesario un salto de madurez para el que muchos no están preparados. Es ahí, y en la adaptación a los distintos ritmos necesarios en cada fase, donde un implantador experimentado puede aportar ese extra que lleve al éxito.
Samuel Fuentes
Cofundador y CTO de OnTruck