¿Qué es?
Agile es un sistema de trabajo. Permite adaptar la forma de trabajo a las condiciones del proyecto en cada momento.
Por agile entendemos métodos de trabajo donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del proyecto. Cada proyecto es realizado mediante colaboración de equipos multidisciplinares y auto-organizados, en el que el existe un proceso compartido de toma de decisiones. Organiza y reparte el trabajo de una manera rápida.
Esta forma de trabajar surge de la necesidad en el desarrollo de proyectos que precisan de una especial rapidez y flexibilidad en su proceso. En muchas ocasiones, son proyectos relacionados con el desarrollo de software o el mundo de internet. Proyectos en los que el éxito o el fracaso también se mide en la capacidad de ser el primero en lanzar la solución al mercado. Si se llega tarde, puede que lo que se ofrece, sea desde el inicio, un producto obsoleto.
La metodología Agile es un sistema de trabajo que está cambiando el desarrollo de proyectos de muchas empresas, entre ellas, Google, Amazon, Spotify o Microsoft. En IBM les ha servido para ejecutar cambios organizacionales importantes. Son empresas que ya nos indican una filosofía de trabajo, que puede ser muy diferente a la empresa tradicional. Toda empresa que no esté acostumbrada a trabajar bajo estos principios, tiene que acometer, previamente, un cambio cultural.
El papel del equipo directivo de la empresa
Lo más importante para implementar una metodología Agile es el liderazgo y el cambio de cultura empresarial. Saber dialogar y motivar a los equipos para vencer sus reticencias, convencerlos de los beneficios e involucrarlos en el cambio. El compromiso con el modelo es fundamental para su éxito. Como todo cambio importante, como es siempre el cambio cultural, el equipo de dirección de la empresa, tiene que creer primero e impulsar después.
Manifiesto Agile
Agile tiene su origen en febrero de 2001 cuando 17 expertos en desarrollo de software elaboraron, durante un encuentro en Estados Unidos (Utah), un documento a favor de los nuevos métodos ágiles de actuación. El Manifiesto Agile.
Aplicar Agile conlleva cumplir estos 12 principios:
- La prioridad es que el cliente esté satisfecho y siempre informado del estado del proceso.
- Los requisitos del proyecto pueden cambiar y no se verá como un problema, sino como una ventaja competitiva.
- Las entregas se realizan periódicamente y en periodos cortos. La planificación se realizará desde las dos semanas, a los dos meses.
- El equipo debe trabajar de forma conjunta y coordinada.
- Es prioritario motivar al equipo, confiar en los miembros y proporcionarles los recursos o apoyos que necesiten.
- Las reuniones Scrum son el método más efectivo para comunicarse.
- El éxito depende de si el producto final funciona y es satisfactorio.
- Los procesos deben ser sostenibles, tanto en recursos materiales, como en la gestión del tiempo y el ritmo de trabajo.
- En todo proceso o etapa debe prevalecer la excelencia técnica.
- Prevalece la ley de la simplicidad: menos es más.
- La organización de los equipos es esencial para dar con un buen diseño.
- Los tiempos para la reflexión y buscar mejoras es necesario e igual que importante que el resto de fases.
Hay que aclarar que el Manifiesto Agile es una filosofía que enmarca varios sistemas de trabajo, como el Scrum, Kaban, XP, Lean Startup, FDD, ASD, DSDM, RAD y otros más. Los valores y principios derivados de esta declaración son los que rigen las prácticas ágiles en estas formas de trabajar y gestionar proyectos.
Valores
Desde sus inicios, la metodología Agile reivindica 4 valores:


Las interacciones de las personas sobre los procesos y las herramientas.

Hace referencia a la importancia que tiene el personal del equipo de trabajo para dar los resultados esperados. Los individuos capacitados, enfocados y con actitud positiva son los responsables de la culminación exitosa de un proyecto. En cambio, los procesos sirven como guía y las herramientas se emplean para mejorar la eficiencia.
No es un misterio que el siglo pasado las organizaciones comenzaron a dar más reconocimiento a los procesos que a la experiencia, talento y capacidad de los colaboradores. Se basaba en la idea de que se puede alcanzar logros con un staff mediocre.
En función de la creatividad e innovación, los procesos deben ser diseñados para fortalecer al negocio, aprovechar la tecnología y orientar al personal.

