Dynamic System Development Method
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 System
Development Method
 Dynamic System Development Method (DSDM) has a five-phase
 life cycle as given the following figure:
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.
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.
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.
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.
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.
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.
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.
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.
Roles and Responsibilities
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).
7 Phases to Rule Them

DSDM

  • 1.
  • 2.
    Dynamic System DevelopmentMethod  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 DevelopmentMethod  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 DynamicSystem Development Method Dynamic System Development Method (DSDM) has a five-phase life cycle as given the following figure:
  • 5.
    Model of DynamicSystem 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 DynamicSystem 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 DynamicSystem 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 DynamicSystem 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 DynamicSystem 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 DynamicSystem 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 ofDSDM  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 ofDSDM  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 ofDSDM  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 ofDSDM  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 ofDSDM  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 ofDSDM  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 ofDSDM  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 ofDSDM  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 ofDSDM  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 ofDSDM  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 ofDSDM  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 ofDSDM  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 ofDSDM  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 ofDSDM  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.
  • 27.
  • 28.
    Team Organization andSize  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 toRule 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).
  • 30.
    7 Phases toRule Them