Dynamic System Development Method Dynamic System Development Method is approach to system development, which, as the name suggests, develops the system dynamically. The Dynamic System Development Method (DSDM) is dynamic as it is a Rapid Application Development method that uses incremental prototyping. DSDM is an iterative and incremental approach that emphasizes continuous user/customer involvement.
Dynamic System Development Method Its goal is to deliver projects on time and on budget while adjusting for changing requirements along the way. DSDM is one of a number of Agile methods for developing software and non-I.T. solutions. This method is particularly useful for the systems to be developed in short time span and where the requirements cannot be frozen at the start of the application building.
Model of Dynamic SystemDevelopment Method Dynamic System Development Method (DSDM) has a five-phase life cycle as given the following figure:
Model of Dynamic SystemDevelopment Method Feasibility and Business Study In this phase the problem is defined and the technical feasibility of the desired application is verified. Apart from these routine tasks, it is also checked whether the application is suitable for Rapid Application Development (RAD) approach or not. Only if the RAD is found as a justified approach for the desired system, the development continues.
Model of Dynamic SystemDevelopment Method Feasibility and Business Study The overall business study of the desired system is done. The business requirements are specified at a high level and the information requirements out of the system are identified. Once this is done, the basic architectural framework of the desired system is prepared. The systems designed using Rapid Application Development (RAD) should be highly maintainable, as they are based on the incremental development process. The maintainability level of the system is also identified here so as to set the standards for quality control activities throughout the development process.
Model of Dynamic SystemDevelopment Method Functional Model Iteration: The main focus in this phase is on building the prototype iteratively and getting it reviewed from the users to bring out the requirements of the desired system. The prototype is improved through demonstration to the user, taking the feedback and incorporating the changes. This cycle is repeated generally twice or thrice until a part of functional model is agreed upon. The end product of this phase is a functional model consisting of analysis model and some software components containing the major functionality.
Model of Dynamic SystemDevelopment Method Design and Build Iteration: This phase stresses upon ensuring that the prototypes are satisfactorily and properly engineered to suit their operational environment The software components designed during the functional modeling are further refined till they achieve a satisfactory standard. The product of this phase is a tested system ready for implementation. There is no clear line between these two phases and there may be cases where while some component has flown from the functional modeling to the design and build modeling while the other component has not yet been started. The two phases, as a result, may simultaneously continue.
Model of Dynamic SystemDevelopment Method Implementation Implementation is the last and final development stage in this methodology. In this phase the users are trained and the system is actually put into the operational environment. At the end of this phase, there are four possibilities, as depicted by figure: Everything was delivered as per the user demand, so no further development required. A new functional area was discovered, so return to business study phase and repeat the whole process. A less essential part of the project was missed out due to time constraint and so development returns to the functional model iteration. Some non-functional requirement was not satisfied, so development returns to the design and build iterations phase.
Model of Dynamic SystemDevelopment Method Dynamic System Development Method (DSDM) assumes that all previous steps may be revisited as part of its iterative approach. Therefore, the current step need be completed only enough to move to the next step, since it can be finished in a later iteration. According to this approach, the time is taken as a constraint i.e. the time is fixed, resources are fixed while the requirements are allowed to change.
Nine Principles of DSDM Teams Must be Empowered to Make Decisions: To proceed as quickly as possible transaction costs, as resulting from friction in communications of project participants and managers, need to be avoided. Addressing these inefficiencies users and other DSDM participants should be given limited authority to make decisions related to: Requirements in practice Which functionality needs to be in a given increment Prioritization of requirements and features Fine details of the technical solution
Nine Principles of DSDM Focus on Frequent Delivery: Frequent deliveries of results ensure that errors are detected quickly, are easily reversed and closer at the source of the error. This applies both to program code as well as to documents like requirements or data models.
Nine Principles of DSDM Fitness for Business is Criterion for Accepted Deliverables: As the name of the DSDM framework suggest, its primary endeavor is to deliver software which is good enough to solve the business need and bother with any enhancements in a later iteration. DSDM does not promote to write ad-hoc software, but suggest satisfying the business needs first and related activities in a later iteration.
Nine Principles of DSDM Iterative and Incremental Development is Mandatory: In order to keep the complexity of the project manageable, it needs to be decomposed into small feature packages; with each release adding new features until the complete set of business requirements are fulfilled. This principle requires accepting the fact that any software system is subject to change. This principle can easily be introduced even at the beginning of a project, since specifications and other results can be produced in an iterative manner as well.
Nine Principles of DSDM All Changes During Development Must Be Reversible: Being responsive to change requires that system configurations are changing during the development of any one increment due to changed priorities in the requirements. Modern software tools support a dynamic configuration of projects as required by this principle. It’s often feared that reversing a development process will result in loosing precious previous work, but since DSDM advises to iterate though small increments, the total loss of work is very limited.
Nine Principles of DSDM Requirements are Base lined at High-Level: To limit the degree of freedom to which requirements can be altered during the development process, some high-level requirements need to be established. This baseline which is to be interpreted as a requirements “freeze” is agreed upon during the business study phase of the process.
Nine Principles of DSDM Testing is Integrated Throughout the Lifecycle: Many development methods ask for testing as late as the design or implementation phase. DSDM requires testing early in the development process. Even testing interview documents by cross checking them with a control group, or similar techniques.
Nine Principles of DSDM Collaborative and Co-operative Approach: Avoiding separation and encouraging collaboration of technical staff and business staff in a project is mandatory during DSDM projects, because co-operation is crucial to succeed in a DSDM project. Without an atmosphere of trust and honesty it will be hard to gather requirements, and later getting honest feedback on the resulting products.
Four Values of DSDM Individuals: Many modern management practices highlight the importance of humans, so does the Agile Manifesto and DSDM model. The DSDM principle 1, 2 and to a lesser extend 9 highlight the key role individuals take in a project. Since DSDM projects need to implement all of the 9 DSDM principles it’s implicit to satisfy the agile demand on rating individuals over tools and processes, which are, however, still required by the DSDM model.
Four Values of DSDM Working Software: Principle 7 is crucial to ensure that a common understanding of the definition of “Working Software” exists, the baseline abstracts development goals, which are fixed, and cannot be changed for a given development target.
Four Values of DSDM Collaboration: Collaboration is most significant to DSDM (principle 9) and agile methods likewise, because these development paradigms react to change and whenever change is happening, regardless of being part of a project or in personal life, a fair amount of communication is required sorting out the implication of change. Unfortunately collaboration is not easy, since humans tend to take selfish decisions; especially if an immediate reward is expected. Creating an environment where collaboration works as seamlessly as possible is a management and leadership task.
Four Values of DSDM Responding: Welcoming change and responding to change is rooted in principle 6 and partially in principle 7. The management of changing business demands is commonly perceived as the most prominent difference of agile and traditional methods. DSDM handles change in a variety of ways, mainly through prioritization.
Project Structure of DSDM The DSDM project consists of 7 phased steps which are organized and embedded in a rich set of roles and responsibilities and are supported by several core techniques. Roles and Responsibilities Team Organization and Size Phases to Rule Them
Roles and Responsibilities Several role classifications exist within a DSDM project, namely project, team and workshop roles. Every person takes one of the roles, no distinction between the IT staff roles are made; regardless if a person is programmer, designer or analyst, they are all referred to as developer, one exception being the tester. Another group of people in a project are users referred to as ambassador users if they are fulltime participants and advisor user if they are only part-time members of the team.
Roles and Responsibilities Further fulltime roles on a team are the team leader, project manager and the technical coordinator. In single team projects team and project leader might be represented by the same person, but in projects with more then one team (possibly a separate test team, or a team working on different tasks) the project manager takes coordination responsibilities and the team leader takes specific technical responsibilities related to his teams tasks. Coordination of technical aspect like architectural and quality issues in a multi team project is the responsibility of the technical coordinator.
Team Organization and Size The usual DSDM project consists of one or two teams, where any second team might take the responsibility to run tests on the development team products. Organizational research suggests that more than 5 people (excluding external experts) on a single team are ideal; it is strongly advised against larger then 6 person teams. If more work has to be done than a single team can deliver, a multi team structure is required, DSDM projects have documented project sizes of up to 150 people.
7 Phases to Rule Them The DSDM development process consists of 7 phases. Each phase owns several key tasks (see below figure) and can be modified to include more tasks as appropriate, which might be required when combining DSDM with other development methods. Three phases are designed as iterations, meaning, that they are to be executed in each increment. DSDM does specify concrete results for each task and for each one of the three phase groups (FMI, DBI and Implementation).