Norman Rosenstech

¿Qué es la Agilidad, en pocas palabras?

by Mar 11, 2022Agilidad

Norman

¿Qué es la Agilidad? ¿Es dar vueltas medio desnudo entre las cortinas de tu apartamento bajo la mirada admirativa de tus amigos? ¿Es tu capacidad para ponerte rápidamente una camiseta stretch talla 6 en un probador demasiado estrecho? ¡Basta de bromas! Entonces ¿Este es otro artículo acerca de la Agilidad? ¡Sí !

Sobran razones para tener que hacer un repaso acerca de este concepto, en el momento en que la Agilidad a veces se reduce a la simple implementación y al mantenimiento funcional de frameworks como Scrum, SAFe, u otros. Organizarse en equipos pequeños y seguir una serie de ceremonias es adecuado, pero la Agilidad, es sobre todo una base de valores y principios esenciales sobre los que se asienta el buen funcionamiento y la coherencia de todos estos marcos de trabajo.

Una breve historia

Aunque los métodos ágiles últimamente intentan extenderse a otros estratos de la empresa con más o menos éxito, hoy en día siguen preocupando principalmente a los equipos de desarrollo informático. Deben contrastarse con maneras de trabajar de la década de 1970 como el “trabajo en cascada” o su vecino, el ciclo “V”, los cuales, sin entrar en detalles, consisten los siguientes pasos :

  • Analizar las necesidades técnicas del producto
  • Diseñar el producto
  • Elaborar el producto (la punta de la “V” del ciclo “V”)
  • Probar el producto y corregir los problemas de diseño inevitables
  • Lanzar el producto al mercado
Cascada
El Trabajo en Cascada. Origen : Wikipedia.
El ciclo “V”. Origen : Wikipedia.

El Ciclo “V” y el trabajo en Cascada no son groserías. Lejos de desaparecer, estos métodos se adaptan a proyectos sencillos, cuya tecnología se domina a la perfección. Las diferentes fases están claramente delineadas, los requisitos técnicos previos son estables en el tiempo y la retroalimentación de los clientes es baja. En esencia, se requieren de entornos muy predecibles, lo cual casi no ocurre en el desarrollo de software. Este último, es un campo complejo donde existe gran incertidumbre, y las validaciones de los clientes y los usuarios son indispensables durante todas las fases de desarrollo del producto…

Enfoques estresantes e ineficaces

Foto de Yogendra Singh en Unsplash

Los metodos previos son estresantes para los desarrolladores y frustrantes para las organizaciones porque no están adaptados a las exigencias del mundo del software. Esto propició a principios de los 90, el advenimiento de nuevos métodos de organización y desarrollo como Extreme Programming y Scrum entre otros. Estos métodos trajeron inmediatamente a las organizaciones más capacidad de respuesta y flexibilidad, dos habilidades esenciales para adaptarse a los cambios y limitaciones de este mercado. Con estos primeros marcos (frameworks), se empiezan a poner en marcha una serie de prácticas : el trabajo se segmenta en iteraciones sucesivas, y se fomenta cada vez más la colaboración, la autonomía de los equipos y la búsqueda de una retroalimentación (feedback) de manera más rápida.

El Manifiesto Ágil

A principios de la década del 2000, bajo el impulso de 17 desarrolladores web, nació el famoso Manifiesto Ágil en Estados Unidos de América. El cual es la piedra angular de todas las metodologías ágiles empleadas hoy en día, y sobre todo, representa el advenimiento de una cultura de trabajo diferente, más adaptada a un mundo que cambia a una velocidad vertiginosa. Está compuesto de 4 valores fundamentales y 12 principios :

Origen : https://agilemanifesto.org

Los 4 Valores

