2. 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.
3. 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.
4. Model of Dynamic System
Development Method
Dynamic System Development Method (DSDM) has a five-phase
life cycle as given the following figure:
5. Model of Dynamic System
Development 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.
6. Model of Dynamic System
Development 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.
7. Model of Dynamic System
Development 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.
8. Model of Dynamic System
Development 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.
9. Model of Dynamic System
Development 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.
10. Model of Dynamic System
Development 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.
11. Nine Principles of DSDM
Active user Involvement is Imperative:
The first principle is considered the most important, because user
involvement through out the project effectively reduces errors in
terms of user perception, and therefore reduces error costs.
Instead of working with a large set of users a DSDM project
guidelines recommend working with a small, select set of users
continually, rather then in periodic workshops or review sessions.
12. 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
13. 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.
14. 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.
15. 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.
16. 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.
17. 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.
18. 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.
19. 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.
20. 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.
21. 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.
22. 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.
23. 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.
24. 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
25. 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.
26. 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.
28. 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.
29. 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).