Tema: metodología agile, metodologías ágiles
Autor: Javi Gracia
Todas las metodologías ágiles se ajustan a los valores y principios que marca la filosofía Agile. Sin embargo, las características diversas y la heterogeneidad de los múltiples tipos de proyectos que se pueden llevar a cabo ha hecho que las estrategias Agile se diversifiquen en diferentes tipos o metodologías concretas. Las principales métodos o tipos de metodologías agile son los siguientes:
Tipos de Metodologías Ágiles
Scrum
El objetivo de la metodología Scrum es la mejora continua e incremental de un producto o servicio utilizando un sistema de ciclos cortos de experimentación. Scrum es un marco de trabajo que fomenta la colaboración entre equipos, la iniciativa propia y la autoorganización. Aunque la metodología Scrum se observa sobre todo en empresas de desarrollo de software, sus principios y funcionamiento son aplicables a cualquier proyecto o sector.
Si bien Scrum tiene entre sus pilares la agilidad y la autonomía en la gestión de proyectos, también incluye una estandarización de procesos a través de una serie de reuniones, herramientas y funciones que, de forma coordinada, permiten a los equipos gestionar y estructurar el trabajo para acelerar los progresos.
Cuándo usar Scrum
Scrum es una metodología de gran utilidad para casi cualquier tipo de empresa. Pero sin duda, las que más se pueden beneficiar de este método son las empresas de cierto tamaño que trabajan en proyectos múltiples de forma simultánea, que son especialmente susceptibles al cambio o cuyas necesidades pueden variar con frecuencia en el tiempo.
Kanban
La metodología Kanban es un método que pone el foco en la fluidez a la hora de gestionar el trabajo. Originario de Japón, Kanban es un símbolo visual que significa literalmente «letrero» o «tarjeta». Como metodología, Kanban emplea un tablero en el que se reflejan los procesos y flujos de trabajo, así como el estado de las tareas. Las tareas, representadas por tarjetas, se van moviendo a través de las diversas etapas hasta su finalización.
Kanban es una de las metodologías ágiles más fáciles de implementar en una empresa, ya que en vez de proponer una ruptura o transformación radical de la cultura empresarial, permite una adaptación progresiva. De este modo, los equipos pueden ir modificando gradualmente sus formas de organización y trabajo para ser más productivos y eficientes.
Cuándo usar Kanban
La metodología Kanban es muy eficaz en todo tipo de sectores, especialmente en empresas que no tienen experiencia en gestión ágil y quieren empezar a transformarse de forma paulatina sin efectuar un cambio drástico en la forma de trabajar. La adopción de este método permite funcionar de forma ágil e innovadora, ahorrando tiempo en los procesos y mejorando la productividad y la capacidad de generar valor añadido.
Además, es muy útil también en proyectos donde son habituales los cuellos de botella o bloqueos generados en algún punto del flujo de trabajo. Gracias a modelo Kanban, se pueden prevenir esas situaciones y evitarlas reasignando prioridades y redirigiendo esfuerzos donde sea necesario en cada momento.
Lean Startup
La metodología Lean Startup es otra de las que más popularidad han obtenido debido a la influencia del empresario estadounidense Eric Ries. Se trata de un método que permite crear empresas orientadas al éxito utilizando la innovación continua. Aunque la base teórica de Lean Startup no es 100% novedosa, pues sus principiaos fundamentales provienen de la «filosofía Lean», su utilidad reside en la capacidad del método para aplicarse a las circunstancias particularess que rodean al proceso de creación y desarrollo de una startup.
El método lean startup, en esencia, consiste en realizar las acciones necesarias para transformar un proyecto en empresa poniendo el foco en las necesidades del cliente. Para ello, hay que contar con la retroalimentación de este para ir modificando el producto hasta desarrollar la versión definitiva. La idea, por tanto, es ir adaptando el producto a las demandas del mercado y no a nuestra la visión sesgada que se tiene internamente, para de esa manera garatnizar el éxito del producto.
El método lean startup se basa en procesos de aprendizaje validado que posibilitan ir verificando poco a poco las hipótesis antes de tener el producto final y comenzar a escalar el negocio. De este modo, se definen y acortan los ciclos de desarrollo de manera que las distintas mejoras o propuedas puedan ser validadas a través del feedback de los clienes o usuarios.
Cuando usar Lean Startup
El metodología Lean Startup, como se desprende de su propio nombre, es especialmente valioso en las startups, es decir, empresas con enfoque innovador que quieren introducir un producto novedoso en el mercado basado en desarrollos tecnológicos insólitos o innovadores.
La capacidad de superviviencia de una startup depende de su habilidad para construir un negocio sostenible y escalable. A diferencia de las nuevas empresas que ofrecen un servicio o producto que ya existe en el mercado y, por tanto, saben a quién dirigirse y qué marketing hacer, las startups tienen la desventaja de que ofrecen algo inédito y, en consecuencia, no saben con certeza quién es su público objetivo ni cómo llegar a él de forma eficiente.
El contexto de una startup se caracteriza por un alto grado de incertidumbre sobre los factores o elementos que influyen en el crecimiento de la empresa. Es por ello que los proyectos inovadores, por sus condiciones excepcionales, requieren un método especial para medir el éxito. De lo contrario, las métricas de rendimiento de una startup pueden llevara que se califique de fracaso lo que en realidad está siendo un éxito rotundo.
Scrumban
Scrumban es una metodología de gestión de proyectos que combina dos estrategias ágiles comunes: Scrum y Kanban. Desarrollada inicialmente para ayudar a los equipos en su transición de Scrum a Kanban o viceversa, esta metodología ha demostrado que la combinación de ambos métodos podía resultar beneficiosa para ciertos tipos de proyectos o equipos. La experiencia de los equipos con uno y con otro método es la que marca la idoneidad de empezar a usar la metodología Scrumban.
Cuándo usar Scrumban
La metodología Scrumban es útil cuando es necesario mantener proyectos a largo plazo sin una fecha de entrega precisa. En esos casos, el uso de Scrumban garantiza que haya un flujo constante de trabajo, además de aportar controles graduales y sprints que permiten supervisar los avances y planificar los siguiente progresos. Se trata pues de una metodología ágil orientada a agilizar el trabajo y facilitar la progresión de los proyectos que no cuentan con deadlines claros.
Scrumban también es una metodología que ofrece grandes beneficios cuado la rigidez de la metodología Scrum no deja a los equipos trabajar de una forma fluida. En proyectos en los que se quiera mantener Scrum ganando a la vez mayor flexibilidad, Scrumban puede ser el enfoque ideal para hacer que los procesos sean más ágiles.
XP o Programación Extrema
La metodología XP es un conjunto de técnicas enfocadas a dotar de mayor agilidad y flexibilidad a los procesos de gestión de proyectos. Conocida también como Programación Extrema (Extreme Programming), XP se centra en crear un producto siguiendo con exactitud y precisión los requisitos del cliente.
Descrito por primera vez por el ingeniero de software Kent Beck en el libro Extreme Programming Explained: Embrace Change (1999), XP ha supuesto una aproximación al aseguramiento de la calidad del producto. Esto se debe a que se trata de una metodología que tiene en cuenta los cambios naturales que pueden producirse en el ciclo de vida del software y, de hecho, se basa en la idea de que, a mayor cantidad de cambios, más cerca se estará del resultado esperado por el cliente.
De este modo, el objetivo de la programación extrema es eliminar la reticencia a cambiar el código en un proyecto de desarrollo. En las metodlogías más tradicionales, es habitual que el código no se cambie una vez escrito. En cambio, con la programación extrema se examina el código tan a fondo que los desarrolladores pueden decidir hacer «borrón y cuenta nueva» si observan que el código actual podría escribirse de otro modo más óptimo.
Cuándo usar XP
La programación extrema es una metodología totalmente centrada en el desarrollo de software, por lo que solo está destinada a equipos de ingeniería. De hecho, incluso dentro de los equipos de software se considera la utilización de esta metodología solo en ciertos casos. Uno de ellos es a la hora de gestionar equipos pequeños de desarrolladores, ya que XP es una metodología ágil colaborativa que funciona mejor cuando todos los integrantes trabajan de forma cercana y cooperativa.
La implementación de la Programación Extrema también es recomendable en equipos de desarrollo de software que requieren estar en constante contacto con los clientes. Se trata además de un método que solo puede ser incorporado por profesionales expertos en codificación y desarrollo. En otras palabras, no es una metodología apropiada para perfiles con poca experiencia.
Además, XP debe integrarse en equipos altamente flexibles y predispuestos a aceptar el cambio, ya que a menudo la programación extrema conlleva deshechar por completo el fruto de un largo y árduo trabajo, a veces incluso como decisión unilateral de un único miembro del equipo, lo cual puede suponer conflictos cuando los integrantes se lo toman como algo personal.
Agile Inception
El Agile Inception es una metodología agile que se aplica en el momento de comenzar el desarrollo de un producto con el objetivo de establecer una planificación coherente y basada en metas. Introducido por Jonathan Rasmusson en su libro The Agile Samurai, How Agile Masters Deliver Great Software (2010), el Agile Inception se basa en la realización de 10 pasos que ayudan a fijar un propósito y unas expectativas comunes al equipo de desarrollo, a los interesados en el producto y al producto en sí.
El enfoque de este método es que todos los agentes involucrados en el proceso estén alineados desde el principio y miren en una misma dirección. Es decir: lograr un mismo pensamiento y visión del producto y de equipo desde antes de que se haya escrito la primera línea de código.
Cuando usar Agile Inception
Agile Inception es una metodología que tiene como principales finalidades ahorrar la máxima cantidad de tiempo, dinero y recursos posibles en la creación de un producto. En última instancia, busca prevenir la creación de productos equivocados y conseguir un Producto Mínimo Viable (MVP) que pueda ser evolucionado a posteriori de manera iterativa e incremental.
Por lo tanto, esta metodología es la indicada para proyectos que se encuentran en las primeras fases de desarrollo, ya que sirve para elegir las funcionalidades básicas con las que se puede sacar un producto que sea práctico para el usuario. Por ello, Agile Inception es una metodología muy utilizada en el ecosistema startup.
Crystal
Introducido por Alistair Cockburn, la metodología Crystal agrupa diversos enfoques ágiles de desarrollo de software que se centran en las personas y la interacción entre ellas al trabajar en un proyecto de desarrollo de software. Crystal también se enfoca en priorizar la salida al mercado del producto desarrollado, por lo que es una metodología con vocación comercial.
En contraposición a otros métodos de desarrollo tradicionales, Crystal no implica la utilización de herramientas y técnicas concretas de desarrollo, sino que se focaliza en la gestión de las personas y los procesos, así como su interacción, como elementos centrales del proceso de desarrollo.
De este modo, al comienzo del proyecto, los procesos y las herramientas están decididos de antemano, sino que se seleccionan en función de los requisitos comerciales y las necesidades técnicas del proyecto.
Más que una metodología en sí, Crystal es una familia de metodologías ágiles, cada una de las cuales se adecúa mejor a un tipo de proyecto. Otra característica de estas metodologías es que tratan de reducir al máximo el número de artefactos producidos con el objetivo de ahorrar costes y optimizar recursos.
Cuando usar Crystal
A diferencia de metodologías ágiles como Scrum o FDD, las metodologías Crystal son menos extremas y están pensadas para adaptarse a distintas tipologías de proyectos y organizaciones, incluidas empresas grandes donde es difícil instaurar una única metodología de trabajo de forma rígida. Por lo tanto, es una metodología versátil que puede ser implementada en un amplio espectro de sectores y proyectos.
Design Sprint
Creada por Jake Knapp en 2010, Design Sprint es una metodología agile formada por 6 fases de duración variable en función de las necesidades del proyecto. Se trata de una estrategia destinada a que los equipos trabajen conjuntamente para resolver un problema concreto y desarrollar soluciones que puedan ser probadas por usuarios.
Una de las ventajas de Design Srpint es que acelera considerablemente la toma de decisiones y minimiza el riesgo de los proyectos. Su principal objetivo es construir un prototipo testeable, aunque también se utiliza para experimentar con nuevas ideas y plantear soluciones más arriesgadas a los desafíos existentes.
Design Sprint permite simplificar el proceso de diseño de un producto mediante talleres de cocreación en los que se obtienen resultados concretos y medibles que permiten validar el concepto gracias a las pruebas realizas con usuarios reales. De esta manera, se reducen los riesgos evitando desarrollar funcionalidades o características innecesarias, por lo que también se maximiza el retorno de la inversión (ROI).
Cuándo usar Design Sprint
Design Sprint es muy recomendable en proyectos en fase temprana, ya que se trata de una metodología pensada para realizar las primeras entregas de desarrollo de forma rápida adaptándose a las particularidades del equipo y priorizando la obtención de un producto mínimo comercializable.
Sin embargo, debido a la extrema simplificación del proceso, no es una metodología aplicable en proyectos en fase intermedia o avanzada que requieren una gran cantidad de recursos.
Design Thinking
El Design Thinking se centra en crear un producto o servicio que resuelva un problema en un target determinado. La cualidad más importante a la hora de trabajar con este método es la la capacidad de ponerse en el lugar del público objetivo para satisfacer una necesidad de la que, a menudo, ni él mismo es consciente.
Para hallar y delimitar esa necesidad se utiliza la investigación. El Design Thinking sostiene que un producto o servicio nunca debe diseñarse bajo la presunción de que va a tener éxito para encajarlo a posteriori en un nicho de mercado. El Design Thinking propone justo lo contrario: atacar un problema de base que afecta a cierto colectivo, estudiarlo y analizarlo. Posteriormente, se plantean ideas que puedan convertirse en soluciones específicas para ese problema concreto.
Cuándo usar Design Thinking
Design Thinking es la metodología más indicada para afrontar proyectos dirigidos a innovar y resolver de forma más eficaz o satisfactoria los problemas de un determinado mercado. Se aplica en empresas que están dirigidas a crear productos o servicios novedosos desde una perspectiva que priorice la experiencia de cliente.
Lean Manufacturing
Esta metodología, originaria de Japón e impulsada por el director de Toyota, Taiichi Ohno, se enfoca a la mejora de la eficiencia en la industria manufacturera eliminando los procesos y recursos que no generan valor a los productos.
También conocida como Lean Production, esta metodología se basa en un sistema organizativo del trabajo que prescinde de las actividades que no aportan valor al proceso ni al cliente. Es decir, aquellas actividades que generan desperdicios, sobreproducción o tiempos de producción elevados sin que ello tenga una incidencia real en la calidad del producto.
Cuándo usar Lean Manufacturing
Se trata de una metodología dirigida principalmente al sector industrial. Sin embargo, se han realizado adaptaciones del método para que pueda ser alpicado en otras modalidades de negocio. Cuando se aplica el lean manufacturing sobre un modelo de negocio no industrial se le llama Lean Manufacturing.
En todo caso, se trata de una metodología compleja de implementar, por lo que se usa noramalmente en empresas y corporaciones con grandes estructuras operativas a fin de optimizar procesos con el objetivo de maximizar la productividad sin comprometer (o incluso aumentando) el valor del producto final.
Método de desarrollo de sistemas dinámicos (DSDM)
Otra de las maetodologías ágiles que pueden implementarse en proyectos de desarrollo de software es el Método de Desarrollo de Sistemas Dinámicos (DSDM). Este se enfoca en el ciclo de vida completo del proyecto y busca aumentar la disciplina en el proceso iterativo del trabajo, mejorar el alineamiento con los objetivos estratégicos y acelerar la entrega de beneficios reales para el negocio.
El proceso de DSDM, llamado ciclo, se estructura en 3 fases: fase preproyecto, fase del ciclo de vida del proyecto y fase postproyecto. La fase del ciclo de vida, a su vez, consta de cinco etapas: estudio de viabilidad, estudio de la empresa, iteración del modelo funcional, diseño e iteración de la estructura e implementación.
Cuándo usar DSDM
DSDM es una metodología cuya principal aplicación está en los proyectos TIC que se caracterizan por tener presupuestos limitados y agendas apretadas. Aunque el DSDM se utiliza sobre todo en proyectos de desarrollo de software, puede aplicarse en otras industrias y proyectos tipos de organizaciones, bien sea de forma completa o usando solo aquellas partes del método que sean útiles para el fin concreto que se persigue.
Desarrollo basado en funciones o características (FDD)
El Desarrollo Basado en Funciones (FDD) es una metodología de desarrollo de software que se centra en iteraciones cortas y actualizaciones frecuentes con el objetivo de lanzar nuevas funciones de forma incremental.
Esta metodología ágil requiere que el cliente o propietario del negocio del proyecto asista a la reunión de diseño inicial y esté presente a la hora de realizar las retrospectivas de iteración. Con este método, los desarrolladores responden de manera ágil y adecuada a cada solicitud del cliente, aumentando la satisfacción de este con los resultados conseguidos.
FDD consiste en organizar y subdividir las características que se han requerido para el producto en conjuntos de características más pequeños y sencillos de desarrollar, para posteriormente ir ampliando e incrementando las funcionalidades en el tiempo.
Habitualmente, con FDD se entrega una función o característica nueva cada pocos días (normalmente entre 2-10 días), a diferencia de otras metodologías Agile como Scrum, en la que los srpints suelen extenderse de dos a cuatro semanas.
Otra diferencia con Scrum y otras metodologías es que, al darle mucha importancia la documentación a la hora de comunicar y reportar información relevante, las reuniones no son tan frecuentes.
Cuándo usar FDD
Esta metodología ágil es adecuada para proyectos a largo plazo que cambian permanentemente añadiendo nuevas características. FDD es muy útil cuando los proyectos se vuelven amplios y complejos, ya que permite a equipos pequeños funcionar de forma ágil y distribuir la carga de trabajo incrementando el ritmo en la entrega de nuevas funciones.
Otra ventaja de FDD es que es muy escalable. Sirve para un gran tipo de proyectos y equipos de diversos tamaños, ya que es una metodología que está diseñada para centrarse siempre en lo que el cliente necesita o exige. Centrarse en las funciones ayuda a obtener más rápido versiones útiles y actualizadas del software y a identificar y solucionar problemas de forma temprana antes de que puedan derivar en un problema mayor.
Conclusión: ¿qué metodología ágil es mejor usar?
El objetivo de este artículo era acercarte a los tipos de metodologías ágiles más populares en la actualidad. Hemos hablado de muchos tipos de métodos, algunos de ellos más versátiles y con una implantación más sencilla y otros más complejos y especializados.
Design Thinking, Scrum, Kanban y Lean Startup tienen características comunes. Son las particularidades de cada una las que te permitirán saber cuál es la más adecuada para tu empresa. Esto no depende solo del sector, sino también de la fase en la que se encuentre el proyecto y el nivel de madurez digital de la empresa.
Otros métodos como Extreme Programming (XP), Crystal, DSDM o FDD están más orientados al campo específico del desarrollo de software, por lo que es necesarios que los responsables de estos proyectos analicen sus ventajas y desventajas para poder elegir el que mejor se adapte a las necesidades o requisitos concretos de los equipos y dinámicas de trabajo.