Dynamic Systems Development Method (DSDM) & Rapid Programming (RAD)
First released in 1994, DSDM is based upon the rapid application development (RAD) method. It was orginally developed to provide more discipline to the RAD method, and has since established itself as a stand alone framework within the Agile Alliance.
The DSDM method provides a four-phase framework consisting of:
-
Feasibility and business study
-
Functional model / prototype iteration
-
Design and build iteration
-
Implementation
The DSDM Agile Project Framework covers a wide range of activities across the whole project lifecycle and includes strong foundations and governance, which set it apart from some other Agile methods. The DSDM Agile Project Framework is an iterative and incremental approach that embraces principles of Agile development, including continuous user/customer involvement. In 2014, DSDM released the latest version of the method in the "DSDM Agile Project Framework". At the same time the new DSDM manual recognised the need to operate alongside other frameworks, and is now developed and managed under the Agile Business Consortium.
DSDM can be considered as part of a broad range of iterative and incremental development frameworks, especially those supporting agile and object-oriented methods. These include frameworks such as RAD, Scrum, and Extreme Programming (XP).
Like DSDM, these other frameworks share the following characteristics:
-
They all prioritise requirements and work though them iteratively, building a system or product in increments.
-
They are tool-independent frameworks. This allows users to fill in the specific steps of the process with their own techniques[5] and software aids of choice.
-
The variables in the development are not time/resources, but the requirements. This approach ensures the main goals of DSDM, namely to stay within the deadline and the budget.
-
A strong focus on communication between and the involvement of all the stakeholders in the system. Although this is addressed in other methods, DSDM strongly believes in commitment to the project to ensure a successful outcome.
There are eight principles underpinning DSDM. These principles direct the team in the attitude they must take and the mindset they must adopt to deliver consistently.
-
Focus on the business need
-
Deliver on time
-
Collaborate
-
Never compromise quality
-
Build incrementally from firm foundations
-
Develop iteratively
-
Communicate continuously and clearly
-
Demonstrate control
What is RAD?
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. A prototype is a working model that is functionally equivalent to a component of the product.
In the RAD model, the functional modules are developed in parallel as prototypes and are integrated to make the complete product for faster product delivery. Since there is no detailed preplanning, it makes it easier to incorporate the changes within the development process.
RAD projects follow iterative and incremental model and have small teams comprising of developers, domain experts, customer representatives and other IT resources working progressively on their component or prototype.
The most important aspect for this model to be successful is to make sure that the prototypes developed are reusable.
Rapid Application Development focuses on gathering customer requirements through interviews or focus groups, early testing of the prototypes by the customer using iterative concept, reuse of the existing prototypes (components), continuous integration and rapid delivery.
RAD Model Design
RAD model distributes the analysis, design, build and test phases into a series of 5 short, iterative development cycles.
Following are the phases of the RAD Model:
-
Business Modeling
The business model for the product under development is designed in terms of flow of information and the distribution of information between various business channels. A complete business analysis is performed to find the vital information for business, how it can be obtained, how and when is the information processed and what are the factors driving successful flow of information.
-
Data Modeling
The information gathered in the Business Modeling phase is reviewed and analyzed to form sets of data objects vital for the business. The attributes of all data sets is identified and defined. The relation between these data objects are established and defined in detail in relevance to the business model.
-
Process Modeling
The data object sets defined in the Data Modeling phase are converted to establish the business information flow needed to achieve specific business objectives as per the business model. The process model for any changes or enhancements to the data object sets is defined in this phase. Process descriptions for adding, deleting, retrieving or modifying a data object are given.
-
Application Generation
The actual system is built and coding is done by using automation tools to convert process and data models into actual prototypes.
-
Testing and Turnover
The overall testing time is reduced in the RAD model as the prototypes are independently tested during every iteration. However, the data flow and the interfaces between all the components need to be thoroughly tested with complete test coverage. Since most of the programming components have already been tested, it reduces the risk of any major issues
RAD Model - Application
RAD model can be applied successfully to the projects in which clear modularization is possible. If the project cannot be broken into modules, RAD may fail.
The following pointers describe the typical scenarios where RAD can be used −
-
RAD should be used only when a system can be modularized to be delivered in an incremental manner.
-
It should be used if there is a high availability of designers for modeling.
-
It should be used only if the budget permits use of automated code generating tools.
-
RAD SDLC model should be chosen only if domain experts are available with relevant business knowledge.
-
Should be used where the requirements change during the project and working prototypes are to be presented to customer in small iterations of 2-3 months.
RAD Model - Pros and Cons
RAD model enables rapid delivery as it reduces the overall development time due to the reusability of the components and parallel development. RAD works well only if high skilled engineers are available and the customer is also committed to achieve the targeted prototype in the given time frame. If there is commitment lacking on either side the model may fail.
The advantages of the RAD Model are as follows −
-
Changing requirements can be accommodated.
-
Progress can be measured.
-
Iteration time can be short with use of powerful RAD tools.
-
Productivity with fewer people in a short time.
-
Reduced development time.
-
Increases reusability of components.
-
Quick initial reviews occur.
-
Encourages customer feedback.
-
Integration from very beginning solves a lot of integration issues.
The disadvantages of the RAD Model are as follows −
-
Dependency on technically strong team members for identifying business requirements.
-
Only system that can be modularized can be built using RAD.
-
Requires highly skilled developers/designers.
-
High dependency on modeling skills.
-
Inapplicable to cheaper projects as cost of modeling and automated code generation is very high.
-
Management complexity is more.
-
Suitable for systems that are component based and scalable.
-
Requires user involvement throughout the life cycle.
-
Suitable for project requiring shorter development times.
.