30
Dynamic System Development Method

DSDM

Embed Size (px)

DESCRIPTION

Lecture By Mr. Yasir Hafeez

Citation preview

Page 1: DSDM

Dynamic System Development Method

Page 2: DSDM

Dynamic System Development MethodDynamic 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.

Page 3: DSDM

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.

Page 4: DSDM

Model of Dynamic System Development Method Dynamic System Development Method

(DSDM) has a five-phase life cycle as given the following figure:

Page 5: DSDM

Model of Dynamic System Development MethodFeasibility 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.

Page 6: DSDM

Model of Dynamic System Development MethodFeasibility 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.

Page 7: DSDM

Model of Dynamic System Development MethodFunctional 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.

Page 8: DSDM

Model of Dynamic System Development MethodDesign 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.

Page 9: DSDM

Model of Dynamic System Development MethodImplementation

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.

Page 10: DSDM

Model of Dynamic System Development MethodDynamic 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.

Page 11: DSDM

Nine Principles of DSDMActive 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.

Page 12: DSDM

Nine Principles of DSDMTeams 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 practiceWhich functionality needs to be in a given incrementPrioritization of requirements and featuresFine details of the technical solution

Page 13: DSDM

Nine Principles of DSDMFocus 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.

Page 14: DSDM

Nine Principles of DSDMFitness 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.

Page 15: DSDM

Nine Principles of DSDMIterative 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.

Page 16: DSDM

Nine Principles of DSDMAll 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.

Page 17: DSDM

Nine Principles of DSDMRequirements 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.

Page 18: DSDM

Nine Principles of DSDMTesting 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.

Page 19: DSDM

Nine Principles of DSDMCollaborative 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.

Page 20: DSDM

Four Values of DSDMIndividuals:

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.

Page 21: DSDM

Four Values of DSDMWorking 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.

Page 22: DSDM

Four Values of DSDMCollaboration:

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.

Page 23: DSDM

Four Values of DSDMResponding:

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.

Page 24: DSDM

Project Structure of DSDMThe 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

Page 25: DSDM

Roles and ResponsibilitiesSeveral 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.

Page 26: DSDM

Roles and ResponsibilitiesFurther 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.

Page 27: DSDM

Roles and Responsibilities

Page 28: DSDM

Team Organization and SizeThe 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.

Page 29: DSDM

7 Phases to Rule ThemThe 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).

Page 30: DSDM

7 Phases to Rule Them