“Estamos descubriendo mejores formas de desarrollar software, tanto por nuestra propia experiencia como ayudando a terceros. A través de este trabajo, hemos aprendido a valorar :

  • A los individuos y sus interacciones mas que a los procesos y herramientas.
  • Al software funcional sobre documentación exhaustiva.
  • La colaboración con los clientes sobre la negociación contractual.
  • La adaptación al cambio mas que al seguimiento de un plan.

Esto es, aunque valoramos los elementos de la derecha, valoramos más los de la izquierda”.

Los 12 principios

  1. Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software de calidad.
  2. Aceptamos que las necesidades cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
  3. Entregamos un software funcional frecuentemente, entre dos semanas y dos meses, dando preferencia a los periodos más cortos posibles.
  4. Los responsables de negocio y los desarrolladores trabajan juntos de manera continua durante todo el proyecto.
  5. Los proyectos se desarrollan en torno a individuos motivados. A quienes se les proporciona el entorno y apoyo que necesitan y se confía en ellos para poder alcanzar los objetivos establecidos.
  6. El método más sencillo y eficaz para transmitir información al equipo de desarrollo web y al interior del mismo es a través del diálogo cara a cara.
  7. El software funcional es la principal medida de progreso.
  8. Los procesos Ágiles fomentan un ritmo de desarrollo sostenible. En conjunto, los desarrolladores y los usuarios debemos ser capaces de mantener un ritmo constante de manera indefinida.
  9. La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.
  10. La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.
  11. Las mejores arquitecturas, especificaciones y diseños emergen de equipos auto-organizados.
  12. A intervalos regulares, el equipo reflexiona sobre cómo ser más eficaz para a continuación ajustar y perfeccionar su comportamiento.
Ágil iceberg

Infringir u olvidar los valores: dos ejemplos

Los individuos y sus interacciones sobre los procesos y herramientas

Desarrollar una obsesión por JIRA, el famoso “software de seguimiento de problemas y proyectos” es un ejemplo de no cumplir con el primer valor. JIRA es una herramienta entre muchas otras, que puede usarse (como cualquier otra) para bien o para mal. Mientras se use incorrectamente, a veces podemos ver cierto número de fallas : una retirada de cada desarrollador sobre sus boletos personales en detrimento de la discusión y el trabajo en equipo, una cierta falta de transparencia basada en la complejidad de la interfaz, una fijación por la velocidad y las estimaciones, etc. En este caso, es bueno dar un paso atrás y recordar los valores de la agilidad para reenfocar los equipos hacia la colaboración y mayor simplicidad.

Software funcional sobre la documentación exhaustiva

Foto de Luis Villasmil en Unsplash

Sobrecargar historias y ahogar a los desarrolladores web en una nube de criterios de aceptación, detalles técnicos superfluos y descripciones peligrosas…es violar este valor. El cual, también va de la mano con el décimo principio: “La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial”. Dar detalles del trabajo a realizar es fundamental…siempre y cuando seamos claros y concisos. Hay que encontrar un equilibrio entre una sobredosis de indicaciones y lo mínimo necesario para avanzar hacia las buenas condiciones.

En resumen

Lejos de las discusiones febriles sobre la pertinencia de usar tal o cual framework, la Agilidad es ante todo una “filosofía” basada en cuatro valores y doce principios fundamentales. Aunque provienen originalmente del mundo del software, ahora se extienden a muchas otras áreas. Es a través de la aplicación correcta de estos valores que los marcos ágiles pueden respirar y dar todo el potencial que tenemos derecho a esperar de ellos:

  • flexibilidad,
  • adaptabilidad,
  • entregas rápidas,
  • creciente competencia,
  • calidad,
  • entrega valiosa,
  • autonomía del equipo,
  • hiper-colaboración,
  • transparencia,
  • satisfacción de las distintas partes interesadas,
  • ambiente de trabajo agradable,
  • baja tasa de rotación,
  • etc.

!Una larga lista de beneficios de los cuales sería una pena privarse “olvidando” todo o parte de los valores y principios del Manifiesto Ágil!