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 que, en aquel momento, se utilizaba para el desarrollo de software. Su objetivo era mejorar el desarrollo rápido de aplicaciones (RAD), que priorizaba la creación rápida de prototipos y la iteración basada en los comentarios de los usuarios. Al igual que muchos métodos ágiles de entrega de proyectos, el Marco ágil de proyectos DSDM pasó finalmente de ser una solución específica para software a convertirse en una herramienta de gestión de proyectos más general.

Los elementos del método de desarrollo de sistemas dinámicos incluyen:

  • Se diferencia de otros métodos por su dependencia de unos fundamentos sólidos y una gobernanza firme
  • Enfoque incremental e iterativo para el progreso 
  • Los comentarios del usuario o cliente son fundamentales para las mejoras continuas 
  • Depende de 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 de desarrollo rápido de aplicaciones más comunes. En aquel momento, el grupo incluía representantes de empresas como British Airways, American Express, Oracle, Logica, Data Sciences y Allied Domecq. El grupo cambió de marca y ahora se conoce como el Consorcio de Negocios Ágiles.

Continue Reading for Free

Create a free account to finish this article, plus get ongoing access to timely insights and practical resources.

El Manual de DSDM se hizo gratuito para consultar y utilizar en línea en 2014.

Mejora tu bandeja de entrada con más sabiduría sobre liderazgo tecnológico para ofrecer mejores programas y sistemas.

DSDM frente a RAD frente a Ágil

La metodología RAD fue enormemente popular a principios de la década de 1990 como metodología de desarrollo de sistemas para el desarrollo de software y otros proyectos de TI. Durante este periodo se produjo un cambio de la UX tradicional de “pantalla verde” a las interfaces gráficas de usuario que ahora se han convertido en sinónimo de toda la tecnología. Este cambio también significó que el ciclo de desarrollo podía cambiar, utilizando este nuevo tipo de interfaz de usuario visual para la comunicación, la creación rápida de prototipos y la iteración. 

La metodología RAD era una forma algo caótica de desarrollo ágil de sistemas. No tenía un enfoque ni una definición únicos aceptados. DSDM ágil ofrecía un enfoque más estructurado para este tipo de modelo de desarrollo de software. El método de desarrollo de sistemas dinámicos estaba extremadamente centrado en los presupuestos de tiempo y costes mediante una priorización estricta del alcance. También prioriza la comunicación y las acciones resultantes entre todas las partes interesadas. 

DSDM no solo es estricto con los plazos y el presupuesto, sino que también tiende a tener un orden firme de acontecimientos: fase previa al proyecto, fase del ciclo de vida del proyecto y fase posterior al proyecto. Los métodos de desarrollo de software RAD se basan más en un trabajo libre, dejando que reinen la creatividad y la independencia incluso a costa del agotamiento de los recursos. 

Scrum frente a DSDM

Scrum y DSDM comparten muchas similitudes, pero también tienen algunas diferencias importantes. Algunas se basan simplemente en la terminología; por ejemplo, DSDM divide el trabajo en la “actividad de ingeniería” (también conocida como fase de desarrollo) y la “solución emergente” (también conocida como resultado). En Scrum, en cambio, el resultado se conoce como el “incremento potencialmente entregable”. 

Ambos métodos cuentan con listas de subtareas que se completan respetando plazos estrictos. Ambas metodologías también avanzan hacia un proyecto terminado, que Scrum identifica cuando el proyecto alcanza la “Definición de terminado”. Sin embargo, no existe un momento específico dentro del proyecto en el que se acuerde esta “Definición de terminado”. Esta es una diferencia clave entre Scrum y DSDM. 

En DSDM, existe una fase establecida en la que se acuerda la definición del trabajo (y del trabajo terminado): la fase de fundamentos del proyecto. Esto ocurre relativamente pronto, lo que a veces puede significar que suposiciones aún no fundamentadas influyan en el proceso de planificación. Para tener esto en cuenta, la definición del trabajo “terminado” debe revisarse periódicamente a lo largo del ciclo de vida del proyecto. Otro punto conflictivo es que los líderes de equipo deben evitar el Diseño grande por adelantado (BDUF), que es más característico de las metodologías en cascada y no de los métodos ágiles. 

Principios de DSDM

Los principios ágiles de DSDM son la fuerza que guía cada proyecto. Hay 8 principios en total.

  1. Centrarse en la necesidad empresarial
  2. Entregar a tiempo
  3. Colaborar
  4. No comprometer nunca la calidad
  5. Construir incrementalmente a partir de fundamentos sólidos
  6. Desarrollar iterativamente
  7. Comunicarse de forma continua y clara
  8. Demostrar control

