Síguenos:
Transformación Digital
3 de Agosto de 2017

Métodos ágiles: ¿cuál es el más apropiado en cada caso?

Métodos ágiles: ¿cuál es el más apropiado en cada caso?

Métodos ágiles: ¿cuál es el más apropiado en cada caso?

Escrito por , 3/08/2017

Estamos viviendo una explosión del interés por los métodos ágiles, que se han convertido casi en una moda. Todas las organizaciones quieren ser más ágiles, las consultoras ofrecen asesoramiento experto para la transformación, las certificaciones y cursos se remozan para incorporar la palabra “ágil” y, de repente, en Recursos Humanos aprenden el valor de un scrum master o un product owner por su escasez.

Cualquiera diría que los métodos ágiles nacieron ayer, aunque en realidad llevan con nosotros más de veinte años, y el Manifiesto Ágil ha cumplido ya los dieciséis.

Lo primero que hay que comprender es que “ágil” no es un método o una receta, sino más bien una filosofía que afecta a muchos aspectos de la forma de trabajo en equipo y que, además, es de aplicación universal no solo para el mundo del desarrollo software, aunque es en este ámbito donde ha proliferado especialmente.

Existen “métodos ágiles”, aunque no son metodologías formales como las que han sido habituales en el mundo de los proyectos y del software. Incluso el más estricto de ellos no deja de ser más que un marco de trabajo (framework) con unas directrices y prácticas. En todos ellos hay muchos grados de libertad en la forma de aplicarlos, por lo que acaba habiendo tantas variantes como organizaciones. A veces divergen tanto que abandonan los principios de la filosofía ágil, y por eso es tan importante el papel del coach para mantener el foco y el pulso, como un entrenador lo hace con su equipo.

Todos los métodos ágiles persiguen la mejora continua y dan máxima relevancia a la comunicación y la calidad, mientras lidian con la incertidumbre sobre la base de la flexibilidad y la construcción incremental. Sobre esas bases comunes, cada método aporta sus peculiaridades. Así se recoge en ”Métodos Ágiles. Scrum, Kanban, Lean” (Anaya Multimedia 2017), obra de la que soy coautor y que es un texto divulgativo para introducirse en los distintos métodos ágiles y sacar el máximo provecho en el desarrollo de proyectos.

Mucha gente interpreta, de manera incorrecta, que “ágil” es únicamente “rápido” y es una cuestión que abordaré próximamente pero hoy en este post me centraré en los métodos ágiles más habituales y dónde tiene más sentido aplicarlos:

Scrum es un marco de trabajo basado en iteraciones y que se apoya en equipos autogestionados. Se trata de uno de los métodos ágiles más difundidos en la actualidad, y eso hace que sus conceptos, herramientas y prácticas aparezcan en muchos otros métodos.

De forma muy resumida, Scrum:

  • Promueve la organización en torno a pequeños equipos autoorganizados e interdisciplinares
  • Divide el trabajo en pequeños entregables, priorizados y estimados en esfuerzo
  • Distribuye el tiempo de trabajo en iteraciones fijas que generan un producto entregable a su fin
  • Optimiza el plan de entregas y prioridades de acuerdo con el cliente
  • Mejora el proceso por medio de revisiones (retrospectivas) al final de cada iteración

Una de las principales características de Scrum es que en cada iteración todas las etapas de la creación de un producto se solapan: se realiza la planificación, análisis, creación y validación de la entrega.

El marco de trabajo general de Scrum está compuesto por una serie de funciones, reuniones y herramientas, que se utilizan también en la aplicación práctica que muchas organizaciones hacen de otros métodos ágiles. Los distintos papeles que se desempeñan en Scrum son: el product owner o dueño del producto, responsable desde el punto de vista del negocio; el Scrum master, responsable de que el equipo sea productivo y de asegurar que se cumplen los principios de Scrum; y el propio equipo, responsable de la construcción del producto.

Scrum tiene una serie de “artefactos”, como los backlogs; reuniones, como las retrospectivas; y herramientas, como los tableros, que son de uso casi universal.

Por ser el método más formalizado, es también el más adecuado para equipos que empiezan y requieren más guía. Si no hay experiencia previa, es un buen punto de partida.

Scrum puede aplicarse en cualquier tipo de proyecto con niveles bajos y medios de incertidumbre y se usa en organizaciones de todos los tamaños gracias a los marcos de escalado.

Kanban es muy apropiado en entornos con un alto nivel de incertidumbre y cuando se quieren corregir problemas e ineficiencias, como el mantenimiento de aplicaciones, aunque puede usarse también en la construcción de productos convencionales. Con la aplicación de este método se consigue mostrar permanentemente y de forma muy visual el estado del proyecto a todos los implicados.

Al permitir visualizar el flujo de todo el trabajo  ayuda a detectar  cuellos de botella. Para ello es muy importante el panel de proyecto, la herramienta más distintiva de este método. Otros aspectos característicos son la división del trabajo en ítems pequeños y la limitación del trabajo en curso.

