DSDM, or also known as Dynamic Systems Development Method is an agile project delivery framework, addressing the full project lifecycle and its impact on the business, including the guidance needed to bring a product through the entire project, and even the releases.
The method has a four-phase framework, namely:
- Feasibility and business study;
- Functional model / prototype iteration;
- Design and build iteration; and
It is an iterative, incremental approach that was first conceived in 1994 when project managers using another agile framework, the Rapid Application Development (RAD) methodology, determined that the new iterative approach to software development should need more governance and stricter guidelines.
Source: Emotive Brand
Dynamic Systems Development Method (DSDM) is a framework largely based around Rapid Application Development (RAD). It focuses on Information Systems projects that are characterized by tight schedules and budgets.
The method’s primary aim is to deliver business needs and real-time benefits. Also, DSDM also make sure that benefits are clear, has feasible solution, with solid foundations already in place before a project is started.
DSDM Project Delivery Method
Source: Methods & Tools
DSDM is an agile development type that prioritizes schedule and quality over functionality.
It uses the MoSCoW method of prioritization, breaking a project into four (4) different types of requirements:
- Must have (M) – requirement critical to a project’s success.
- Should have (S) – possible requirements that represent a high-priority item that should be included in the solution.
- Could have (C) – less critical requirements and often seen as nice to have items.
- Won’t have (W) – least-critical and as what the name suggests will not be covered in the project timeframe.
This method is most frequently applied for software development projects, with suitability in any industry and any project (big or small).
It has eight (8) principles:
- Focus on the business need. The team should understand business priorities and commit in delivering at least the Minimum Usable Subset.
- Deliver on time. The team splits up the work into increments prioritizing project requirements; and protecting the deadlines to ensure that the project is delivered on real-time. For long-term projects, they are delivered on-time using the on-time delivery of each increment, or Timebox.
- Collaborate. Successful collaboration is achieved through partnering with the right stakeholders. Thus, improving the whole team’s performance.
- Never compromise quality. The desired quality of the project products has been already agreed by the team even at the beginning of the project by defining the acceptance criteria.
- Build incrementally from firm foundations. Before any significant resources are dedicated to the project delivery, the team builds a solid understanding of the project requirements and proposed solution to create a strong foundation. After each delivered increment, priorities and ongoing project viability are reassessed.
- Develop iteratively. Having results demonstration and business feedback after every iteration, teams encourage creativity, learning, and experimentation through iterative development.
- Communicate continuously and clearly. As informal communication encouraged, daily stand-up meetings and workshops are conducted so that communication needs of the project are fulfilled.
- Demonstrate control. Project managers should conduct planning and progress tracking because they are considered crucial for the project to be managed under control.
Intended to be more than just a framework forthe creation of software development packages in increments, DSDM is a full life-cycle approach beyond software development projects.
It uses the MoSCoW method of prioritization which are the Must have (M), Should have (S), Could have (C), and Won’t have (W), having an integral part with the project’s success.
Through DSDM, teams get to focus on business needs, make projects deliver on time, successfully collaborate for better performance, can already agree on the desired quality of the project products even at the earliest part of the development, build incrementally from strong foundation, develop iteratively, communicate continuously and clearly,and demonstrate control over the project.
If you enjoy reading about software development methodologies, let’s take a look at other blog posts.
By Tuan Nguyen