Skip to main content

¿Qué es DSDM?

El método de desarrollo de sistemas dinámicos (DSDM) es un marco ágil de entrega de proyectos que surgió por primera vez en 1994 y, en ese momento, se utilizaba para el desarrollo de software. Su objetivo era mejorar el Desarrollo Rápido de Aplicaciones (RAD), que priorizaba la creación de prototipos rápidos y la iteración basada en la retroalimentación de los usuarios. Al igual que en muchos métodos ágiles de entrega de proyectos, el DSDM Agile Project Framework evolucionó para pasar de ser una solución específica para software a una herramienta más general de gestión de proyectos.

Elementos del Método de Desarrollo de Sistemas Dinámicos incluyen:

  • Se diferencia de otros métodos por su enfoque en bases sólidas y buena gobernanza
  • Enfoque incremental e iterativo para el progreso 
  • La retroalimentación del usuario o cliente es clave para mejoras continuas 
  • Se apoya en restricciones estrictas de costes, calidad y tiempo 
  • Prioriza el alcance según Debe Tener, Debería Tener, Podría Tener o No Tendrá

Además de la práctica en sí, DSDM también dio lugar a la creación del Consorcio DSDM en 1994. Ingenieros de software y otros expertos se unieron para desarrollar y mejorar el marco como una alternativa válida a las metodologías rápidas de desarrollo más comunes. En esa época, el grupo incluía representantes de empresas como British Airways, American Express, Oracle, Logica, Data Sciences y Allied Domecq. El grupo ahora se ha reestructurado y actualmente opera bajo el nombre de Agile Business Consortium.

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

Este campo es un campo de validación y debe quedar sin cambios.
Name*

El Manual de DSDM se hizo gratuito para su consulta y uso en línea en 2014.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Este campo es un campo de validación y debe quedar sin cambios.
Name*

DSDM vs RAD vs Agile

La metodología RAD fue extremadamente popular a principios de los años 90 como metodología de desarrollo de sistemas para desarrollo de software y otros proyectos informáticos. Durante este tiempo, hubo un cambio desde la UX tradicional de "pantalla verde" hacia las interfaces gráficas de usuario que ahora se han convertido en sinónimo de la tecnología. Este cambio permitió también modificar el ciclo de desarrollo, utilizando este nuevo tipo de UI visual para la comunicación, la creación rápida de prototipos y la iteración. 

La metodología RAD era un desarrollo ágil de sistemas un poco caótico. No tenía un enfoque o definición unificada. El DSDM Ágil fue un enfoque más estructurado de este tipo de modelo de desarrollo de software. El método de desarrollo de sistemas dinámicos estaba hiper enfocado en los presupuestos de tiempo y coste mediante una estricta priorización del alcance. También da prioridad a la comunicación (y a las acciones resultantes) entre todos los interesados. 

DSDM no solo es estricto respecto a plazos y presupuesto, sino que también tiende a tener un orden firme de eventos: fase Pre-Proyecto, fase del Ciclo de Vida del Proyecto y fase Post-Proyecto. Los métodos RAD de desarrollo de software son más de trabajo libre, permitiendo que la creatividad y la independencia tengan prioridad incluso a costa del agotamiento de recursos. 

Scrum vs DSDM

Scrum y DSDM comparten muchas similitudes pero también presentan diferencias importantes. Algunas son simplemente terminológicas; por ejemplo, DSDM divide el trabajo en la “actividad de ingeniería” (también conocida como la fase de desarrollo) y la “solución emergente” (es decir, el resultado). Mientras que en Scrum, el resultado se conoce como el “incremento potencialmente entregable”. 

Ambos métodos tienen listas de subtareas que se completan ajustándose a plazos estrictos. Ambas metodologías también avanzan hacia un proyecto terminado, el cual Scrum marca una vez que se alcanza la “Definición de Terminado”. Sin embargo, no hay un punto específico dentro del proyecto en el que esta “Definición de Terminado” sea acordada. Esta es una diferencia clave entre Scrum y DSDM. 

En DSDM, existe una fase concreta en la que se acuerda la definición del trabajo (y del trabajo terminado): la Fase de Fundamentos del proyecto. Esto ocurre relativamente temprano, lo que a veces puede significar que suposiciones aún no validadas influyen en el proceso de planificación. Para contrarrestar esto, la definición de trabajo “terminado” se revisa periódicamente a lo largo del ciclo de vida del proyecto. Otro punto importante es que los líderes de equipo deben evitar el Gran Diseño al Inicio (BDUF), que es más característico de las metodologías Waterfall que de las ágiles. 

Principios de DSDM

Los principios ágiles de DSDM son la fuerza guía detrás de cada proyecto. Hay un total de 8 principios.

  1. Enfocarse en la necesidad del negocio
  2. Entregar a tiempo
  3. Colaborar
  4. Nunca comprometer la calidad
  5. Construir incrementalmente sobre bases sólidas
  6. Desarrollar iterativamente
  7. Comunicar de forma continua y clara
  8. Demostrar control

Técnicas y Prácticas de DSDM

Lo que hace que DSDM destaque entre otros métodos de desarrollo de sistemas son las siguientes técnicas y prácticas. 

