Metodologías Ágiles Esenciales para el Desarrollo de Software: SCRUM, XP, ASD, DSDM y FDD

Enviado por Programa Chuletas y clasificado en Magisterio

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

SCRUM

Scrum es una metodología que se utiliza como marco de referencia, definiendo prácticas y roles basados en un proceso iterativo e incremental en el desarrollo ágil de software. Fue creado por Hirotaka Takeuchi e Ikujiro Nonaka a mediados de los años 80.

Scrum es una metodología ágil y un modelo de desarrollo adaptable que se orienta más a las personas que a los procesos.

Características de Scrum

  • Revisión de las iteraciones
  • Desarrollo incremental
  • Desarrollo evolutivo
  • Autoorganización
  • Colaboración

Roles en Scrum

  • Scrum Master: Facilita el proceso y elimina impedimentos.
  • Product Owner: Representa los intereses del cliente y define el producto.
  • Team Members: Desarrolladores que construyen el producto.
  • Usuarios: Quienes utilizarán el producto final.
  • Interesados: Cualquier persona afectada por el proyecto.

Estructura y Conceptos Ágiles Generales

Estructura Ágil

Una estructura ágil puede comprender los siguientes elementos:

  • Concepto
  • Especificación de funcionalidad
  • Cierre
  • Revisión
  • Exploración

Técnicas y Herramientas Ágiles

En el contexto del desarrollo ágil, se emplean diversas técnicas y herramientas, incluyendo menciones a otras metodologías o conceptos:

  • Entrevista del proyecto
  • Talleres de reflexión
  • Planeamiento (bits)
  • Estimación Delphi
  • Encuentros diarios (Daily Scrum)
  • Miniaturas de procesos
  • Gráfica de quemados (Burndown Chart)
  • Programación lado a lado (Pair Programming)
  • Historia (posiblemente referida a Historias de Usuario)
  • Técnicas Crystal Clear

Roles Comunes en Proyectos Ágiles

Además de los roles específicos de cada metodología, existen roles comunes en proyectos ágiles:

  • Patrocinador
  • Usuario experto
  • Diseñador principal
  • Diseñador programador
  • Expertos en negocios
  • Coordinador
  • Verificador
  • Testers
  • Escritor

Características Generales de las Metodologías Ágiles

Las metodologías ágiles comparten una serie de características fundamentales:

  • Entrega frecuente
  • Retroalimentación continua
  • Comunicación constante
  • Seguridad
  • Enfoque
  • Acceso a usuarios
  • Pruebas automáticas e integración

eXtreme Programming (XP)

eXtreme Programming (XP) es una metodología ágil creada por Kent Beck. Se inspira en los siguientes valores:

  • Simplicidad: Buscar la solución más sencilla.
  • Feedback: Obtener retroalimentación constante.
  • Coraje: Afrontar los cambios y refactorizar.
  • Comunicación: Mantener un diálogo abierto y frecuente.

Fases de XP

  • Exploración
  • Planificación de la entrega
  • Iteraciones
  • Producción
  • Mantenimiento
  • Cierre del proyecto

Roles en XP

  • Programador: Desarrolla el código.
  • Cliente: Define los requisitos y prioriza.
  • Encargado de pruebas (Tester): Realiza las pruebas.
  • Encargado de seguimiento (Tracker): Monitorea el progreso.
  • Entrenador (Coach): Guía al equipo en las prácticas de XP.
  • Gestor (Big Boss): Supervisa el proyecto.

Adaptive Software Development (ASD)

Adaptive Software Development (ASD) es un modelo de implementación para el desarrollo de software ágil. Su funcionamiento es cíclico y reconoce que en cada iteración se producirán cambios e incluso errores.

Características de ASD

  • Iterativo
  • Tolerante a los cambios
  • Guiado por los riesgos
  • La revisión de los componentes sirve para aprender de los errores y volver a iniciar el ciclo de desarrollo.

Bases de ASD

  • Especulación
  • Colaboración
  • Aprendizaje

Dynamic Systems Development Method (DSDM)

El Método de Desarrollo de Sistemas Dinámicos (DSDM) es una metodología ágil que abarca todo el ciclo de vida de un proyecto de software. Emplea un ciclo iterativo con el objetivo de evolucionar la solución apropiada y satisfacer los objetivos del proyecto.

Versiones de DSDM: 1995 (1), 4.1 (2001), 4.2 (2003), Atern (2007).

Principios de DSDM

  • Enfocarse en las necesidades del negocio.
  • Colaborar.
  • Nunca comprometer la calidad.
  • Construir incrementalmente a partir de bases sólidas.
  • Desarrollar iterativamente.
  • Comunicarse continua y claramente.
  • Demostrar el control.

Fases de DSDM

  • Pre-proyecto
  • Factibilidad
  • Bases
  • Exploración
  • Ingeniería
  • Despliegue
  • Post-proyecto

Feature-Driven Development (FDD)

Feature-Driven Development (FDD) es una metodología completa para el análisis, diseño y programación guiada por objetos. Fue desarrollada por Peter Coad en los años 1980-1990 e incorpora técnicas de gestión iterativa.

Roles en FDD

Roles Clave

  • Director del Proyecto
  • Arquitecto Jefe
  • Director de Desarrollo
  • Programador Jefe
  • Propietario de Clases
  • Expertos del Dominio

Roles de Soporte

  • Director de Revisiones
  • Gurú del Lenguaje
  • Ingeniero de Construcción
  • Herramentistas
  • Administrador del Sistema

Roles Adicionales

  • Testers
  • Implementadores
  • Escritores de Documentos Técnicos

Fases de FDD

  • Desarrollo de un modelo global
  • Construcción de una lista de funcionalidades
  • Planificación por funcionalidad
  • Diseño y construcción por funcionalidad

Entradas relacionadas: