Metodologías Ágiles Esenciales: XP, Scrum, FDD, Crystal Clear y Kanban para el Desarrollo de Software

Clasificado en Otras materias

Escrito el en español con un tamaño de 6,15 KB

Principios Ágiles en el Desarrollo de Software

  • Agregación de Valor Explícita

    • Solo se implementan funcionalidades o features con valor conocido para los clientes.
    • Impacta significativamente el diseño de la arquitectura.
  • Aprendizaje Colaborativo y Valor al Cliente

    • Ciclos de desarrollo evolutivo cortos.
    • Sistema potencialmente entregable (potentially shippable).
    • Énfasis en la excelencia, la simplicidad y el aprendizaje continuo.
  • Gestión Ágil y Empoderamiento del Equipo

    • Énfasis en comunicación intergrupal e intragrupal.
    • Ingenieros y equipos con poder de toma de decisiones.
    • El gerente como facilitador.

Extreme Programming (XP): Fundamentos y Prácticas

Iniciado en 1996, con su primer libro publicado en 1999.

  • Filosofía de XP: La Intensificación de Valor

    Se denomina 'extremo' porque elimina técnicas y procesos de bajo valor, mientras que sobre-enfatiza aquellos de alto valor.

    • «Poner todas las perillas en 10».
  • Iteraciones cortas (1 a 4 semanas).
  • Historias de usuario (User Stories).
  • Cliente en las instalaciones (Customer On-site).
  • Gran énfasis en pruebas automáticas.
  • Principio de simplicidad: "Hágalo lo más simple posible".
  • Ciclo de Desarrollo Iterativo en XP

    Se basa en implementar historias de usuario (user stories) de forma iterativa:

    • Planificación: Elegir cuáles historias implementar y aclararlas.
    • Codificación: Implementar la historia.
    • Pruebas automáticas: Al menos una por cada clase/método.
    • Prueba de aceptación: Si la prueba es exitosa, la nueva funcionalidad se acepta; de lo contrario, la historia de usuario correspondiente se rehace en la próxima iteración.
  • Gestión de Requisitos en XP

    Los requisitos son poco detallados, fomentando la flexibilidad.

    • El cliente debe estar presente entre los desarrolladores (customer on-site).
    • Los problemas se corrigen a muy bajo costo.
    • Una user story es una descripción concisa, generalmente una oración escrita en una tarjeta.

¿Cuándo Elegir Extreme Programming (XP)?

  • Sus requisitos están vagamente definidos o son volátiles.
  • Su equipo posee o puede desarrollar habilidades y prácticas de ingeniería robustas.
  • Los clientes pueden involucrarse activamente a diario (horas).

Feature Driven Development (FDD): Desarrollo Dirigido por Funcionalidades

  • Ciclo de Vida de FDD

    Se basa en la implementación iterativa de sistemas, estructurada en dos fases principales:

    • 1. Descubrimiento de la Lista de Funcionalidades (Features)

      • Desarrollo de un modelo global del sistema.
      • Creación de una lista priorizada de funcionalidades.
      • Elaboración de un plan de desarrollo.
    • 2. Implementación de las Funcionalidades

      • Diseño y revisión del diseño.
      • Construcción y revisión de código.
      • Reunión de liberación.
  • Los requisitos tienden a ser robustos, ya que incluyen un modelo desarrollado en conjunto con los clientes.
  • Incorpora un método de seguimiento cuantitativo del progreso del plan.

¿Cuándo Elegir Feature Driven Development (FDD)?

  • Está dispuesto a ceder cierta agilidad a cambio de un proceso claramente escalable.
  • Su organización posee sólidas habilidades en UML.
  • La mayoría de los requisitos son conocidos desde el inicio o son relativamente estables.
  • No considera que los equipos auto-organizados sean un factor crítico de éxito.

Crystal Clear: Un Enfoque Ligero y Adaptable

¿Cuándo Elegir Crystal Clear?

  • Desea definir gran parte del proceso por sí mismo.
  • Tiene un equipo pequeño, co-ubicado en la misma oficina.
  • Los requisitos son principalmente conocidos o "conocibles" de antemano.
  • El proyecto implica riesgos de pérdidas económicas no esenciales y nunca de vidas humanas.

Scrum: Roles Clave y Artefactos (Reuniones y Backlog)

  • El Equipo Scrum

    • Compuesto por 5 a 10 personas con dedicación completa.
    • Equipos auto-organizados.
    • Cambios de miembros solo al final del sprint.
  • El Propietario del Producto (Product Owner)

    • Representa al cliente o usuario del proyecto.
    • Responsable de la toma de decisiones de priorización.
  • El Scrum Master

    • No es un jefe de proyecto tradicional.
    • Facilita la eliminación de obstáculos.
    • Asegura la aplicación de los valores y principios de Scrum.

¿Cuándo Elegir Scrum?

  • Los requisitos son cambiantes o emergentes.
  • Está dispuesto a permitir que los equipos se auto-organicen.
  • Necesita un modelo de gestión más que un conjunto de prácticas de ingeniería.
  • Necesita un proceso ágil probado y escalable.

Kanban: Gestión Visual para la Producción Esbelta

  • Principios y Origen de Kanban

    Es un método de gestión para la manufactura justo a tiempo (just-in-time) y la producción esbelta (lean).

    • El término 'Kanban' significa 'letrero' o 'tarjeta visual'.
    • Su propósito es determinar qué producir y cuándo producir.
    • Fue desarrollado por Toyota.
    • Sus variantes se utilizan en diversas industrias: producción, servicios y desarrollo de software.
  • Control de Producción con Tarjetas Kanban

    La producción se controla mediante tarjetas visuales que representan unidades de pedido o trabajo.

    • Ejemplo: Un "montón de puertas a ensamblar" en una línea de producción.
    • Ejemplo histórico: Las "tarjetas en el Palacio Imperial" para gestionar el flujo de trabajo.

Entradas relacionadas: