¿De donde surge el enfoque ágil?
Una metodología sintetiza el cúmulo de conocimientos adquiridos alrededor de un tema en particular.
En el ámbito de negocios, una metodología normalmente integra procesos, criterios, procedimientos, guías, que se usan para manejar o desarrollar algún tipo determinado de servicio o producto de negocio.
Ahora bien y sin querer entrar en definiciones filosóficas de conceptos que van de marco de referencia, enfoque, metodología, ciclo de vida, etc. vamos a explorar el concepto de filosofía ágil.
En el ámbito de desarrollo de Software se conocen en general dos tipos de enfoques mayores – el desarrollo en cascada y el desarrollo en segmentos repetitivos (incremental). En su sentido más amplio, el enfoque de desarrollo en cascada es la secuencia de las fases de análisis, diseño, construcción, pruebas e implementación. El enfoque iterativo se refiere a procesos que crean una solución que entrega valor anticipado al negocio pero de una solución parcial y que gradualmente va incorporando funcionalidades complementarias de un entregable mayor a través de una secuencia de iteraciones.
La revolución ágil empezó, allá por finales de los años 80s y se consolido en el año 2001, como resultado de un movimiento contra-cultural en el ámbito de negocios. A finales de los 80s un numero creciente de personas empezaron a cuestionar el proceso de desarrollo de software por ser extremadamente pesado. Surgieron propuestas como la programación extrema o incluso scrum. Con algunos nuevos paradigmas, como que la documentación de un proyecto no genera valor sino que el valor se obtiene de contar con Software funcionando que sea útil para el negocio.
Por ejemplo, digamos que un proyecto ha estado en ejecución por 6 meses, en ese tiempo ya se concluyó el análisis, el diseño, se está en medio de la construcción e incluso han iniciado algunas pruebas. En este punto quizás sientes que has venido progresando satisfactoriamente. Sin embargo desde un punto de vista de la filosofía ágil, hasta ahora, no has entregado algo que genere valor al negocio, es decir, que el negocio pueda traducir en algo valioso. El valor verdadero surge de una solución funcionando. Así que en lugar de generar documentación tradicional para el proyecto, Ágil se enfoca en producir código que funcione, con la documentación mínima indispensable para el proyecto (no la elimina del todo) . De hecho, un proyecto ágil cuyas iteraciones se hayan definido en un mes de duración, al final de los seis meses, puede haber entregado 6 iteraciones, por lo que una solución parcial está ha estado funcionando desde el fin de la iteración uno y ha tenido 6 incrementos de funcionalidad adicional que incrementa el valor generado para el negocio. Los que están a favor de la filosofía o enfoques ágiles, argumentan que una solución funcionando es mejor que una documentación exhaustiva que en muchos casos, se convierte en letra muerta casi de inmediato.
Las 4 creencias fundamentales de cualquier agilista
Hay cuatro creencias generales que comparten las filosofías ligeras:
- Desarrollo en ciclos cortos de tiempo
- Valorar el trabajo en colaboración
- Involucrar al cliente
- Fomentar la simplicidad
Desarrollo en ciclos cortos
En un enfoque ágil las iteraciones (sprints) pueden tomar entre 2 y 8 semanas, siempre con preferencia al tiempo más corto. Una solución parcial muy elemental, debe estar funcionando en un periodo de tiempo corto y a través de iteraciones subsecuentes, se van agregando funciones complementarias que en suma conforma la versión final de la solución.
Es importante anotar que la primera iteración, conocida como la iteración cero, sirve para hacer los diseños técnicos necesarios como pueden ser la arquitectura de datos, la arquitectura de infraestructura, la arquitectura de seguridad, el mapa de funcionalidades entre otra cosas importantes para poder crear la solución. Normalmente esta iteración es la de mayor longitud en un proyecto ágil, pudiendo tomar entre 4 y 6 semanas, siempre con preferencia por el lapso menor.
Valorar a la gente
En un enfoque ágil, y desde mi punto de vista en cualquier interacción humana sea ágil o no, la gente debe ser valorada y tratada con respeto. Los gerentes o directivos deben confiar en que el equipo puede hacer un buen trabajo y entregar una solución eficiente y efectiva para el negocio. Los equipos ágiles trabajan en un ambiente desafiante pero a un ritmo continuo, que teóricamente puede ser sostenido indefinidamente.
Este quizás es el mayor desafío que enfrentan las organizaciones, la cultura debe estar habilitada para trabajar en un ambiente de confianza donde la gente puede compartir sus opiniones, con la certeza de que serán escuchados, de que serán respetados y de que se les dejará trabajar. Es decir, es un ambiente donde no hay micromanagement, ni reportes periódicos en donde la gente justifica su turno de 8 horas. Lo que hay son resultados semanales con revisiones diarias en donde la gente que enfrenta un problema, tiene la confianza de pedir ayuda sin sentirse exhibido o incompetente.
Involucrar al cliente
Si vas a alcanzar resultados rápidos, el cliente debe ser parte integral del equipo de trabajo. De hecho, el cliente deberían de ser asignado tiempo completo y ubicado en el mismo espacio físico, con el resto del equipo.
Esto fomenta el sentido de pertenencia, el trabajo en equipo y agiliza las definiciones y la toma de decisiones.
La comunicación en un equipo ágil normalmente es low-tech – high touch. Esto quiere decir que si yo programador, tengo una duda respecto a cualquier aspecto de negocio, solo tengo que pedirle al cliente o a la persona designada por el cliente, que conversemos un momento para clarificar las dudas. Ahí, justo donde está el resto del equipo. Quienes además escuchan los puntos que estamos conversando, con lo que ocurre un proceso de comunicación “por ósmosis”
La comunicación por ósmosis o, como la denominó Alistar Cockburn comunicación osmótica, significa que la información fluye en el fondo auditivo de los miembros del equipo, de tal forma que ellos captan la información relevante, al escuchar las conversaciones de fondo
Fomentar la simplicidad
La creencia básica es que si tienes que elegir entre crear algo de manera sofisticada o simple, elige siempre lo más sencillo. Los requerimientos deben ser simples, el diseño del plan debe ser simple y las técnicas de codificación deberían de ser simples.
Esto implica que en los miembros del equipo prevalezca un enfoque pragmático sobre uno dogmático. Vamos a documentar lo indispensable, de acuerdo, eso quiere decir que si escribimos algo significativo en el pizarrón de la sala de trabajo, podemos tomar una foto del diagrama y compartirlo. Eso quiere decir que tenemos reuniones diarias de 15 minutos en donde todos los miembros del equipo interactúan dinámicamente para poder visualizar el estado de la iteración y ahí mismo decidir acciones que resuelvan incidentes o bien establecer un espacio para profundizar en el análisis. Significa que el estado del proyecto está a la vista de todos, en tableros visuales, que se generan “naturalmente” como producto de este dialogo continuo del equipo. Significa que todos estamos de acuerdo respecto a lo que significa concluir una asignación.
En mi experiencia
Desde que descubrí el enfoque ágil y me familiarice con el manifiesto ágil publicado por en la agilealliance.org me sentí fascinado por los principios y fundamentos de este nuevo enfoque de trabajo. En este sentido debo decir que aunque tengo muchos años de experiencia 23+ en proyectos de muy diversas índoles, desde un principio consideré que el enfoque ágil no es privativo del desarrollo de software.
Así, dado mi interés en el tema, tuve la fortuna de participar en mi primer curso relacionado con la filosofía con uno de los precursores de este movimiento, un verdadero maestro que se llama Jim Highsmith.
Highsmith compartió de manera muy amena y en un taller práctico los fundamentos de la filosofía ágil aplicada a la disciplina de dirección de proyectos. En este taller confirmé mi creencia de que esta filosofía puede ser aplicada a algunos aspectos de negocio y desde ahí he desarrollado algunos planteamientos de su aplicación específica a otros contextos con cierto nivel de éxito.
Aunque para muchos, el hablar de temas ágiles es sinónimo de anarquía, en realidad representa una “nueva” forma de trabajo, que implica una nueva disciplina y desarrollar otras habilidades específicas para asegurar su correcta utilización y que genere el máximo de beneficios para el negocio. Al igual que el uso de un enfoque de dirección de proyectos tradicional, los proyectos que usan un enfoque ágil, pueden fallar. Sin embargo, a diferencia del primer caso, los impactos de un error de estimación o de cálculo en una iteración de 4 semanas pueden ser identificados y contenidos más rápidamente y con un impacto varias veces menor que en con un enfoque tradicional.
Es importante tomar en cuenta dos puntos:
- No hay balas de plata: Este enfoque puede fallar al igual que falla cualquier tipo de proyecto. Toma en cuenta que la dirección de proyectos es en parte una ciencia pero en otra parte es un arte. El enfoque ágil debe ser visto como una disciplina que añade instrumental a la caja de herramientas que tenemos para ofrecer soluciones acordes al mundo que nos toco vivir.
- ¿Enfoque ágil o tradicional? ¿Cuál es mejor? El mejor enfoque es el que te funciona y da resultados PUNTO. El secreto de las buenas prácticas es que se vuelven mejores prácticas cuando las usas y éstas te dan resultados. Luego entonces, no veas los enfoques tradicional y ágil como antagonistas. Usa lo mejor de los dos mundos en beneficio de tu proyecto y de tu organización.
Negocios ágiles
No voy a repetir las características del entorno de negocios actual. Hoy los negocios, más que nunca necesitan tener un enfoque ágil. Por eso, el contar con métodos ágiles para desarrollar productos y servicios representa, en verdad, una ventaja competitiva sostenible.
En nuestra práctica de consultoría hemos extrapolado la filosofía ágil, que nació en la industria de software a otros aspectos de negocio como el diseño e implementación de PMOs, el modelado de procesos de negocio y el diseño de campañas de marketing digital. En todos los casos, hemos tenido resultados satisfactorios desde varios puntos de vista.
¿Y tu organización, ya es lo suficientemente ágil?