31

Qué son las metodologias ágiles de desarrollo de software

12145Puntos

hace un año

Las metodologías ágiles son un marco de trabajo en tecnología que enfatizan la colaboración, flexibilidad y mejora continua. Su propuesta de trabajo ha revolucionado el proceso de desarrollo y permite construir eficientemente para generar productos digitales y servicios complejos.

Al adoptar un enfoque iterativo y dividir el trabajo en sprints cortos, los equipos pueden adaptarse rápidamente a cualquier cambio en el camino y mejorar constantemente su trabajo.

Como viste, las soluciones se adaptan rápidamente a los cambios al recoger retroalimentación de partes interesadas y usuarios, lo cual aumenta la productividad, reduce costos y mejora la experiencia del usuario. Profundicemos en ellos para que puedas decidir cuál metodología ágil funciona mejor para tu próxima empresa.

Los 12 principios del Manifiesto Ágil

Para entender de manera rápida y sencilla en qué consiste el Manifiesto Ágil, que es la base que deberían seguir los desarrolladores de software en su camino profesional, hemos resumido en estas categorías los pilares clave para la gestión de proyectos.

equipo-trabajo.jpg

Retrospectiva y aprendizaje

Los equipos ágiles deberían evaluar constantemente su desempeño para identificar oportunidades de mejora y aprendizaje. Para lograr esto, es necesario crear una cultura de retroalimentación y mejora continua donde se dé feedback honesto y rápido.

Cultura y equipo

Otro conjunto de pilares similar al anterior es fomentar un ambiente de trabajo positivo y colaborativo, en el que se valoren las habilidades y fortalezas de cada miembro del equipo. Aquí es crucial que se promueva la inclusión y que se reconozca que los equipos diversos son más creativos y pueden colaborar mejor al momento de resolver problemas.

Entrega de valor

En un entorno competitivo y cambiante, la entrega rápida y continua de valor al cliente es clave. Por lo tanto, siempre habrá una priorización de tareas y funciones que puedan proporcionar el mayor valor al usuario.

Colaboración y bien del negocio

Como último punto, los equipos ágiles fomentan la colaboración entre los miembros del equipo y los stakeholders. Esto implica tomar decisiones por el bien del negocio y del cliente, dejando de lado los intereses personales y políticos.

Los tipos de metodologías ágiles de desarrollo de software más utilizadas

El agile project management cuenta con propias características y enfoques únicos, por lo que es importante entenderlo para poder elegir el marco de trabajo que más se adecue según el proyecto.

1. Scrum

Scrum es una metodología de desarrollo de proyectos que se basa en la iteración, el ajuste continuo, y en la comunicación. Se divide en pequeñas entregas llamadas Sprints, en las que se definen, implementan y prueban las funcionalidades del proyecto.

sprint.png

En este tipo de métodos se realizan reuniones diarias, o Dailys, para comunicar el progreso del proyecto. Se expresa tanto lo que se sabe como lo que no se sabe y también se expresa si algo no se entiende.

La estructura de desarrollo en cascada en Scrum es incremental, lo cual significa que se divide en etapas de análisis, desarrollo y testing. Los principales roles en un equipo Scrum incluyen al: Scrum Master, Product Owner y los Developers.

Ventajas del uso de Scrum

  • Los equipos Scrum son autosuficientes y autogestionados, y tienen todas las habilidades necesarias para construir el producto deseado.
  • Los colaboradores por grupo tienen un límite de 10 personas. Si el equipo es más grande, se debe dividir en equipos más pequeños.
  • No hay jerarquías ni subequipos dentro de los equipos Scrum. Todos los miembros son desarrolladores de software.
  • Los equipos Scrum son conocidos por ser innovadores, flexibles, competitivos y productivos.

Desventajas del uso de Scrum

  • La retrospectiva, realizada al final de cada Sprint, es un momento para reflexionar y proponer mejoras en el proyecto. Sin embargo, es normal enfrentar inconvenientes ajenos a su desarrollo y no siempre avanzar de manera constante.

2. Kanban

En cambio, Kanban se refiere a una metodología que se enfoca en visualizar el flujo de trabajo y ajustarlo en tiempo real. Utiliza un tablero visual al que todo el equipo de desarrollo de software puede acceder para ver el progreso de cada tarea y detectar obstáculos o cuellos de botella.

kanban.jpg

Un ejemplo de tablero podría ser Trello, que funciona con 3 columnas que muestran las tareas pendientes, las que están en ejecución o las que ya han sido terminadas.

Cada tarea suele incluir el tiempo estimado para completarla y el tiempo que realmente se necesitó para ejecutarla. Esto permite planificar futuros flujos y efectuar ajustes con base en la experiencia del equipo de trabajo.

Ventajas del uso de Kanban

  • No hay roles predefinidos en este marco de trabajo, a diferencia de lo que ocurre en la metodología Scrum.
  • Una de sus principales ventajas es lo visual, ya que puedes ver métricas que se ajusten a la actualidad del ciclo mientras transcurre el desarrollo del mismo.
  • Hay un orden establecido, por lo que se establecen fechas que mejoran el rendimiento de un equipo de trabajo.

Desventajas del uso de Kanban

  • No admite una nueva forma de trabajo ni una demanda desmedida.
  • El coste en equipos grandes es demasiado para mantener todo administrado bajo una estructura de información como lo es Kanban.

3. Crystal

