DSDM is an agile software development methodology. It is an iterative, incremental approach that is largely based on the Rapid Application Development (RAD) methodology. The method provides a four-phase framework consisting of:
- Feasibility and business study
- Functional model / prototype iteration
- Design and build iteration
Within each phase, DSDM relies on several different activities and techniques based on these principles:
- Projects evolve best through direct and co-located collaboration between the developers and the users.
- Self-managed and empowered teams must have the authority to make time sensitive and critical project-level decisions.
- Design and development is incremental and evolutionary in nature and is largely driven by regular, iterative user feedback.
- Working software deliverables are defined as systems that address the critical, current business needs versus systems that address less critical future needs.
- Frequent and incremental delivery of working software is valued over infrequent delivery of perfectly working software.
- All changes introduced during development must be reversible.
- Continuous integration and quality assurance testing is conducted in-line, throughout the project lifecycle.
- Visibility and transparency is encouraged through regular communication and collaboration amongst all project stakeholders.