Un software en funcionamiento frente a documentación exhaustiva.

Este valor encierra la relevancia que tiene para las empresas la capacidad de ver de antemano las funcionalidades de prototipos o partes de un producto final. Esta condición de retroalimentación permite la gestación de ideas que no parecían factibles inicialmente. Este nivel de detalle no se puede lograr a través de un documento al empezar un proyecto.
La documentación solamente es necesaria para registrar, transferir conocimiento y cumplir la ley. En lo que respecta a la generación de valor del producto, el papeleo no debería interferir en la interacción con los prototipos y la comunicación entre empleados. Por eso tiene que usarse en lo mínimo requerido para dejar que la organización y el personal tengan mayor integración con el sistema.

La participación activa del cliente durante todo el proceso de desarrollo.

Los acuerdos son documentos legales que establecen derechos y responsabilidades entre las partes, pero que no aportan valor. Implementando el modelo ágil, se busca un resultado exitoso mediante la intervención directa con el producto. En este caso, las consecuencias de la generación de valor no están sujetas al control de procesos.
Por este motivo, las prácticas ágiles están especialmente diseñadas para aquellos proyectos que no exigen un elevado nivel de detalle inicial. También son utilizadas para situaciones en que los requerimientos cambiarán mucho por la rapidez con que opera el negocio. En sí, se trata de promover un feedback continuo durante la etapa de desarrollo para optimizar los resultados.

La capacidad de respuesta ante los cambios e imprevistos.

Esta idea pretende darle más importancia a la capacidad de respuesta del trabajo en equipo durante la gestión de proyectos. La metodología Agile se nutre de habilidades como la anticipación y adaptación que difieren de la planificación tradicional que se rige por evitar la desviación del plan establecido.
Este principio deriva de que el desarrollo de software se maneja en contextos que cambian rápidamente y requieren un ajuste continuo a las necesidades que surjan.
Como trabajar en Agile