La metodología Crystal es un conjunto de técnicas y guías de proceso para el desarrollo de software que se enfoca en la calidad del producto y la satisfacción del cliente.

En 1991, IBM encargó a Alistair Cockburn, un programador estadounidense, que creara una forma de trabajar en proyectos de software orientados a objetos. Cockburn descubrió que los equipos de trabajo que lograban más éxito eran los que valoraban la importancia de las personas y su colaboración en el proyecto.

crystal-metodologia.jpg

La familia Crystal incluye diferentes enfoques de desarrollo, identificados por un color o nivel como Crystal Clear, Crystal Yellow, Crystal Orange, Crystal Orange Web etc.

Ventajas del uso de Crystal

  • Se enfoca en las personas y los procesos, y su interacción.
  • Toma en cuenta el tamaño, criticidad y características básicas del proyecto.
  • Es iterativo e incremental, y refinable en cada iteración.
  • Es adaptativo y ultraligero, por lo que no requiere mucha documentación.
  • Se enfoca en la integración continua y las pruebas de humo para asegurar el correcto funcionamiento del producto.

Desventajas del uso de Crystal

  • Existen demasiados tipos de enfoques y métodos, y como todos son únicos, pueden depender del tamaño del equipo y el entorno en que se lleva adelante el proyecto.

4. Desarrollo Lean

El Desarrollo Lean se basa en la eliminación de desperdicios y la mejora de la eficiencia en el proceso de desarrollo de proyectos. Se enfoca en entregar valor al cliente lo antes posible y en reducir el tiempo de ciclo.

Esta metodología se originó en un proceso de trabajo japonés exitoso como estrategia de fabricación, conocido como el Toyota Production System (TPS), después conocida como desarrollo Lean, que habla de la eliminación de “desperdicios” y dio origen a la Metodología Lean Startup.

Ciclo-Lean-Startup.png

Ventajas del desarrollo Lean

  • Mapeo de flujo de valor para identificar desperdicios.
  • Generación de una percepción de integridad en el cliente.
  • Refactorización del código manteniendo la sencillez y claridad.

Desventajas del desarrollo Lean

  • Requiere una revisión completa por parte de los empleados de los sistemas de producción de ese producto, lo que puede generar estrés y desgaste en tiempos prolongados.
  • Los fundamentos como JIT (Just-in-Time) y el esquema productivo Pull requieren un alto nivel de madurez en el sistema de producción para evitar el desabastecimiento del producto.

5. XP (Extreme Programming)

Finalmente, la metodología Extreme Programming se enfoca en la entrega rápida y continua de software de alta calidad. Es el favorito de startups o empresas en proceso de consolidación. Su nombre de deriva del libro de Kent Beck, Extreme Programming Explained: Embrace Change (1999).

extreme-programming.jpg

Tiene cinco roles:

  • Líder ágil o coach
  • Cliente
  • Programador
  • Tester
  • Tracker o consultor externo

Sus principales valores son la simplicidad, la comunicación, el feedback, la motivación y el respeto entre sus integrantes.

Ventajas del uso de XP

  • XP fomenta el trabajo en equipo y la comunicación activa para evitar tiempos muertos.
  • Utiliza historias de usuario para desarrollar relaciones personales sólidas entre empleados y clientes.
  • Promueve la refactorización de código para hacerlo más legible y sencillo, permitiendo reescribirlo sin alterar su comportamiento.

Desventajas del uso de XP

  • Esta metodología fue popular en los años 2000. Un equipo XP dice que ser flexible con los roles es importante, pero a veces no aplica.
  • Puede ser difícil documentarla y puede haber conflictos con los clientes. Es mejor para proyectos cortos, ya que su implementación puede ser costosa.

¿Te gustaría especializarte en metodologías ágiles?

Si quieres agilizar el proceso de desarrollo o enfocar mejor los esfuerzos de tu empresa, es valioso que estudies la metodología agile. El Curso Profesional de Scrum en Platzi profundiza en este tema y puede ayudar a que los equipos adquieran conocimientos básicos sobre el sector.

Por supuesto, habilidades interpersonales como la retroalimentación son esenciales para crear una comunicación efectiva dentro de un equipo. Esto, en última instancia, minimizará el tiempo de inactividad en tu ciclo de desarrollo.

Jazmín del Rosario
Jazmín del Rosario
jazminsaavedra28

12145Puntos

hace un año

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
3
29088Puntos

Felicidades Jazmin, un gran artículo me gustó mucho la parte de las ventajas y desventajas de Kanban es una de mis metodologías favoritas y pude verla desde otra perspectiva 😃

1
12145Puntos
un año

Gracias Caro, usé Kanban en trabajos y en equipos chicos con devs me resultó siempre útil incluso para estudiar, así que te entiendo ❤️

2
4Puntos

Que genial contenido Jaz. No sabía que había tantos métodos ágiles. Muy educativo e interesante.
saludos!

1
12145Puntos
un año

Gracias Santi ❤️ Muy amable en pasar a leerlo!

2
22272Puntos

Muy bueno!!, una super y útil lectura antes de introducirse en el curso de Scrum

1
12145Puntos
un año

Gracias Jose y por los comentarios que me acercaste ❤️

2
42171Puntos

Que gran post ❤️, Muchas gracias Jazmín!

1
3Puntos

Cuando se trata de elegir una metodología de desarrollo de software ágil para el comercio minorista receptivo, mi elección es https://www.leafio.ai/es/