According to a Gartner study, $310 billion was spent globally on enterprise software in 2015. The development of the RAD (Rapid Application Development) concept become the basis for creating a flexible and adaptive application development system, counterbalancing with a rigid Waterfall model.
How did RAD appear?
We have to thank the non-ideal Waterfall model for the emergence of rapid application development. Initially, the Waterfall development system was based on the traditional engineering model used to design and construct buildings and bridges.
While Waterfall used a rigid structure of sequential development activities as the basis, the emergence of RAD was an attempt to create a flexible process that could use the knowledge gained during the project management lifecycle.
The first version of RAD was created by Barry Boehm in 1986, who called it the spiral model. Each spiral turn is divided into four sectors and corresponds to developing a fragment or version of the software. With each new turn, there is a deepening and refinement of the goals and specifications of the project. As a result, it is possible to choose an affordable variant.
Using Barry's ideas, the Briton James Martin developed his RAD system during his work in the 80s at IBM and finally formulated them in the book "Rapid Application Development" in 1991.
There was indeed some confusion about the meaning of the word "RAD" even among IT specialists. After all, there were two concepts: RAD as an effective alternative to Waterfall and RAD as a specific method developed by Martin. The latter was adapted to UI-intensive business systems.
The ideas were further developed and improved upon by RAD pioneers James Kerr and Richard Hunter in their joint book “Inside RAD: How to Build Fully Functional Computer Systems in 90 Days or Less (Systems Design and Implementation)”. It described the project manager's journey of learning and implementing a rapid application development methodology in real life for a real project.
These and many other authors popularized the new methodology as an alternative to traditional systems approaches to the project lifecycle.
Principles of Rapid Application Development (RAD)
RAD's principles focus on providing the main benefits of rapid application development techniques:
- Increased development speed
- Low cost
- High quality
The last point poses the most problems because the developer and the customer see the development subject differently. To address this and other issues, James Martin and his followers identified the following RAD principles:
- Time minimization - the toolkit should aim to reduce development time
- Prototyping - prototypes should be created to specify customer requirements
- Cyclic development - each new version of the product is based on the customer's evaluation of the previous version
- Collaboration - the development team must cooperate closely with one another, and each member must be ready to take on several responsibilities
- Iterative approach to development
- Combining testing and system development
RAD principles are used not only during implementation but also apply to all stages of the life cycle, particularly to the stage of organization survey, requirements building, analysis, and design.
We also recommend you read about 5 web development trends for 2023.
RAD software life cycle
In the RAD process, an application goes through four phases.
Requirements analysis and planning phase
Requirements, application functions, and their priority are defined, and information needs are described. The users, with the participation of the developers, predominantly perform the phase. This phase also outlines the project's scope, the time and financial framework, and the platforms for launching the software.
Some users are involved in the system's technical design under the developers' direction. RAD teams or subgroups in this phase typically use a combination of collaborative application development (JAD) techniques and CASE tools to transfer user needs into working models.
JAD (Joint Application Development) is a concept of collaborative application development in which there is close interaction between the customer and the implementers to maximize the efficiency of solving the issues related to the software being developed.
CASE is a set of tools and methods for software design to provide high-quality programs, the absence of errors, and ease of software product maintenance.
During the design phase, users can understand, modify, and define a working model of the system that meets their needs. Each process is reviewed in detail, and, if necessary, a partial prototype is created.
The phase results in the creation of:
- General information model of the application
- Functional models of the system and subsystems
- Working prototypes of screens, reports, and dialogues.
In the previous application development models, the prototyping tools didn't correspond to the real applications and were not used later. In RAD, each prototype becomes a part of the future system.
In this phase, rapid development occurs directly based on the results obtained in the previous phases. Users continue to participate in the development of the system by suggesting changes and improvements to the application. Application testing also takes place during development.
The deployment phase covers user training, testing security, and replacing the old system with a new one. Preparation for this phase begins with the design phase.
It is worth noting that, unlike Waterfall, the project lifecycle under RAD methodology is not rigid. Depending on the starting conditions, the number of phases and their content may decrease.
Pros and cons of RAD (Rapid Application Development)
Whether or not to use rapid application development largely depends on the starting conditions, customer requirements, and type of application.
The clear advantages of RAD include:
- High quality. User interaction with prototypes increases the functionality of rapid application development projects. Such software can meet the customer's (end-user) needs more than when using Agile/Waterfall methodologies.
- Risk control. While the lion's share of books about RAD focuses on speed and user involvement as key features of the model, we must consider a third significant benefit - risk mitigation. Interestingly, Boehm, who created the first version of RAD, characterized the spiral model as risk-based. The use of rapid application development allows us to focus on the main risk factors early on and adapt to them.
- More projects are completed per unit of time within budget. Since RAD implies an incremental development model, the chances of critical errors that often occur in large Waterfall projects are reduced. In Waterfall projects, project implementation was possible after six or more months of analysis and development. In RAD projects, all the information needed is revealed earlier, during the application creation process itself.
The incremental development model is a software development format that divides the product into relatively independent components. They are developed and put into operation separately.
The disadvantages of RAD include:
- Novelty risk. RAD is a novelty for most IT companies, requiring rethinking familiar working methods. Resistance to the new and the need to learn tools and techniques from scratch leads to mistakes during the first implementations of rapid application development.
- Reduced control. An adaptive process, as one of the advantages of RAD, ideally means the ability to quickly adapt to both problems and opportunities. Unfortunately, we will have to prefer one thing or the other - flexibility or control. A rapid application development methodology would not be viable in the latter case.
- Paucity design. The focus on prototypes, in some cases, leads to a hack methodology in which developers are constantly making minor changes to individual elements and ignoring system architecture issues.
- Scalability lack. Primarily RAD is used by small and medium-sized project teams. The disadvantages of rapid application development methodology are especially evident when RAD is used to work on large projects.
Suppose users cannot constantly participate in the development process throughout the entire lifecycle. In that case, it can negatively affect the final product. A feature of RAD is increased interaction between users and developers, unlike Waterfall models, in which the role of users is reduced to defining requirements.
We also recommend you read about 5 fintech development trends for 2023.
Who should and shouldn't use RAD?
RAD methodology is suitable for your project if:
- Speed and ease of development are vital for it
- Project development priorities are clearly defined
- Application needs to be developed in a short time
- Project is implemented on a limited budget
- Main criterion is the user interface
- It is possible to break down the project into functional components.
The rapid application development methodology will not suit your project if:
- Quality and control are vital for it
- You are talking about creating a large-scale project because the supposed maximum rapid app development time is 60-90 days, and when writing hundreds of thousands of lines of code, it is almost impossible to observe this limitation
- High level of planning, strict design discipline, and strict adherence to previously developed protocols and interfaces are critical for implementation
- Safety of people depends to a certain extent on the application
Rapid application development (RAD) is an incremental software development model. The key parameters that RAD operates on are speed and convenience of programming. The methodology will be an excellent choice for the realization of small projects with limited budgets, which need to be developed quickly. It is better to choose other software development models for large-scale systems with high control and planning requirements.
MaybeWorks expertise in hybrid mobile application
MaybeWorks developers worked on a hybrid mobile application based on an Ionic framework that allows users to report breakdowns and request services from any location. The app works perfectly on all mobile platforms including, but not limited to: iOs, Android, and browsers. This app was developed according to RAD methodology. All the development processes have been organized on a top level: hired MaybeWorks developers with previous experience in rapid application development provided great increment to the project.
The client's main purpose was to create a Uber-like hybrid application on the Ionic framework for drivers with breakdowns on the road. The application should be fully responsive and stably perform with high load.
The client augmented its remote team of freelancers with MaybeWorks front-end developers. They assisted in 6 iterations based on RAD methodology for 3 months. All processes have been professionally managed with clear communication and requirements at each stage. MaybeWorks frontend developers' aim was:
- Increase the code quality of Ionic application (refactor, optimize, etc.)
- Add integration with Stripe and create a whole payment flow from scratch
- Customize usage of Google Maps on the application (since it is basically the cornerstone of the entire project)
- Work on an admin panel (adding multiple new features)
As an outcome of all these efforts and RAD methodology, MaybeWorks frontend developers and a remote team of freelancers have successfully released the UK's first nationwide on-demand roadside assistance network.
Feel free to contact us to discuss your rapid application development assistance.