Like the wider agile family of methodologies, Dynamic Systems Development Method is an iterative approach to software development but adds additional discipline and structure to the process. Central to DSDM is the principle that “any project must be aligned to clearly defined strategic goals and focus upon early delivery of real benefits to the business.”
DSDM advocates refer to it as a 'grown-up' version of agile for the corporate world.
In the 1990s, the rapid application development (RAD) approach was becoming increasingly popular, which enabled developers to show their users and customers possible solutions quickly with easy to build prototypes.
However, this approach was often unstructured, with no common processes between RAD teams. This led to each organization building their approaches and frameworks, splitting standards and making it difficult to recruit experienced RAD practitioners.
To solve this issue, the DSDM Consortium was founded with the objective of "jointly developing and promoting an independent RAD framework" and DSDM was born.
Since then, there have been numerous versions. The most recent version was released in 2014 and is called the " DSDM Agile Project Framework" and will be the focus of this article. This is openly and freely available here.
DSDM is structured around eight key principles:
Focus on the Business Need: DSDM teams must establish a valid business case and ensure organizational support throughout the project
Deliver on Time: Work should be time-boxed and predictable, to build confidence in the development team.
Collaborate: DSDM teams must involve stakeholders throughout the project and empower all members of the team to make decisions.
Quality: To ensure high quality, the level of quality should be agreed with the business at the start of the project. This is enforced through continuous testing, review, and documentation.
Build Incrementally from Firm Foundations: Teams must do Enough Design Work Up Front (EDUF) to ensure they know exactly what to build, but not too much to slow development.
Developer Iteratively: Take feedback from the business and use this to continually improve with each development iteration. Teams must also recognize that details emerge as the project or product develops and they must respond to this.
Communicate Continuously and Clearly: Holding daily stand-up sessions, encouraging informal communication, running workshops and building prototypes are all key DSDM tools. Communicating through documents is discouraged - instead, documentation must be lean and timely.
Demonstrate Control: The Project Manager and Team Leader should make their plans and progress visible to all and focus on successful delivery.
Projects are delivered on time, whilst still allowing flexibility
Progress can be easily understood across the organization
Business cases are at the core of the DSDM model, ensuring delivered projects have real business value.
Large management overhead and costly implementation makes this unsuitable for small organizations
DSDM can be restrictive and inhibit developer creativity. Projects are likely to be completed exactly as specified, even if more elegant solutions are available.
Every development methodology has its strengths and weaknesses. If your team values predictability, consistency and tight control of costs, DSDM might be a good fit. However, you'll lose creativity and flexibility, which may not be best suited to smaller startups.