Timeboxing: DSDM se adhiere a estándares estrictos de plazos. Para hacerlo, es necesario dividir todo el proyecto en elementos más pequeños, cada uno con un presupuesto y un plazo firmes. Para gestionar esto, los requisitos se priorizan. Si el tiempo o el dinero se agotan, se eliminan los requisitos de menor prioridad. De este modo, un proyecto terminado resulta solo de los elementos de requisitos más esenciales. 

MoSCoW: Estos son los grupos de priorización utilizados para ordenar los elementos desde el nivel más alto de importancia hasta el más bajo. Los grupos de priorización son Must Have (Imprescindible), Should Have (Debería tener), Could Have (Podría tener) y Won’t Have (No tendrá). La gestión de configuración ayuda a gestionar todas estas entregas en competencia, que a menudo se desarrollan al mismo tiempo.

Modelado y desarrollo iterativo: El modelado ayuda a visualizar diferentes aspectos del proyecto a lo largo del proceso. Esto sirve para presentar cada elemento en desarrollo y permitir el desarrollo iterativo proporcionando retroalimentación regular e implementando mejoras. 

Prototipado: Como muchas metodologías ágiles, el prototipado es esencial para hacer una prueba del proyecto en una etapa temprana y conceptual. Es una forma de trazar las funciones básicas, descubrir debilidades evidentes y permitir que los usuarios prueben el software. 

Talleres: Se reúne a los usuarios e interesados para discutir requisitos, problemas, resultados y pruebas. DSDM se basa en altos niveles de interacción con el usuario, desde el principio. Las pruebas son sumamente importantes para DSDM, ya que aseguran resultados de alta calidad. 

Roles en DSDM

Cualquier desarrollo ágil de sistemas tendrá una lista de roles que deben cubrirse. DSDM no es la excepción. Según su manual, estos son los roles esenciales en cualquier entorno DSDM. 

1. Patrocinador Ejecutivo (el “Champion del Proyecto”): La organización usuaria y/o el cliente proporcionará a una persona para este rol. También es quien puede asignar fondos y recursos según se necesite. Es el "último responsable" en la toma de decisiones.

2. Visionario - Con objetivos concretos y un entendimiento del negocio del usuario, el Visionario inicia el proyecto enfocándose en los requisitos de mayor prioridad desde el inicio y guiando al equipo en función de los mismos. 

3. Usuario Embajador - Un “usuario de prueba” ideal que aporta el punto de vista de la comunidad de usuarios al proyecto. Se convierte en una fuente clave de feedback durante todo el proceso. 

4. Usuario Asesor - Otro tipo de usuario que debe aportar puntos de vista esenciales al proyecto en cuestión. Puede tener perspectivas únicas u otros conocimientos que lo conviertan en el candidato ideal. 

5. Jefe de Proyecto - Un jefe de proyecto es quien gestiona el proyecto en general. 

6. Coordinador Técnico - Diseñará la arquitectura del sistema y será responsable del control de calidad de todos los elementos técnicos. 

7. Líder del Equipo - El responsable del equipo, encargado de la coordinación y de facilitar la colaboración. 

8. Desarrollador de Soluciones - Gestiona cualquier requisito del sistema, modela el sistema, desarrolla los códigos entregables y crea prototipos.

9. Probador de Soluciones - Prueba el producto y proporciona comentarios y documentación cuando surgen errores. También vuelve a probar después de que se implementan las correcciones. 

10. Escriba - Registra los requisitos, acuerdos, decisiones y cualquier otra información útil para el avance del proyecto. 

11. Facilitador - Es quien se encarga de motivar y preparar los talleres para mantener el progreso constante y sostenido. Debe ser un comunicador experto, manteniendo a todos enfocados. 

12. Roles Especialistas - Estos son roles ocupados por especialistas en su campo o industria, que ofrecen soporte adicional según las necesidades del proyecto. Pueden variar de un proyecto a otro y de un equipo a otro. Roles de este tipo pueden incluir Arquitecto Empresarial, Responsable de Calidad, Integrador de Sistemas, y más. 

Consejos para la gestión de proyectos DSDM

Estos consejos pueden ayudarte a sacar el máximo partido de tu proyecto DSDM, aunque todos los sistemas ágiles también pueden beneficiarse de estas recomendaciones. 

1. La alta dirección y todos los empleados deben comprender y estar comprometidos con la metodología elegida para un proyecto. 

2. El equipo líder del proyecto debe comprometerse con las pruebas de usuario, la retroalimentación y la participación durante todo el proceso, desde la concepción hasta el lanzamiento.

3. Debe haber un equipo central estable y empoderado. Los miembros del equipo deben tener poder de decisión para asegurar que el proceso no se estanque en propuestas y aprobaciones innecesariamente complicadas. El equipo también debe contar con todo lo necesario para funcionar, como la tecnología adecuada, un entorno de desarrollo saludable, herramientas de gestión de proyectos y más. 

4. Debe existir una relación de apoyo y proactiva entre el cliente y el proveedor, ya sea que los proyectos se desarrollen internamente o se subcontraten. 

5. El equipo debe demostrar valentía a la hora de priorizar honestamente las necesidades del proyecto y eliminar elementos de baja prioridad según sea necesario. Así es como se mantiene todo a tiempo y dentro del presupuesto.