Resulta muy útil para gestionar productos cuyos requisitos cambian constantemente, bien porque aparezcan nuevas necesidades o porque su prioridad varíe. También en los casos en los que las planificaciones o estimaciones de un equipo se alarguen demasiado y dejen de ser productivas, así como cuando no se pueda comprometer un equipo a trabajar con iteraciones de duración fija y predeterminada por el motivo que sea (interrupciones, cambios, dependencias, etc.).

Es muy habitual la combinación de Scrum y Kanban, o Scrumban, que añade a Kanban los beneficios de una mayor estructuración del trabajo. Eso hace adecuada esta combinación para organizaciones maduras en la aplicación de métodos ágiles y para proyectos de todo tipo con distintos grados de incertidumbre y complejidad.

Lean software development es otro método ágil cuyo origen está en la fabricación industrial, pero que posteriormente fue adaptado al desarrollo de software. Exige una gran madurez del equipo de trabajo para evitar que una mala aplicación degenere en una forma de trabajar sin método ni dirección.

Más que un método, es una colección de principios, de entre los cuales podemos destacar la eliminación de lo accesorio, de todo aquello que no aporte valor al trabajo; la optimización y mejora continua; la calidad como base de la construcción desde el primer momento; reacción rápida; y cuidado del equipo de trabajo.

Los principios Lean se pueden aplicar en todo tipo de situaciones y en combinación con otros métodos de trabajo. En ocasiones se habla de Lean cuando en realidad se describe una forma de Scrumban.

Programación eXtrema o eXtreme Programming (XP) es un método ágil que resulta muy adecuado a la hora abordar proyectos de construcción de software  con requisitos vagos o cambiantes en los que la incertidumbre sea media o baja. XP se aplica muchas veces en combinación con otros métodos como Scrum, y se convierte entonces en una colección de buenas prácticas para desarrolladores.

Se trata de  un método adaptativo que se ajusta muy bien a los cambios. Facilita el desarrollo de código de forma que su diseño, arquitectura y codificación permitan incorporar modificaciones y añadir funcionalidades nuevas sin demasiado impacto en la calidad del mismo. Por otro lado, como los demás métodos ágiles, XP está muy orientado a las personas, tanto a las que están creando el producto como a los clientes y usuarios finales.

El desarrollo con XP proporciona rápidamente resultados.

Lean Startup es uno de los métodos ágiles más recientes y al mismo tiempo popular. Está pensado para el diseño de productos y no tanto para su construcción, de forma que es compatible con otros procedimientos de trabajo. Así, es posible definir el producto con Lean Startup e implementarlo con Scrum. Por ello, Lean Startup goza de gran popularidad en el mundo de la empresa sobre todo de las emergentes o startup y en los equipos de Negocio y Marketing. Ayuda a evolucionar productos ya existentes, aunque su fuerte es el diseño de los nuevos.

Lean Startup es un método iterativo que avanza en el diseño del producto a través de ciclos en los que se va refinando el concepto y cambiando el enfoque si el planteamiento inicial no acaba de funcionar. Y ha popularizado conceptos que han trascendido a la propia comunidad agile:

  • Producto Mínimo Viable, o MVP (Minimum Viable Product), que es la definición del producto que incluye las capacidades y funciones básicas, aquéllas que dan el mayor valor posible al cliente, dejando de lado elementos superfluos.
  • Ciclo “Crear-Medir-Aprender”. Como todos los métodos ágiles, Lean Startup se basa en iteraciones y un avance progresivo hacia el objetivo final. El ciclo de trabajo consta de tres etapas: creación del producto a partir de las ideas; su salida al mercado y medición de su comportamiento; y extracción de la información y aprendizaje adicional para poder aplicarlo en la siguiente iteración.
  • En cada iteración se plantean unas hipótesis que se trasladan al producto y cuyo resultado se evalúa por medio de las métricas para comprobar la validez de las asunciones iniciales. Si las hipótesis no se ven refrendadas, se considera un cambio de rumbo, e implica “pivotar” en una nueva dirección.

Otros métodos, como Feature Driven Development (FDD), están indicados para actividades muy concretas, como el diseño y construcción de un producto. Dynamic Systems Development Method (DSDM), en cambio, cubre todo el ciclo de vida de un producto, y es uno de los métodos más veteranos centrado en el mundo del software.

Al final, cada organización debe ser capaz de encontrar su sitio dentro del mundo ágil y aplicar las formas de trabajo más adecuadas a sus circunstancias. Pese a la variedad de métodos disponibles y sus casi infinitas variantes, Scrum, Kanban y Lean Startup concentran la mayoría de los usuarios. Apoyarse en expertos y la experiencia de otras organizaciones ayudará a encontrar el camino.

Imagen: visualpun.ch

Sobre el autor

Alonso Álvarez García

Alonso Álvarez García

Profesional con muchos años de experiencia en la innovación en campos como cloud, gestión de contenidos y vídeo, actualmente a cargo de la Ingeniería de Vídeo (CDN) en Telefónica. Autor de 15 libros de temática técnica, siendo el más reciente “Métodos Ágiles. Scrum, Kanban, Lean”, así como de unos cuantos artículos. Agilista convencido, futurista aficionado, amigo del Cine (del que se escribe con mayúsculas) y de pedalear al aire libre.
Ver todos sus artículos »