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