We already discussed some of the most popular Agile Methodologies in our previous articles, like Scrum, Lean, and Kanban. Today, we will walk you through another popular Agile Methodology - DSDM. We will talk about the following topics in this article:-
- Brief History of DSDM: In this section, we will cover a brief history of DSDM and how DSDM is different from other methodologies
- DSDM Principles and values: All nine principles and four values to be discussed here. We will learn how these principles and values help DSDM to deliver the product to the customer.
- Project structure in DSDM: We will cover an introduction to complete project structure, which includes
- Roles and responsibilities
- Team organization and size
- Tools and techniques
- Phase to rule them/ process Flow
We will explain all aspects as mentioned above of a project with the help of relevant examples
What is DSDM?
DSDM is dynamic in nature as it’s a Rapid Application Development (RAD) approach to software development. It is an iterative and incremental approach that emphasizes continuous customer/ Client involvement.
What makes DSDM different is, active involvement of the user and the decision making power is with the teams working on it. The teams are empowered to make decisions.
It focuses on the formula: 80% system deployment in 20% time, i.e., it doesn’t take long to achieve a working stage or to get it to a stage where you can say it will work.
This method is used mainly for the system where software delivery requirements happen in a short span. Its goal is to deliver software in time and on budget while still adjusting for new conditions or changes along the way.
Brief History:
The Dynamic Systems Development Method (DSDM), its base was developed in the 1990s to meet the need for rapid business, but it was officially originated in January 1994 by a non-profit group in the UK, to provide an industry-standard framework for project delivery. Its first version got finished in January 1995. And the latest version, which is currently in use is 4.2, developed in 2003.
DSDM Principles:
DSDM has nine fundamental principles revolving around the business needs:
- Active user involvement: the first and most crucial principle is user involvement. User, the people who will be using the final product, must be actively involved throughout the project development. It helps in reducing the errors which may occur due to user perception and thus reduces the cost of rework as well. DSDM emphasis on working with a small and selected group of users and stay in touch with them continually, rather than meeting them occasionally in periodic meetings and review sessions.
- Empowered teams: To proceed quickly and smoothly, this model encourages and empower teams to take decisions. Below are some areas where decision making as a team is very critical
- Requirements decision
- Prioritizing the activities and features delivery
- Details of technical requirements
- Which functionality needs to add in a given incremental
- Frequent delivery: A frequent delivery of value to the customer ensures that the errors/bugs get identified, worked upon, and resolved/ reversed/fixed at an early stage. The source of the error and root cause is also found and fixed. It applies to all, requirement documents (user stories), working models as well as on program codes.
- Fitness for business: In DSDM, our focus is to deliver software which is efficient enough to solve a business need and accepts changes or enhancement in a later iteration. DSDM focuses on satisfying business needs first and doesn’t allow to create ad-hoc software. It keeps the process flow simple and effective.
- Incremental development: To keep the big project simple and less complicated, it becomes crucial to decompose it into multiple small feature projects. Every delivery ensures a new feature gets delivered to the client. This incremental development and delivery continue until the delivery of the complete set of business required features.
- Reversible changes: In DSDM iteration happens through small increments. As all the stages of development are well known to developers, so changes here are reversible. Therefore, the fear of total loss of work is also very less.
- Base-line the requirements: Some high-level baselines need to be set to limit the degree of freedom to make changes. During the business agreement phase, the Business and Development Team discuss and agree on the baseline when the change requests and requirements would be “frozen”.
- Integrated testing: In DSDM, testing is done as early as in the development phase to ensure that the product does not have any technical flaws. Developers and team leads cross-check even the testing documents. It helps in fixing issues at a very early stage and reduces rework and therefore reduces cost and time.
- Stakeholder collaboration: It is crucial to have an atmosphere of trust and honesty to get precise requirements and honest feedback on a resultant product. In DSDM, Business staff and developer collaboration are very crucial to deliver value. Clear business requirement and honest feedback help in fast development which further leads to timely delivery of the project.
Four values: below are the four values of DSDM-
1.Individual: Like Agile in DSDM also value people. In the end, these are the people who are working physically on the project and know the practical part better. Their experience and expertise add more value to the project as compared to tools, documents, or process flows.
2.Working software: It is very crucial that a shared understanding and a standard definition of “Working software” exists between all the parties interested in the software.
Note - Working software is the software that has successfully gone through all the stages of development and testing and ready to hit the market now. It will be the version of the software that will be used by the end-user
3.Collaboration: It is one of the essential values for effective delivery. It is because getting people in one room to make a decision will be more productive, less time taking, and efficient than sharing emails for weeks to make a decision. Here are a few examples of Collaboration -
- Cross-functional team
- Co-location with the client
- Facilitating workshop
4.Response to changes: DSDM welcomes all the required modifications and accommodates them. It values and responds to all the changes in a very innovative way, mainly through prioritizing them.
Project structure in DSDM:
The DSDM project process flow consists of 7 phases, which are organized in a rich set of roles and responsibilities and are supported by some core techniques. Below is the part of the structure of a DSDM system process flow.
- Roles and responsibilities
- Team organization and size
- Tools and techniques
- Phase to rule them/ Process Flow
Roles and Responsibilities:
There are three leading roles in DSDM -
Project level roles:
It usually consists of
- Directors
- Project Owners
- Project Managers
Their responsibility is to control the project as a whole. They will not be working on the project but will be responsible for getting the work done and keep the business updated about the current situation. They act as a connection between the User and Development team. These are usually executive level people and work directly with the business. They are also called the Ambassadors.
Solution Development Roles:
Solution Development roles usually consist of
- Developers
- Testers
They work as the “heart” of the project. They are the main driving force as they work on ground zero and are responsible for the development of the product/solution.
Supporting Roles:
It consists of roles like
- DSDM Coach
- Workshop Facilitator
These people have good practical knowledge of all the areas of business. They assist and guide everyone working on it continuously throughout the project until delivery. They have a good understanding of the DSDM framework as well as of development.
Team Organization and Size:
In DSDM, a project team may consist of one or two groups, whereby one group takes the responsibility to run the tests on another group’s delivery.
As per organizational research, team size should not be less than five members, excluding external experts. External experts are the experienced executive level people who support projects externally.
And if the project is big and more work is to be delivered, then a multi-team structure is required.
Tools and Techniques:
The main focus of DSDM is that the product is delivered frequently in each iteration. Different tools, techniques, and, practices are used to support the whole DSDM process.
These are
- The Timeboxing,
- The MoSCow prioritization,
- Facilitated workshops,
- Iterative development,
- Modeling and prototyping techniques.
Here we are providing a very brief introduction to the three most common and used practices from the DSDM framework which are
- Time Boxing
- MoSCoW Rules
- Facilitated workshop
Timeboxing:
Timeboxing is one of the most crucial core practices. It is similar to what a milestone is in tradition software development methods or what a sprint is in the Scrum Agile Method. Timeboxing is the amount of work to be done in a fixed given time.
One software development project will have multiple time boxes, and every time box is assigned one specific objective. Timeboxing helps in achieving the target in time. Usually, for a project duration of a time box can be from two weeks to a maximum of 6 weeks but not more than that.
Benefits of having Time Boxing:
Focus on delivering the product on time.
- People stay focused as per priority and do not deviate, and thus improves productivity.
- All members know what the other person is doing and how long it is going to take to complete that activity.
- Decreases dependency and delegation of work as every member is occupied and has to give deliverables in time.
It’s like a healthy eating habit, “Eat a tiny portion of food at small intervals”.
Let’s understand it with the help of an example. We all love our student life & we all have gone through it. During exams, even if there is a sufficient gap between the two reviews, we always used to study on the last 1 or 2 days. And our parents used to tell us to do a little every day. The correct approach would have been
- Make a schedule
- Divide your syllabus into small portions
- Prioritize them
- Assign timelines to every part
- Finish portion in the assigned time
This systematic approach to finish the assigned work in committed time is called Timeboxing.
Facilitated Workshops:
Facilitated Workshops means providing a workshop where team members and developers can work on a clear pre-set of deliverables. To get access to this workshop, they coordinate with a neutral person who is called Workshop facilitator. The facilitator will be guiding the team through a process to achieve its objectives, expertly. This process that facilitator guide through includes-
- Defining the objective,
- Identifying appropriate participants,
- Creating an agenda,
- Managing the logistics and
- Distributing any pre-reading to participants.
The motive behind having a workshop is to encourage collaborative working and enable team decisions in a short time. It allows knowledge sharing too.
It’s like a classroom, you can discuss only one topic from a specific subject at a particular time, and the purpose of that discussion will be focused, that is, to make the classroom understand that particular topic.
Benefits of having a Workshop include:
- Provide an ideal environment for exploring new ideas and encourages quick and systematic growth of those ideas.
- A broader range of stakeholders can take decisions.
- Everyone is aware of discussions and decisions.
- Decision making is quick & accurate.
MoSCoW Prioritization:
MoSCoW is a simple prioritizing technique, which helps in understanding and prioritizing the tasks to be performed the letters here stand for:
- Must-Have: The requirements that are fundamental and must conform to the solution.
- Should Have: The things that are important for the business solution.
- Could Have: The requirements that are important but can more easily be left out for a short while.
- Won’t Have: The requirements that can wait and include in later development.
MoSCoW prioritization is essential because there is always not enough time to do everything, and the vital things should not be left behind.
Benefits of MoSCoW are:
- It allows business expectations to set at the Project level.
- Ensures that the team delivers the Must-Haves first
- Ensures that they deliver most or all of the Should Haves
- If time allows developers may deliver some of the Could Haves too.
You want to purchase a big car with the following features-
- Seven seater cars - To accommodate a maximum number of friends to go for an outing on the weekends.
- The car should have a 2000 cc engine as it is essential to have powerful engines for off-roading and road trips.
- The car should have functional boot space
- Navigation system
- Good Mileage
- Your favorite color is yellow, so you want to buy a yellow color car.
- You may also want to have a sunroof to enjoy the weather
- You prefer to have Bluetooth connectivity for your iPod and other devices.
- You may also prefer to have a child seat.
Let’s define prioritization in the above case as per MoSCoW:
- Must have
- Seven seater car for off-roading and road trips
- Should have
- 2000cc engine
- Good Mileage
- Navigation System
- Good boot space
- Could have
- Yellow color car
- Sunroof
- Won't have
- Bluetooth
- Child seat.
Process flow:
The Development process of DSDM consists of 7 phases. The first stage is even before the project starts, and therefore, it is called Pre-project. Then there are stages where we study the project, and this phase is called the Project-study phase. Post which there are three more phases that consist of the development cycle and are iterative, these phases are repeated as and when necessary to complete the project. These three stages are known as the Development phase. Then there is the phase, where the project is delivered, reviewed, and maintained. This stage is the post-project phase.
Below are all 7 phases of a process flow in DSDM
- Pre-project
- Feasibility Study
- Business Study
- Functional Model Iteration
- Design and build the Iteration
- Implementation
- Post-project
- Pre-project Phase- Project conceptualization - It is the very first phase of the process, and here we ensure that everyone involved in the project is aware of the objectives. In this phase, we conceptualize the project and decide to start the project.
- Feasibility Phase- Finding out how the project will start. In the feasibility phase, the analysis of the technical, financial, and workforce aspects happens. Here the constraints of project delivery are figured out concerning time and resources. This phase is critical as most important decisions are being made in this phase, including project cancelation.
- Business study Phase- Exploring the business aspect of the project. In this stage, the identification of business aspects of the project takes place. Following questions are discussed and answered in this phase
- Who will be the participants
- Will the project make sense from a business point of view
- Will it be profitable
- What will be the best work plan
- What resources are required through the development cycle
- What tools and technologies will be required for building and deployment
4.Functional Model Iteration- All functional phases discussed in previous stages, all the technical requirements are decided and prioritized. A functional prototype gets created in this stage, wherein a model of one requirement after another is built incrementally. This functional prototype then checked for quality as well as for the scope of improvement by technical experts and at times by the end-users.
Below are the steps prototyping will follow
- Investigate: Based on prioritization done in the previous stage, in this stage, we will identify the key functionalities that are needed.
- Accept plan and schedule: Once the team decides the final features,
- The Project Manager will identify team members.
- Team members get the tasks assigned.
- Timelines will also be attached here.
- Create: The developer will create the prototype/Model based on the functional requirements, test them and further improve it (if required)
- Review: User tests it at his end and gives discussions about the functionalities. The areas of improvement are discussed based on the user's feedback.
5.Design and Build Phase- a product designed and implemented in iterations - Here in this stage
- Software development starts
- Products will be created and deployed in small iterations.
In each iteration
- Decide which functionality is to be delivered first based on priority
- Design that functionality
- Coding it
- Then, deploy the functionality
The above process goes in a cycle for each iteration, and one functionality gets delivered at the end of each iteration.
6.Implementation phase - The second last phase in the lifecycle process is the deployment. In the previous stage, we did the deployment in small iterations, but here the product as a whole will get operational. After this stage, the product will be ready to get launched into the market.
In this phase
- The product will be in its final stage
- All the documentation gets finished
- Reviews are over
- Users will be trained to use the product, and it’s all set to hit the market
The implementation or deployment process has various stages.
- Assemble: Assemble all the approvals and guidelines related to the projects.
- Review: Evaluate and review if the delivered quality is as per the pre-defined documented quality as finalized with the business in the functional iteration phase of the development process.
- Deploy: Get the product into an operational use (market) after training users on the product and doing required configuration, etc.
7.Post-project Phase - In the last phase, after the product delivery to the customer, maintenance will be required. Maintenance is usually done periodically in a cyclic manner.
For a better understanding of these development phases, let’s consider an example
The entire admission procedure is explained with the help of these phases whenever you choose a playschool for your toddler.
- As parents, the first decision that we have to make is, is this a good time to send a kid to school. This decision, if the education for the kid is to be started or not, can be referred to as the Pre-project stage. Then we will check for a few more factors like:
- List of Playschools near your home in which admissions are going on
- Fee structure
Based on this information, we will further decide whether we should go ahead with a kid's admission or not.
2.Next, we will make a checklist, which is important while shortlisting a school
- Teaching staff
- Infrastructure
- Security
- Daycare facility
In software development language these are called studying business aspects.
-
In previous stages - you have decided on high-level factors; now you will deep dive into it and collect more detailed information to finalize the school
- Teaching Staff
- Must be well qualified
- Student Teacher ration should not exceed 1:10
- Infrastructure
- Is the transport facility available?
- Hygiene of washrooms, playrooms must be well maintained
- Security
- CCTV installed?
- Did the staff undergo the Background verification process?
- Daycare
- Meal facility
- Timings of daycare
- Teaching Staff
It is called Functional model iteration. Here you will collect all the artifacts
- Basis all this information, you will shortlist school and start sending out your kid on trial basis for an hour for the first week and increase time with each passing week. This deployment in phases is known as the Design and Build phase in software development terms.
- After a month, considering toddler started spending a considerable amount of time in school and seems happy so we will finally decide to let him go for full time. This phase of getting fully operational is referred to as Implementation in the world of software development.
- We keep on taking daily feedback from the toddler, look out for any withdrawal symptoms, check his learning curve based on which we decide whether we should continue with the same school in next term or not. It is the Post-project phase.
With DSDM approach, you will have any project faster “up and running” and sooner delivered to the business with leaner implementation effort.