If you have heard of Agile, then you have probably also heard of DSDM, or Dynamic System Development Method. These project management methodologies have a lot in common.
But what is DSDM? To answer this question, we will need to talk about birds. I know that may sound silly, but I promise I am not getting off track here.
DSDM is often associated with the Arctic Tern. An Arctic Tern is a seabird known for its migration between the north and south poles. True to its behavioral traits, the Arctic Tern is a symbol of free movement, unyielding energy, adaptability and collaboration. That is probably why one of the most widely used Agile project development frameworks is named after this bird.
DSDM is known for providing best practices for in-budget and on-time delivery of working software. DSDM was first conceived in 1994 as a more structured and disciplined approach than its predecessor, Rapid Application Development, or RAD. RAD is an iterative software development approach that uses minimum planning in favor of rapid prototyping. However, this approach was highly unstructured and chaotic. This is because there was no fixed definition of processes and techniques. As such, everyone had different interpretations of the system. So, software professionals from various companies came together and formed the DSDM Consortium with the aim of developing a development approach that could serve as a possible replacement for the unstructured RAD. Combining industry-acknowledged best practices, the group introduced DSDM, which embodies an iterative and incremental development approach.
Now, what does “iterative and incremental development” mean?
In the simplest terms, the entire project plan is broken down into small chunks of work known as features or jobs. The team will create features based on business value and priority. Each feature is developed one by one following pre-planned developmental activities such as designing, coding, testing, and integrating. After a feature is delivered to the actual production scene, it is evaluated by the client. Based on the client’s impression of the feature coupled with the latest business demands and requirements, the client provides feedback. This feedback is taken into account when planning the next developmental cycle. In this way, software is developed in time-boxed iterations. Then, the software is refined with each iteration, because additional features get incorporated into the overall software. In this manner, the team is able to develop features that are functional and relevant.
Does following an iterative and incremental development model benefit both the team and the client?
DSDM is defined as a developer-centric development framework for both on-time and in-budget delivery of user-valued and quality-controlled project features. Based on this definition, DSDM is also client friendly. This is because DSDM encourages active user involvement and close collaboration between stakeholders and the technical team. Stakeholders possess a better picture of the functional purpose of the software, so they impart this knowledge to the technical team members who are experts in developing software. DSDM suggests different ways to promote cooperation between the two groups. First, stakeholders and technical team members should meet to discuss requirements and functionalities to enhance mutual understanding. Second, project review meetings are held at the end of each iteration in which stakeholders provide feedback and inform the development team of any new requirements or business demands. Based on this feedback, the development team plans the next iterations.
Being an Agile development approach, DSDM doesn’t define tools and processes at the start of the project, but does set parameters such as cost, quality and time. The project deliverables are adapted to fulfill the set criteria. This is done by prioritizing the deliverables following the MoSCoW technique; that is, must haves, should haves, could haves and won’t haves. This is both developer and client friendly, because the client gets features developed according to value and priority, and the developers are free to mould the process to deliver software that is both technically innovative and fit for the business’s purpose.
The development teams are self-organizing, empowered and highly coordinated. DSDM encourages open communication among team members so that there is free exchange of information. And, DSDM believes in building teams that can make quick decisions, because software development is an ever-changing industry.
These principles are good, but who puts them in action?
DSDM defines 15 specific roles. The main roles are executive sponsor, visionary, ambassador user, advisor user, project manager, technical coordinator, team leader, developers, designers, programmers, testers and analysts.
In conclusion, it can be said that DSDM is a relevant and effective approach to managing software development projects.