La metodología agile y en general la cultura agile tiene su inicio en los años 90, cuando se observa una reacción en contra de métodos demasiado estructurados y estrictos como el método waterfall. Este tipo de métodos con una estricta planificación inicial no permitían a los equipos de trabajo adaptarse a los cambios ni reaccionar a nuevas peticiones y demandas. En un sector en el que cada vez se producían más cambios, más radicales y de manera más constante, estas metodologías clásicas no se adaptaban y no proporcionaban un método de trabajo efectivo a los equipos de desarrolladores. Estos planean el trabajo desde el principio, sin lugar a imprevistos. De forma que cuando aparecen, resulta imposible reaccionar a tiempo.
Las metodologías ágiles se basan en un enfoque flexible. Los miembros del equipo trabajan en pequeñas fases y equipos sobre actualizaciones concretas del producto. Después, se testea cada actualización en función de las necesidades del cliente. Esto hace que no nos centramos en un único producto final, que solo se lanza al finalizar el proyecto.
¿La clave de su éxito? Ir probando las distintas funcionalidades del servicio sobre la marcha y medir si está funcionando o no. Lo que se conoce muchas veces, como pivotar sobre una solución, no esperar a que esta sea perfecta. Hay que testear con el mercado, porque lo que para la empresa puede ser algo excelente, no tener gran acogida para el cliente.
El producto final de un proyecto ágil puede perfectamente ser distinto al que se había previsto inicialmente. No obstante, durante los procesos de testeo se sigue trabajando según los requerimientos del cliente. De esta forma, el producto final sigue respondiendo a sus necesidades.
La división de los proyectos se realiza en hitos o tareas. Estas admiten sólo tres estados: pendiente, en proceso o terminada. El tiempo de ejecución debería ser desde pocas horas a no más de unos días, y se resuelven de una en una. Las tareas más próximas a realizar están más definidas que las que abordaremos en semanas o meses.
Se parte de la base de que la empresa tendrá que responder de forma rápida a los cambios del entorno, cada vez más turbulentos. Para ello se dejan abiertas las tareas más alejadas de la línea temporal, aunque con una clara orientación a un objetivo definido.
Los métodos ágiles pasan sí o sí por las reuniones diarias. En estos encuentros, breves y a primera hora de la mañana, los miembros del equipo se informan entre sí del estado de sus tareas. El líder del proyecto adquiere una visión general y puede derivar recursos a aquellas partes que más lo necesiten. Además, fomenta la cohesión de equipo, la participación y la implicación en los proyectos, ya que el mismo proyecto acaba siendo tarea y logro de todos los implicados.
Ventajas
- Mejora de la calidad del producto
Fomenta el enfoque proactivo de los miembros del equipo en la búsqueda de la excelencia del producto. Además, la integración, comprobación y mejora continúa de las propiedades del producto mejora considerablemente el resultado final. Es fácil acomodar cambios en cualquier momento y fase del proyecto. De esta manera se eliminan características innecesarias del producto final.
- Mayor satisfacción del cliente
El cliente está más satisfecho al verse involucrado y comprometido a lo largo de todo el proceso de desarrollo. Mediante varias demostraciones y entregas, el cliente vive a tiempo real las mejoras introducidas en el proceso.
- Mayor motivación de los trabajadores
El trabajo en equipo mejora la motivación de los trabajadores y su implicación con los proyectos. Los equipos de trabajo autogestionados facilitan el desarrollo de la capacidad creativa y de innovación entre sus miembros.
- Trabajo colaborativo
La división del trabajo por distintos equipos y roles, junto al desarrollo de reuniones frecuentes, permite una mejor organización del trabajo. Interacción fuerte y continua entre miembros del equipo.
- Uso de métricas relevantes
Las métricas utilizadas para estimar parámetros como tiempo, coste, rendimiento, etc. son normalmente más reales en proyectos ágiles que en los tradicionales. Gracias a la división en pequeños equipos y fases podemos ser más conscientes de lo que está sucediendo.
- Mayor control y predicción
La oportunidad de revisar y adaptar el producto a lo largo del proceso ágil permite a todos los miembros del proyecto ejercer un mayor control sobre su trabajo. Esto ayuda a mejorar la capacidad de predicción en tiempo y costes.
- Reducción de costes
Por último, la gestión ágil de proyectos elimina prácticamente la posibilidad de fracaso absoluto en el proyecto. Los errores se van identificando a lo largo del desarrollo en lugar de esperar a que el producto esté acabado y toda la inversión realizada.
- Mejora continua
Favorece la revisión y cooperación de muchos miembros de un equipo y su estructuración más flexible permite detectar y solucionar errores de manera más directa.
- El objetivo final puede ser desconocido
Es ideal para aquellos proyectos que no tienen un objetivo o finalidad concreta. Según avance el proyecto, según las necesidades tanto del cliente como del equipo de trabajo, el resultado final será uno u otro.
Sistemas de trabajo
La metodología agile cuenta con una serie de herramientas y técnicas específicas para asegurar la calidad y promover un desarrollo más ágil. Existe una gran variedad de técnicas que cumplen los principios de la metodología ágil, pero las tres más usadas son:
Scrum
Se caracteriza por su estrategia de desarrollo incremental. El proyecto se construye en incrementos a través de iteraciones, llamadas sprints. Uno de sus pilares fundamentales son las revisiones. Esta metodología logra transparencia y comunicación entre los distintos miembros del equipo. Otra característica peculiar, es que logra solapar las distintas fases del desarrollo, con el objetivo de detectar errores en cada fase, antes de que sean trasladados a la siguiente y que por lo tanto, sean más difíciles y costosos de reparar.
Sprint es el nombre que va a recibir cada uno de los ciclos o iteraciones que vamos a tener dentro de dentro de un proyecto Scrum. Nos van a permitir tener un ritmo de trabajo con un tiempo prefijado, siendo la duración habitual de un Sprint unas cuatro semanas, aunque lo que la metodología dice es que debería estar entre dos semanas y un máximo de dos meses. En cada Sprint o cada ciclo de trabajo lo que vamos a conseguir es lo que se denomina un entregable o incremento del producto, que aporte valor al cliente.
La idea es que cuando tenemos un proyecto bastante largo, por ejemplo un proyecto de 12 meses, vamos a poder dividir ese proyecto en doce Sprints de un mes cada uno. En cada uno de esos Sprints vamos a ir consiguiendo un producto, que siempre, y esto es muy importante, sea un producto que esté funcionando.
Kanban
El método más visual. De hecho su significado en japonés es tarjetas visuales. En esta metodología ágil se detallan tareas que según unas reglas definidas por el mismo equipo van avanzando por las distintas fases (to do, in progress, done …)
Programación Extrema (XP)
Se centra en potenciar las relaciones interpersonales como clave del éxito en el desarrollo de aplicaciones. Está basado en la retroalimentación continua entre clientes y equipos de desarrollo.
Otras técnicas son:
- Visual Management o gestión visual.
Es una estrategia por medio de la cual, a través de distintos indicadores numéricos, gráficos y colores, se puede comprender la información transmitida. En resumen, es una manera visual de analizar la información con la que se está trabajando, con el fin de poder detectar errores, mejorar procesos y ser más eficientes. La gestión visual es una forma de simplificar y mejorar la comunicación, puesto que solo se muestra la información relevante, la cual está disponible en cualquier momento.
- Agile Testing.
Involucra a todos los miembros de un equipo ágil multifuncional, en el cual el rol del tester es el de un experto multifuncional, garante que se entregue el valor de negocio deseado por el cliente a un ritmo sostenible y continuo. Las metodologías ágiles no ven al software testing como una fase separada, sino como parte integral del Desarrollo de software al igual que la programación.
- Retrospectivas Agile.
Usamos una definición hecha por Diana Larsen:
“Es una reunión especial en la cual un equipo decide hacer una pausa para reflexionar sobre el trabajo realizado, ver qué lecciones pueden capitalizar y decidir cómo aplicar lo que aprendieron en el futuro cercano.”
Diana Larsen
En la forma más básica de retrospectiva, se contestan las siguientes preguntas:
- ¿Qué hicimos bien?
- ¿Qué hicimos mal?
- ¿Qué vamos a hacer distinto la próximo vez para mejorar?
En ambientes no-ágiles, las retrospectivas suelen ocurrir una vez terminado el proyecto, como análisis “post-mortem” para generar “lecciones aprendidas”, y suelen ser reuniones largas. En ambientes ágiles, una retrospectiva es corta y se hace frecuentemente (por ejemplo 1h para una iteración de 2 semanas). De esta forma, mientras el proyecto sigue en curso, existe la oportunidad de atacar problemas que atenten a su éxito cuando todavía estamos a tiempo de hacer algo.
Conclusión
El argumento para la implementación de Agile, hasta hace relativamente poco, era que se trataba de una metodología especialmente adecuada para empresas y sectores involucrados en contextos de cambio constante. Es decir, en proyectos especialmente complejos o situaciones de urgencia donde no contamos con el tiempo necesario para desarrollar el proyecto de forma convencional.
Sin embargo, ¿qué empresa o sector puede ser catalogado de convencional y por tanto exento del riesgo de un entorno en constante cambio y evolución acelerada?. Hoy, ninguna empresa puede darse el lujo, de no aplicar una metodología agile, los principios o valores expuestos en el agile. Sea como sea que le llamemos, la conclusión es que Agile no es una moda, o una forma de considerar a la empresa de tecnología, es una necesidad, una imposición de las nuevas condiciones del entorno, del mercado, del cliente, de la evolución de todas las industrias.
A medida que la transformación digital y los modelos de negocios enfocados en el cliente son una necesidad, más que tratar de lograr una ventaja competitiva, es ya una necesidad el incorporar la metodología ágil. Esto se debe a que les permite a las empresas, entregar productos/servicios con menores costes, en plazos más cortos y con una gestión de calidad mucho más depurada.
