The Dynamic Systems Development Method (DSDM) is a core agile method emphasizing a strong business foundation up front, and execution through the full project development life cycle.
This post looks at the key principles and core techniques of DSDM, the strategic implications, and a strategic project manager’s perspective of the DSDM process.
What Is the Agile Dynamic Systems Development Method?
- The project needs to be strategically driven by a clear value proposition for the business.
- The execution of the project needs to deliver incremental value frequently.
In the early 1990s, Rapid Application Development (RAD) was spreading in popularity for developing new software applications. DSDM was first released in 1994 as an approach to add structure and discipline to the RAD process. DSDM later evolved into an approach that could be used not only for software development but also for other types of projects.
The diagram at right, from the Wikipedia article on DSDM, shows the basic process, with the following primary activities:
- Feasibility and Foundations – Central to DSDM is having a strong, strategically driven business case for the project. Also, before moving forward, DSDM emphasizes the importance of determining if the project in its entirety is feasible.
- Exploration – Exploration involves building a functional model of the overall system. This approach follows the paradigm of starting with the end state in mind. The model needs to be explicit enough to provide a framework to break down the model into smaller, incremental functional parts.
- Engineering – This is where designing and building happen. The idea is to take the piece parts of the functionality, identified and derived in the Exploration phase, and design and build incrementally.
- Incremental Deployment – As each set of functionality is designed, built, and tested, it is deployed. Consistent with common agile principles, this builds in the idea of adding value early and often, obtaining customer feedback, and pivoting if necessary.
I have expanded on this process in the project management section below.
But first, let’s explore the key principles and core techniques of DSDM.
What Are the Key Principles of Agile DSDM?
Below are the core techniques of DSDM, with commentary on how the principles relate to the Agile Manifesto:
- Focus on the business need – This is captured in the principle, “Our highest priority is to satisfy the customer…”
- Deliver on time – Is consistent with the principle, “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.” Frequent deliveries expose problems and deliver value early.
- Collaborate – Maps to the principle, “Business people and developers must work together daily throughout the project.”
- Never compromise quality – Builds on the principles, “Working software is the primary measure of progress” and “Continuous attention to technical excellence and good design…”
- Build incrementally from firm foundations – Incremental delivery is emphasized throughout, and combining with firm foundations is captured in the principle, “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
- Develop iteratively – Corresponds to the principle to “Deliver working software frequently…”.
- Communicate continuously and clearly – The importance of communication is captured in the statement, “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”
- Demonstrate control – Maintaining control is the focus of two principles: 1. “Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.” and 2. “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”
DSDM has derived principles from core agile principles – and also contributed. Bottom line: DSDM is consistent with core agile methodologies.
What Are the Core Techniques of Agile DSDM?
Below are the core techniques of DSDM, with a brief explanation of each:
- Timeboxing – A technique where you estimate the time a task will take, and commit to getting it done within that timeframe. Timeboxing creates urgency and focus. This is what happens with kanban boards in agile sprints.
- MoSCoW – A prioritization technique using four categories: M = Must have, S = Should have, C = Could have, and W = Won’t have. These are in priority order.
- Prototyping – The idea of building a model, as is core in agile Feature driven development (FDD). If you can model what you want, it is easier to build the piece parts. Prototyping provides an opportunity to try out ideas and get user feedback inexpensively. It also supports developing a Minimum Viable Product (MVP).
- Testing – Verification that the system, or piece of the system, works as intended. There are many techniques, such as building test cases before developing, rapidly testing as small features are developed, integration testing, and automated testing. Extreme programming incorporates testing.
- Workshop – An intensive working session including users and developers to work through design concepts in real time. The continuous feedback and collaboration, ideally in person, is what makes workshops effective.
- Modeling – Similar to prototyping, this provides a holistic concept of what is to be produced, allowing for logical work breakdown and development of a backlog of tasks or user stories.
- Configuration management – Disciplined method for tracking changes and versions of the software. This is indispensable for managing the output properly and usually is largely automated.
There is no single way to use any of these techniques. Self-managing teams need to come up with their own way of working, leveraging these techniques to best produce the results.
Dynamic Systems Development Method and Strategy
A unique aspect of DSDM is the emphasis on business drivers. In the graphic at the top, as well as the one below in the next section, the idea of establishing the business drivers up front is strongly emphasized.
DSDM is driven in large part by planning. It’s not just about execution, but rather by firmly determining which business drivers need to be satisfied.
On the strategy side, there should be a project sponsor or rep who is involved from the start and stays involved. This can help to ensure that the original business drivers do not get lost in the evolution of the project.
In addition to ensuring that the project stays on track toward strategic goals, the sponsor needs to be aware of strategic changes that might occur. This could result in range of direction, enhancing the project, or even canceling the project. This is at the core of ‘being agile’.
A PM Viewpoint of the DSDM Process
Here is a diagram which repurposes the graphic at the top of the page:
Here’s a short explanation:
- Initiate project – Always the first step!
- Establish business drivers – Determine what business objectives, strategic or improvement, the project needs to accomplish.
- Determine feasibility – Determine for the team and stakeholders that it’s possible to achieve the objectives for the project within acceptable timeline, budget, and quality standards.
- Build functional model – Take the feasibility to a more tangible level. Make the model robust enough to be able to create a Work Breakdown Structure and identify the tasks or user stories to proceed with design and build.
- Design and build – Done iteratively, this is what happens in sprints. It takes the tasks or user stories from the prior step and executes. Design and build also includes testing.
- Deploy incrementally – It is a best agile practice to deliver working product early and often. Delivering value not only provides valuable feedback to the continuing process but also builds credibility with stakeholders. Go with a Minimum Viable Product (MVP) and improve from there.
- Complete project – Once an accumulation of features have been built to satisfy the stakeholders, the project can be closed.
DSDM uniquely combines some aspects of waterfall planning with agile approaches.
Conclusion and Further Resources
This post has identified the key principles and core techniques of the agile Dynamic Systems Development Method (DSDM). It has looked at the strategic implications, especially the emphasis on business drivers and full product development life cycle, of the DSDM approach. Finally, it has looked at DSDM from a project manager’s perspective and outlined a full project development life cycle flow diagram for the DSDM process.
The DSDM framework is owned and administered by the Agile Business Consortium (ABC), which is both non-profit and vendor independent.