Desarrollo de software. Método de desarrollo de sistemas dinámicos (DSDM) I

En DSDM estamos ante otra metodología de naturaleza iterativa e incremental y es considerada la primera metodología ágil (su primera versión es del año 1995 y desde entonces se han realizado diversas actualizaciones de la misma).

DSDM está orientada a combatir los principios de la crisis del software, de manera que se puedan realizar proyectos de desarrollo de software en tiempo y presupuesto, verificando las expectativas del usuario (mediante la existencia de requisitos cambiantes que se tratan en las diferentes evoluciones del producto).

Antes de analizar brevemente las fases que componen el ciclo de vida DSDM, es importante repasar los nueve principios en los que se basa la metodología, ya que delimitan la naturaleza de la misma:

1.- Para llevar a cabo un proyecto eficiente y efectivo es necesario que el grupo de usuarios que participan en su definición estén implicados.

2.- El equipo de proyecto debe tener la capacidad de tomar decisiones importantes para que el proyecto siga avanzando sin necesidad de esperar la aprobación de niveles superiores de la jerarquía.

3.- Orientado a la existencia de frecuentes iteraciones, de manera que entregar algo bueno pronto es siempre mejor que esperar a entregar algo perfecto más tarde. El hecho que desde muy pronto se tenga la oportunidad de utilizar el producto, permite que desde etapas muy tempranas comience el continuo proceso de revisión que permita que en cada paso el producto además de ir asumiendo nuevas funcionales se acerque cada vez más a las expectativas del usuario.

4.- Se parte de lo más crítico y esa es la base para definir las características de las entregas, es decir, una entrega debe satisfacer unas serie de funcionalidades que son importantes o críticas en el sistema. No se trata de cubrir todas las necesidades del sistema (lo cual iría en contra de la naturaleza de este tipo de metodologías) sino de centrarse en las que resultan más necesarias, para que el proceso continuo de revisión empiece desde lo que resulta más importante que funcione de forma adecuada. Se trata de ir al grano, ya tocará en un futuro desarrollar y perfeccionar funcionalidades accesorias.

5.- La estrategia de desarrollo, por tanto, es iterativa e incremental y guiada por las necesidades de los usuarios.

6.- Cualquier cambio realizado en el proceso de desarrollo es reversible. Esto es muy importante. Un usuario se ha podido equivocar al especificar una funcionalidad o la forma en que debe operar la misma, si es así no se debe continuar con el error sino rehacer completamente la funcionalidad si fuera preciso.

7.- Los objetivos y requisitos de alto nivel del proyecto han debido ser pactados y aceptados entre las partes que participan en el proyecto, antes de que el proyecto comience.

8.- Las pruebas se realizan a lo largo de todo el ciclo de vida del proyecto, no solo se realizan entre iteración e iteración sino que están presentes en los diferentes entregables. Esto se realiza para la detección temprana de errores, ya que sabemos que cuánto más se tarde en corregirlos, más costoso resulta.

9.- Resulta fundamental la comunicación y cooperación de todas las partes implicadas en el proyecto.