If you want to know where a technology is going, sometimes it is effective to study where it has been. The Dynamic Systems Development Method (DSDM) is currently known as an agile development type, with features that are best suited to certain situations. However, many software developers on the inside will tell you that DSDM preceded agile development in total and should be considered a true precursor, because studying DSDM will lead you into a better understanding of agile development as a whole.
The Development of DSDM
The first version of DSDM was invented circa 1995 as a response to the lack of discipline in the Rapid Application Development methodology. The DSDM Consortium was looking to create a more advanced version of a RAD framework that also had agile principles, although the term "Agile" was not exactly the formal marker that it is today.
As agile development techniques developed, DSDM developed alongside it, with the latest version being released in 2007 and known as DSDM Atern.
DSDM is a methodology that prioritizes schedule and quality over functionality. DSDM uses the MoSCoW method of prioritization, which breaks a project down into four different types of requirements:
- Must have (M)
- Should have (S)
- Could have (C)
- Won't have (W)
DSDM differentiates itself from other types of agile methodologies because of its formalized reporting and tracking requirement. This is actually less common among Agile. DSDM is also considered a truer project management process because of its focus on pre-development and post-development rather than only the development process. The detail that is involved with DSDM Atern in terms of process descriptions make it one of the more difficult Agile methodologies to consider without dedicated in house expertise or consultation. However, some companies actually prefer DSDM Atern to the popular Scrum in some applications because of DSDM's close attention to detail.
How DSDM Moved Process Forward
When rapid application development was being used to created prototypes in the mid and late 1990s, it was criticized for its lack of mobility. Add to this the lack of discipline inherent in the methodology, and you had a process that many companies considered too unproductive to implement.
However, in the same way that rapid application development moved forward the idea of testing prototypes and visualizing functionality before committing to a full scale production run, dynamic systems development method gave more companies the ability to quickly and cheaply utilize the prototyping methodology regardless of industry. The result was a more effective use of time and resources when speculating on new ideas, improved communications with stakeholders, and more accurate production runs based on feedback rather than hypothesis.
Before the Agile Manifesto
It may be useful for initiates into the Agile Manifesto to take a look at projects that were implemented using dynamic systems development method before the Manifesto became "law." Many things that are taken for granted and automated today had to be worked through by individual and by department in the 1990s and 2000s.
New agile development initiates who are having trouble with the Manifesto might benefit from being involved in or observing the entire prototyping experience: experience design, testing and analysis.
DSDM Into Agile
It is no surprise that many of the developers who were involved in creating dynamic systems development method were also responsible for creating Agile as a formal methodology. One such developer, Mike Griffiths, is a dedicated Agile practitioner who is perhaps one of the most credentialed in the designation. As a faculty member of the University of Calgary, Mike routinely takes his students back into the 1990s, before everything was mapped out with the Agile Manifesto. He moves them through the entire process of pre-development, prototyping and testing, into development and post-dev, letting students see exactly how and why Agile techniques work.
Part of the training in many successful companies takes the same approach. Because learning dynamic systems development method and other pre-Agile agile development techniques breaks down the assumptions we take for granted today, processes make sense when they are utilized at lightning speed.