Dynamic Systems Development Method
|
Contents |
Introduction to DSDM
The Dynamic Systems Development Method provides a framework for an iterative and incremental approach to the development of Information Systems. DSDM was developed in the United Kingdom in the 1990’s and was first released in 1995. At this point in time (April 2005) the fourth version of the DSDM manual is in use. DSDM was developed by a consortium of vendors and experts in the field of IS development, the DSDM Consortium, combining their best-practice experiences. As an extension of Rapid Application Development, DSDM focuses on Information System projects that are characterized by tight timescales and budgets. DSDM addresses the problems that frequently occur in the development of Information Systems with regards to going over time and budget and other common reason for project failure such as lack of user involvement and top management commitment.
Principles of DSDM
Underlying DSDM are the following key principles. These principles form the cornerstones of development using DSDM.
- The main focus of DSDM is on delivering a system that addresses the current business needs. It is not so much directed at delivering a perfect system addressing all possible business needs, but focuses its efforts on those functionalities critical in achieving the stated project/business goals.
- No system is built perfectly in the first try. In the process of developing an IS, 80 percent of the solution can be developed in 20 percent of the time needed to develop the complete and perfect solution. Perfecting the IS' last 20 percent often causes the project to go over deadlines and budgets. Because DSDM focuses on delivering exactly that what the business needs, it is most times unnecessary to construct the perfect solution.
- Project delivery should be on time, on budget and with good quality. How this is achieved will be addressed in a later section.
- The requirements for the IS need to be flexible. As will be addressed later, flexible requirements are important enablers of DSDM.
- DSDM only requires each step of the development to be completed far enough for the next step to begin. This way a new iteration of the project can commence without having to wait for the previous to be completed entirely. And with every iteration the system is improved incrementally.
- Communication between project stakeholders is an important prerequisite for running an efficient and effective project.
- User involvement is key in running an efficient and effective project.
- The project teams need to be empowered to make decisions that are important to the progress of the project.
- Both Project Management and Development techniques are incorporated in DSDM.
- Next to developing new IS, DSDM can also be used in projects expanding current system or even non IT-related business change projects.
Prerequisites for using DSDM
In order for DSDM to be a success, a number of prerequisites need to be realized. First there needs to be interactivity between the project team, future end users and higher management. This addresses well known failures of IS development projects due to lack of top management motivation and/or user involvement.
A second important prerequisite for DSDM projects is the decomposability of the project. The possibility of decomposition into smaller parts enables the iterative and incremental properties of DSDM. It is even possible to create several smaller projects working according to DSDM principles.
A third important property is the possibility to clearly define and prioritize the requirements for the IS.
Projects that in some way do not meet these requirements are less suited for development using the DSDM approach. For example, complex projects that are hard or impossible to decompose cannot be developed using the iterative approach of DSDM. In a similar fashion unclear requirements or requirements that can not be prioritized, can cause projects to go over time and budget. Effects that DSDM was made to avoid.
In the same way a project that has unclear requirements or requirements that are hard to prioritize often causes delays. And that is exactly the effect that DSDM was developed to avoid. There is another group of projects that DSDM is not very-well suited for and that are safety-critical. The extensive testing and validation that is involved with this kind of project collides with DSDM goals of being on time and on budget. Finally, projects that aim at re-usable component might not be well-suited for development using DSDM, because the demands on perfection are too high and collide with the 80%/20% principle, described in an earlier section.
The Phases of DSDM
The DSDM framework consists of three sequential phases, namely the Pre-Project, Project and Post-project phases. The Project phase of DSDM is the most elaborate of the three phases. It consists of 7 stages that form an iterative step-by-step approach in developing an IS. The three phases and corresponding stage are explained extensively in the subsequent sections. For each stage/phase, the most important activities are addressed and the deliverables explained.
Phase 1: The Pre-Project
In the pre-project phase candidate projects are identified, project funding is realized and project commitment is ensured. Handling these issues at an early stage avoids problems at later stages of the project.
Dsdm-project-life-cycle.png
Phase 2: The Project life-cycle
The process overview in the figure above shows the project life-cycle of this phase of DSDM. It depicts the 5 stages a project will have to through to create an IS. The first two stages, the Feasibility Study and Business Study are sequential phases that compliment each other. After these phases have been concluded, the system is developed iteratively and incrementally in the Functional Model, Design & Build Iteration and Implementation stages. The iterative and incremental nature of DSDM will be addressed further in a later section.
Stage 1: The Feasibility Study
During this stage of the project, the feasibility of the project for the use of DSDM is examined. Prerequisites for the use of DSDM are addressed by answering questions like; ‘Can this project meet the required business needs?’, ‘Is this project suited for the use of DSDM?’ and ‘What are the most important risks involved?’. The most important techniques used in this phase are the Workshops The deliverables for this stage are the Feasibility Report and the Feasibility Prototype that address the feasibility of the project at hand. It is extended with a global Outline Plan for the rest of the project and a Risk Log that identifies the most important risks for the project.
Stage 2: The Business Study
The Business Study extends the Feasibility Study. After the project has been deemed feasible for the use of DSDM, this stage examines the influenced business processes, user groups involved and their respective needs and wishes. Again the Workshops is one of the most valuable techniques, workshops in which the different stakeholders come together to discuss the proposed system. The information from these sessions is combined into a requirements list. An important property of the requirements list is the fact that the requirements are (can be) prioritized. These requirements are prioritized using the MoSCoW approach. Based on this prioritization, a development plan is constructed as a guideline for the rest of the project. An important project technique used in the development of this plan is Time Boxing. This technique is essential in realizing the goals of DSDM, namely being on time and on budget, guaranteeing the desired quality. A System Architecture is another aid to guide the development of the IS. The deliverables for this stage are a Business Area Definition that describes the context of the project within the company, a System Architecture Definition that provides an initial global architecture of the IS under development together with a Development Plan that outlines the most important steps in the development process. At the base of these last two documents there is the Prioritized Requirements list. This list states all the requirements for the system, organized according to the MoSCoW principle. And last the Risk Log is updated with the facts that have been identified during this phase of DSDM.
Stage 3: Functional Model Iteration
The requirements that have been identified in the previous stages are converted to a functional model. This model consists of both a functioning prototype and models. Prototyping is one of the key project techniques within this stage that helps to realize good user involvement throughout the project.
The developed prototype is reviewed by the different user groups. In order to assure quality, Testing is implemented throughout every iteration of DSDM. An important part of testing is realized in the Functional Model Iteration. The Functional Model can be subdivided in four sub-stages:
- Identify Functional Prototype: Determine the functionalities to be implemented in the prototype that results from this iteration.
- Agree Schedule: Agree on how and when to develop these functionalities.
- Create Functional Prototype: Develop the prototype.
- Review Prototype: Check correctness of the developed prototype. This can be done via testing by end-user and/or reviewing documentation.
The deliverables for this stage are a Functional Model and a Functional Prototype that together represent the functionalities could be realized in this iteration, ready for testing by users. Next to this, the Requirements List is updated, deleting the items that have been realized and rethinking the prioritization of the remaining requirements.
Stage 4: Design & Build Iteration
The main focus of this DSDM iteration is to integrate the functional components from the previous phase into one system that satisfies user needs. It also addresses the non-functional requirements that have been set for the IS. Again Testing is an important ongoing activity is this stage. The Design & Build Iteration can be subdivided in four sub-stages:
- Identify Design Prototype: Identify functional and non-functional requirements that need to be in the tested system.
- Agree Schedule: Agree on how and when to realize these requirements.
- Create Design Prototype: Create a system that can safely be handed to end-users for daily use.
- Review Design Prototype: Check the correctness of the designed system. Again testing and reviewing are the main techniques used.
The deliverables for this stage are a Design Prototype during the phase that end users get to test and at the end of the Design & Build Iteration the Tested System is handed over to the next phase.
Stage 5: Implementation
In the Implementation stage, the tested system including user documentation is delivered to the users and training of future users is realized. The system to be delivered has been reviewed to include the requirements that have been set in the beginning stages of the project. The Implementation stage can be subdivided in four sub-stages:
- User Approval & Guidelines: End users approve the tested system for implementation and guidelines with respect to the implementation and use of the system are created.
- Train Users: Train future end user in the use of the system.
- Implement: Implement the tested system at the location of the end users.
- Review Business: Review the impact of the implemented system on the business, a central issue will be whether the system meets the goals set at the beginning of the project. Depending on this the project goes to the next phase, the post-project or loops back to one of the preceding phase for further development.
The deliverables for this stage are a Delivered System on location, ready for use by the end users and detailed User Documentation of the system.
Phase 3: Post-project
The post-project phase ensures an efficiently operating system. This is realized by maintenance, enhancements and fixes according to DSDM principles. Even the startup of new projects, to extend the existing system or develop a new system, is possible.
List of concepts used
- Time boxingTime boxing is one of the project techniques of DSDM. It is used to support the main goals of DSDM to realize the development of an IS on time, within budget and with the desired quality. The main idea behind Time boxing is to split up the project in portions, each with a fixed budget and a delivery date. For each portion a number of requirements are selected that are prioritized according to the MoSCoW principle. Because time and budget are fixed, the only remaining variables are the requirements. So if a project is running out of time or money the requirements with the lowest priority are omitted. This does not mean that an unfinished product is delivered, because of the Principles underlying DSDM that 80 percent of the project can be realized in 20 percent of the time it takes to realize a complete product and that no system is build perfectly the first time.
- MoSCoWMoSCoW represents a way of prioritizing items. In the context of DSDM the MoSCoW technique is used to prioritize requirements. It is an acronym that stands for:
- MUST have this.
- SHOULD have this if at all possible.
- COULD have this if it does not affect anything else.
- WON'T have this time but WOULD like in the future.
- (An elaborate explanation of the MoSCoW principle can be found here.)
- PrototypingThis technique refers to the creation of prototypes of the system under development at an early stage of the project. It enables the early discovery of shortcomings in the system and allows future users to ‘test-drive’ the system. This way good user involvement is realized, on of the key success factors of DSDM, or any System Development project for that matter.
- WorkshopOne of DSDM’s project techniques that aims at bringing the different stakeholders of the project together to discuss requirements, functionalities and mutual understanding. In a workshop the stakeholders come together and discuss the project.
- TestingA third important aspect of the goal of DSDM is the creation of a IS with good quality. In order to realize a solution of good quality, DSDM advocates Testing throughout each iteration. Since DSDM is a tool and technique independent method, the project team is free to choose its own Test Management Method, for example TMap
Iterative and Incremental Nature
Next to Time boxing and prioritizing of requirements, the DSDM also provides an iterative and incremental approach to IS development. This can be seen in the figure depicting the Process Overview above. The Functional Model, Design & Build Iteration and Implementation stages are all depicted in an iterative manner that shows that each of these stages can go over the different sub stages several times before entering the next stage. Every iteration addressing a set of new functionalities. Thanks to the incremental development approach every iteration is build on a functioning predecessor. And each increment can be turned back when/if needed. Next to this property, the figure also shows arrows going back to previous stages. For example, there is an arrow going back from Implementation to the Business Study. If a big functionality has been discovered during development that couldn’t be implemented, it might be possible to start all over by defining new requirements in a Business Study. Another example of stepping back to a previous stage is the arrow from Implementation to the Functional Model Iteration. This could be the case when functionality had to be omitted during the previous Functional Model Iteration, because of time and/or budget constraints. Only when all the requirements, needed to realize the set project and business goals, are met will the project proceed into the post-project phase. Because of the iterative nature of DSDM, it is essential to maintain good Requirements Management and Configuration Management in place throughout the entire project. This ensure that the project does implement the desired requirements in the desired fashion as was decided in the early phases of the project.
Critical Success Factors of DSDM
Within DSDM a number of factors are identified as being of great importance to ensure successful projects. First there is the acceptance of DSDM by senior management and other employees. This ensures that the different actors of the project are motivated from the start and remain involved throughout the project. The second factor follows directly from this and that is the commitment of management to ensure end-user involvement. The prototyping approach requires a strong and dedicated involvement by end user to test and judge the functional prototypes. Then there is the project team. This team has to be composed of skillful members that form a stable union. An important issue is the empowerment of the project team. This means that the team (or one or more of his members) has to posses the power and possibility to make important decisions regarding the project without having to write formal proposals to higher management, which can be very time-consuming. In order for the project team to be able to run a successful project, they also need the right technology to conduct the project. This means a development environment, project management tools, and etcetera. Finally DSDM also states that a supportive relations ship between customer and vendor is required. This goes for both projects that are realized internally within companies or by outside contractors. An aid in ensuring a supporting relationship could be ISPL.
Meta-model (Meta-Modeling)
As explained in the Wikipedia item, Meta-Modeling takes a higher level look at methods and techniques. In doing so it offers possibilities for comparing similar methods and techniques and engineering new methods form existing ones.
The Meta data model, depicted below, identifies the concepts and associations between these concepts within DSDM. As can be seen from the figure, two main concepts can be identified, namely the Phase and the Flow concept. Each Flow originates from a Phase within DSDM. Flows can be divided up in the sub concepts Data and Product. This subdivision is denoted with a C, which means that the subdivision is disjoint and complete. In other words, a Flow is always either a Data Flow or a Product Flow, but never both. In the situation of DSDM a Data Flow can be an arc returning to one of the preceding phases. Product Flow's' are tangible goods that result from one of the Phases and are the input of the next Phase, for example reports and prototypes.
Then there is the second concept Phase that is also be divided two sub concepts with a complete and disjoint ordering. These sub concepts are the Sequential and the Iterative Phases. As was explained in an earlier section, DSDM starts with two sequential phases, The Feasibility and Business Study. Next a number of Iterative phases follow, i.e. Functional Model, Design & Build and Implementation phases.
The picture also mentions a number of rules and issues that are not included in the model, but that are important for this mea-model. First there are the rules that concerns the behavior of the ‘’Flows’’. These rules restrict the freedom of the flows so that they correspond to the ‘’Phase’’ transitions within DSDM. Next to the rules a number of important issues are addressed that ensure that the DSDM project life-cycle is guaranteed.
Dsdm-meta-data-model.png
Comparison to other IS Development Methods
Over the years a great number of Information System Development methods have been developed and applied, divided in Structured Methods, RAD methods and Object-Oriented Methods . Many of these methods show similarities to each and also to DSDM. For example eXtreme Programming, XP also has an iterative approach to IS development with extensive user involvement.
The Rational Unified Process is a method that probably has the most in common with DSDM in that it also a dynamic way of Information System Development. Again the iterative approach is used in this development method.
Like XP and RUP there are many other development methods that show similarities to DSDM, but DSDM does distinguish itself from these methods in a number of ways. First there is the fact that it provides a tool and technique independent framework. This allows users to fill in the specific steps of the process with their own techniques and software aids of choice. Another unique feature is the fact that the variables in the development are not time/resources, but the requirements. This approach ensures the main goals of DSDM, namely to stay within the deadline and the budget. And last there is the strong focus on communication between and the involvement of all the stakeholders in the system. Although this is addressed in other methods, DSDM strongly believes in commitment to the project to ensure a successful project.
References
The DSDM Consortium (http://www.dsdm.org)
Coleman and Verbruggen: A quality software process for rapid application development, Software Quality Journal 7, p. 107-1222 (1998)
Beynon-Davies and Williams: The diffusion of information systems development methods, Journal of Strategic Information Systems 12 p. 29-46 (2003)
Brinkkemper, Saeki and Harmsen: Assembly Techniques for Method Engineering, Advanced Information Systems Engineering, Proceedings of CaiSE'98, Springer Verlag (1998)