The Dynamic Systems Development Method (DSDM) is an agile project delivery framework, primarily used as a software development method. It is a framework which embodies much of the current knowledge about project management. DSDM is rooted in the software development community, but the convergence of software development, process engineering and hence business development projects has changed the DSDM framework to become a general framework for complex problem solving tasks. The DSDM framework can be implemented for agile and traditional development processes.
DSDM is a,
- Straight forward framework based on best principles to start implementing a project structure.
- But not calming to be the solution to all kind of projects.
Why use DSDM?
- Results of development are directly and promptly visible
- Since the users are actively involved in the development of the system, they are more likely to embrace it and take it on.
- Basic functionality is delivered quickly, with more functionality being delivered at regular intervals.
- Eliminates bureaucracy and breaks down the communication barrier between interested parties.
- Because of constant feedback from the users, the system being developed is more likely to meet the need it was commissioned for.
- Early indicators of whether project will work or not, rather than a nasty surprise halfway through the development
- System is delivered on time and on budget.
- Ability of the users to affect the project's direction.
There are 9 principles which are essential to any DSDM implementation, ignoring one of them will break with the frameworks philosophy and significantly increase project risks.
1) Active user involvement – Imperative.
2) Teams must be empowered to make decisions.
3) Focus on frequent delivery.
4) Criterion for accepted deliverable (Fitness for Business).
5) Iterative and incremental development – Mandatory.
6) All changes during development must be reversible.
7) Requirements are base lined at high level.
8) Testing is integrated throughout the life cycle.
9) Collaborative and co-operative approach.
The Agile Manifesto claims 4 values and 12 principles, and is considered the beginning of agile development methods. These principles need to associate with the agile manifesto to show how DSDM relates to the agile philosophy.
The DSDM project consists of 7 phased steps which are organized and embedded in a rich set of roles and responsibilities and are supported by several core techniques.
- Roles and Responsibilities
- Team Organization and Size
- 7 Phases to Rule Them
2. Feasibility Study
3. Business Study
4. Functional Model Iteration
5. Design & Build Iteration
Core Techniques Used in DSDM
Traditional Project Management uses milestones where as DSDM uses timeboxing technique.Is an interval, usually no longer than 2,4 or 6 weeks, where a given set of tasks should be achieved.
- Can contain several tasks.
- At the end need to deliver a product.
- Are subject to change since tasks are defined ,not what to be delivered.
- Can change the tasks during time box iteration which allows for rapid response to business needs.
DSDM drops functionality in flavor of delivering in time.
DSDM projects are concerned to be in time and on budget and users are heavily involved in the development process. So it is mandatory to keep on watch on what users need the most.
User requirements may change ( during the process) ;
- Aware of new technical possibilities
- User work environment changes
The DSDM techniques to weight the importance of requirements are the MosCow rules. And the rules are as follows,
1. Must have : All features classified in this group must be implemented and if they are not delivered, the system would simply not work
2. Should have : Features of this priority is important to the system but can be omitted if time constraints endanger.
3. Could have : These features enhance the system with functional items which can easily be reassigned to a later timebox.
4 .Want to have : These features only serve a limited group of users and are of little value.
Evolutionary prototyping in DSDM projects satisfy 2 principles,
- Frequent Delivery
- Incremental development
Implements critical functionality first so can discover difficulties early in the development process and allow having early deliverable to get user feedback.
The necessary feedback-loop is provided by a workshop which is the last important technique in a DSDM project.
DSDM differentiates on the following for types of prototypes,
- Business Prototype : Allow assessment of the evolving system
- Usability Prototype : Check the user interface
- Performance Prototype : Ensure solution will deliver performance or handle volume
- Capability Prototype : Evaluate possible options
Key Success Factors
The DSDM consortium has compiled 10 most important factors from its members:
- Acceptance of DSDM philosophy before starting work.
- The decision making powers of users and developers inside the development team.
- The commitment of senior user management to provide significant end-user involvement.
- Incremental delivery.
- Easy access by developers to end-users.
- The stability of the team.
- The development team skills.
- The size of the development team.
- A supportive commercial relationship.
- The development technology.
Weakness of DSDM:
- Licensing cost
- Relatively high barrier to entry
- Cultural shift in organization
DSDM clearly represent itself as the most mature agile development method.Even Microsoft borrows ideas from DSDM, publishing their own semi-agile solution framework. Xansa used DSDM to organize its offshore development in India.The latest version of DSDM is “DSDM Atern”. It has proven to be the robust agile framework for efficient project management which is supported and Certified by the DSDM Consortium.Not only that but also it has been nominated for the AGILE CONCEPT Awards 2011.