Técnicas y prácticas de DSDM

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

Gestión por bloques de tiempo: DSDM se adhiere a estrictos estándares de plazos. Para ello, se debe dividir el proyecto completo en elementos más pequeños, cada uno con un presupuesto y un plazo firmes. Para gestionar esto, se priorizan los requisitos. Si se acaba el tiempo o el dinero, se eliminan los requisitos de menor prioridad. Así, un proyecto terminado surge únicamente de los elementos de requisitos más esenciales. 

MoSCoW: Estos son los grupos de priorización utilizados para clasificar los elementos desde el nivel más alto de importancia hasta el más bajo. Los grupos de priorización son Imprescindible, Debería tenerlo, Podría tenerlo y No lo tendrá. La gestión de la configuración ayuda a gestionar todos estos entregables que compiten entre sí y que a menudo se desarrollan al mismo tiempo.

Modelado y desarrollo iterativo: El modelado ayuda a visualizar diferentes aspectos del proyecto durante su desarrollo. Esto permite presentar cada elemento en desarrollo y posibilita el desarrollo iterativo mediante la recepción periódica de comentarios y la implementación de mejoras. 

Prototipado: Al igual que en muchas metodologías ágiles, el prototipado es esencial para probar el 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: Los usuarios y las partes interesadas se reúnen para debatir los requisitos, los problemas, los resultados y las pruebas. DSDM depende de altos niveles de interacción con los usuarios desde el principio. Las pruebas son de gran importancia para DSDM, ya que garantizan resultados de alta calidad. 

Roles de DSDM

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

1. Patrocinador ejecutivo (el «defensor del proyecto») - La organización usuaria o el cliente proporcionarán a alguien para este rol. Esta persona también puede asignar fondos y recursos según sea necesario. Tiene la «última palabra» en la toma de decisiones.

2. Visionario - Armado con objetivos concretos y un conocimiento del negocio del usuario, el Visionario inicia el proyecto centrándose desde el principio en los requisitos de mayor prioridad y guiando al equipo en función de ellos. 

3. Usuario embajador - Un «usuario de prueba» ideal que incorpora al proyecto el punto de vista de la comunidad de usuarios. Se convierte en una fuente clave de comentarios durante todo el proceso. 

4. Usuario asesor - Otro tipo de usuario que debe aportar perspectivas esenciales al proyecto en cuestión. Puede tener conocimientos únicos u otra experiencia que lo convierta en el candidato ideal. 

5. Director del proyecto - Un director del proyecto es cualquier persona que gestiona el proyecto en su totalidad. 

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 líder del equipo, responsable de la coordinación y de facilitar la colaboración. 

8. Desarrollador de soluciones - Gestiona los requisitos del sistema, modela el sistema, desarrolla el código de los entregables y crea prototipos.

9. Probador de soluciones - Prueba el producto y proporciona comentarios y documentación cuando surgen errores. También vuelve a realizar las pruebas después de implementar las correcciones. 

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

11. Facilitador - Se encarga de motivar y preparar el taller para que el progreso sea constante y estable. Debe ser un gran comunicador y mantener a todos encaminados. 

12. Roles especializados - Son roles ocupados por especialistas en su campo o sector, que proporcionan apoyo adicional según las necesidades del proyecto. Pueden variar de un proyecto a otro y de un equipo a otro. Estos roles pueden incluir arquitecto de negocio, responsable de calidad, integrador de sistemas y otros. 

Consejos para la gestión de proyectos DSDM

Estos consejos pueden ayudar a sacar el máximo partido de su proyecto DSDM, aunque todos los sistemas ágiles también pueden beneficiarse del uso de parte de estos conocimientos. 

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

2. El equipo que dirige el proyecto debe comprometerse con las pruebas de usuario, los comentarios y la participación durante todo el proceso, desde la concepción hasta el lanzamiento.

3. Debe existir un equipo central del proyecto estable y con autoridad. Los miembros del equipo deben tener capacidad de decisión para garantizar que el proceso no quede atrapado en procesos de propuesta y aprobación innecesariamente engorrosos. El equipo también debe disponer de todo lo necesario para funcionar, como la tecnología adecuada, un entorno de desarrollo saludable, herramientas de gestión de proyectos y mucho más. 

4. Debe existir una relación de apoyo y proactiva entre el cliente y el proveedor, tanto si los proyectos se desarrollan internamente como si se subcontratan. 

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