Dynamic systems development is an effective software development methodology. I’ve personally used it to complete countless projects over my 15-year career as a software developer. It’s a collaborative, flexible, iterative method. It’s also excellent if you want to optimize your development processes and project potential.
Dynamic Systems Development Method (DSDM) Overview
DSDM originated in 1994 as a framework for delivering projects. It was created by the DSDM Consortium in the United Kingdom to provide a more structured approach to rapid software development, and the method emphasizes delivering business value early and continuously throughout the project’s lifecycle.
DSDM has the following defining characteristics:
- Active user involvement
- Frequent delivery of products
- Testing integrated throughout the project
- Collaboration and cooperation between all stakeholders
- Incremental and iterative development
- Changes that are reversible
- High-level requirements baselined
- Products deliver the business need
.
DSDM has evolved over the years, and it’s most recent version, released in 2014, is called the Agile Project Framework. This evolution has preserved the core principles of DSDM, but it has also adapted the framework to fit today’s project management needs
The core principles of DSDM are as follows:
- Focus on the business need
- Deliver on time
- Collaborate
- Never quality
- Incremental building blocks
- Iterative development
- Communicate continuously and clearly
- Control must be demonstrated
These principles help teams effectively apply DSDM. And the principles ensure the project continues to deliver the business need while still being flexible and responsive to change.DSDM Process and Lifecycle
The DSDM process is broken down into several key phases, each of which plays a role in the project’s overall success.
The pre-project phase prepares the team. Here, teams define the project’s purpose and ensure it’s aligned with business goals. This phase ensures the project kicks off with the right intent.
The feasibility and foundations phases lay the groundwork. During the feasibility phase, teams analyze whether the project is feasible. The foundations phase then lays the groundwork for the development efforts. These phases ensure the team has a shared understanding of the project’s parameters.
The evolutionary development phase is where the team does the majority of the work. Teams build and improve the solution via multiple iterations. This phase is where you see DSDM’s agility come into play.
The deployment and post-project phases are focused on delivering the solution and assessing its value. These phases ensure you deliver the project’s value and take away key learnings for the next project.
DSDM’s iterative approach includes:
- Developing within timeboxes
- Keeping the solution relevant to the business by involving users
- Reviewing and adjusting frequently
- Delivering business functionality incrementally
- Prioritizing functionality delivered.
This approach allows the team to adapt to changing requirements and deliver business functionality in an incremental fashion throughout the project lifecycle. Agile communication plays a crucial role in ensuring all team members and stakeholders are aligned throughout these phases.
Timeboxing in Dynamic Systems Development
Timeboxing is one of the key principles of DSDM. It means fixing the time and resources for each development iteration while allowing the delivered features to vary. A typical DSDM timebox is 2-4 weeks.
A DSDM timebox is organized into:
- Investigation
- Refinement
- Consolidation
- Close out
The benefits of timeboxing are that it helps teams stay focused and productive, prevent scope creep, deliver a solution frequently, engage stakeholders, and manage risk better.
To use timeboxing effectively, ensure each timebox has a clear objective. Be ruthless about task prioritization. Empower the team to make decisions within the timebox. Check the plan often and make corrections as necessary.
Following these principles will help the team maintain momentum and consistently deliver value throughout the project. Agile estimation techniques can be particularly useful when planning and managing timeboxes.
DSDM Prioritization Techniques
The MoSCoW method is DSDM’s core prioritization technique. It allows teams and stakeholders to agree on the relative priorities of delivering each requirement.
The MoSCoW categories are as follows:
- Must Have
- Should Have
- Could Have
- Won’t Have this time
Must Have indicates it is an absolute necessity for the success of the project. Should Have means it is important, though not critical. Could Have is something the stakeholders would like to have, but it’s not necessary for the delivery. Won’t Have this time is something the stakeholders have agreed to exclude from this delivery.
Using MoSCoW for project planning requires getting all the stakeholders in a room to Hash out MoSCoW. The team then discusses the priority and impact of each requirement. This process helps the team ensure they are delivering value early and often.
Other prioritization techniques used within DSDM include value, risk and dependency based prioritization. These are powerful when used in combination with MoSCoW, enabling teams to make data driven decisions about which features to deliver. Agile prioritization techniques like these are crucial for maintaining project focus and delivering maximum value.
Roles and Responsibilities in DSDM Teams
DSDM has a set of specific roles to guarantee the success of a project. These roles cover business, technical, and project management.
The business-specific roles in DSDM are:
- Business Sponsor
- Business Visionary
- Business Ambassador
- Business Advisor
The technical-specific roles in DSDM are:
- Technical Coordinator
- Solution Developer
- Solution Tester
The project management-specific roles in DSDM are the Project Manager and Team Leader. These roles keep the project on track and ensure it delivers value to the business.
Team collaboration is also a key element of DSDM, as each role has a different perspective and expertise. The team collaborates to take a holistic approach to project delivery. Agile team structure is crucial for effective collaboration and delivery in DSDM projects.
DSDM Standards and Certification
DSDM recently received accreditation as a British Standard (BS 7666) from the British Standards Institution (BSI), further establishing the credibility and efficacy of this project management methodology.
DSDM practitioners can earn certification through:
- DSDM Agile Project Management Foundation
- DSDM Agile Project Management Practitioner
The benefits of DSDM certification are:
- Increased credibility as an agile project management professional
- Higher project success rates
- Ensuring adherence to the best practices in the industry
- More job opportunities
These certifications demonstrate that practitioners understand how to effectively apply DSDM principles. For those interested in other methodologies, agile scaling frameworks offer additional options for managing larger projects or organizations.
Global Adoption of Dynamic Systems Development
DSDM isn’t just used in the UK. For example, Belarus has embraced DSDM as evidence of its global reach.
DSDM is used across industries such as:
- Finance and banking
- Healthcare
- Government and public sector
- Telecommunications
- Retail
DSDM has become popular globally because it is a flexible, scalable, and business value-focused methodology. Its capability to scale across different cultural and organizational landscapes has also helped it become a global methodology. The principles of DSDM align well with agile best practices, making it a valuable approach for organizations seeking to improve their project management processes.
Final Takeaways
DSDM is a structured, yet flexible project management approach that focuses on collaboration, timeboxing, and prioritization. The method has come a long way since its inception in 1994, and it has evolved to meet today’s needs. Its widespread global adoption and certification offerings validate its relevance in today’s fast development environment. As you use these principles, just remember the key is to always be improving. Continuously iterate on your approach to optimize for efficiency and delivering value.