Author
Andrey Glaschenko
Reading time
9 minutes
Published
19.04.2023

What is Rapid Application Development

Rapid application development (RAD) is a development approach focusing on designing and prototyping stage for the purpose of getting instant user feedback. Unlike traditional development models with initial planning and further execution RAD implies more flexibility. Constant iterations of user feedback and quick incremental updates help to achieve better result at the end of the day.

James Martin defined what is rapid application development in 1991 as an alternative to the rigid waterfall processes. The classic waterfall approach works perfectly in construction and many other industries where scope changes are rare and expensive. If you started building a bridge, it is unlikely that you would swap it for a ferry halfway through the process.

Software development is much more flexible. There are more variations of how the same business challenge can be resolved, and at the same time changes are cheaper. As a result, super-detailed design and planning often lose out to the trial and error approach. Moreover, users tend to provide better feedback only when they see something working.

Rapid Application Development
The Rapid Application Development methodology shifts focus from costly planning to prototyping. In particular, RAD model implies the process division into four stages:

Requirements planning

At this phase, users and the project team identify the objectives of the future system. The focus is on reaching business goals and the requirements are rather loose. The ability to adjust or change them during the prototyping stage is key.
REQUIREMENTS PLANNING
USER
DESIGN
CONSTRUCTION
CUTOVER

User design

User design is the crucial part of the rapid application development methodology distinguishing it from the classic waterfall model. Here, developers start with working on a prototype. The goal is to demonstrate something to the client as soon and as cheap as possible. It is acceptable that the prototype only satisfies part of the requirements or covers only certain scenarios. It is acceptable to cut corners at the code level.

After the prototype is ready, it is presented to the users. The team collects all possible feedback and this is where initial requirements are subject to inevitable changes. Something which seemed right on paper may look totally different in a working application. With this feedback at hand, developers return to the prototyping step, until users are satisfied with the result.

Construction

Now we know exactly what needs to be done. It is time to develop and test the system so that it is ready for production use. No more cutting corners, the focus is on quality, scalability, maintainability, etc. However, users continue to participate even at this late stage, providing feedback as features get implemented. A bit of fine tuning is still possible on this stage of the rapid application development cycle.

What we have developed at the prototype stage might even be thrown in a bin, depending on the tool we chose and other circumstances.

Cutover

This is the final phase including acceptance testing, rollout and user training.

Watch a 7-minute video about the key features of Jmix

Watch video
Rapid Application Development Pros and Cons
RAD shifts the balance from predictability to agility, with consequent positives and negatives.
Pros:
Higher Quality
With users deeply engaged at the prototype stage, the resulting software will likely be more relevant for their tasks. And in any case, it will match their expectations.
Less Costs and Risks
With the waterfall approach users only see results and provide feedback when the project is delivered. The inevitable changes at this stage are expensive and time-consuming. With rapid application development methodology the risk of re-writing half of the solution after it is rolled out is minimal.
Cons:
Lack of scalability
The RAD model assumes very close collaboration between the team and the end users. When the team is too big, or there are too many stakeholders, the prototyping process inevitably slows down. It also becomes hard to communicate frequent scope changes between everyone involved. Thus RAD is considered optimal for small or medium-size teams.
Poor design
Chasing specific business features and cutting corners at the prototyping stage can sometimes lead too far ending in poor overall solution design.
Lack of control
For obvious reasons, it is impossible to plan scope, budget and time until the project is out of the prototyping stage. However, rough expectations can still be set based on the results of the requirements planning phase.
Commitment from end-users
Rapid application development methodology assumes deep involvement of users at all stages of the project lifecycle. This is especially true for the most knowledgeable experts in the business, who are apparently the busiest people in the company.

Rapid Application Development vs. Agile

The RAD term predates Agile by 10 years, and for its iterative approach it is often considered a “parent” of Agile. However, this is not the case. While RAD is a prescriptive development methodology, Agile is a philosophical position, encompassing much more than just development.

It would be fair to say that RAD belongs to the family of agile software development methodologies, together with Scrum, Kanban and many others.

Is Rapid Application Development applicable to my project?

As we have discussed above, RAD does not work in rigid environments. It is not applicable when:
  • the budget and timeframes have to be known in advance.
  • you do not have regular access to the users or they are not motivated to commit their time and energy
  • the project requires a large team due to its scale, or an excessive amount of stakeholders

These conditions are often true for large business or governmental organizations. However, certain elements of rapid application development methodology can be applied even in such cases. E.g. fixed price projects can budget for prototype stage and certain amount of changes. Prototype scope could be limited to the most uncertain parts, considering that you have relevant users on board.

On the other side, rapid application development framework works very well for small and medium businesses, or departmental projects, where business users own the budget and are motivated to get the results. A classic example is various Line-of-Business (LOB) applications - a general term describing applications developed to automate and run certain parts of business more efficiently.

Similarly, RAD is perfectly applicable to creating websites. These are typically small projects with a limited set of stakeholders, but involving them early is crucial as design is a very opinionated thing, and everyone will have something to say!

Rapid Application Development Tools

The success of RAD methodology heavily depends on prototyping speed and close collaboration, thus choosing the right tools to support this is utterly important. Fortunately, there is a long list to choose from.

Design and Prototyping

Examples: Figma, Balsamiq, Invision, Sketch, Adobe XD
Rapid application development tools like Figma and InVision enable graphic designers and UX specialists to quickly knock up and share with end users clickable prototypes with a complete design to collect their feedback. Once an iteration of the prototype is approved, the project can be exported to formats reusable by frontend developers, thus moving into the Construction phase. These tools are most widely used for creating websites, but can also be used for prototyping user experience of more complex end-user applications or portals.
Designing web application in Figma is perfectly aligned with the rapid application development
          methodology
Collaborative website design with Figma
Other tools like Balsamiq are more frequently used by business analysts. They are focused on prototyping user experience with wireframes, while the final design can be applied later. These are a good choice for the initial shaping of larger systems with complex user interaction.
Balsamiq helps business analysts to create interactive prototypes to gather initial requirements
          according to RAD lifecycle
Creating mockups in Balsamiq

Development

Development is usually by far the most time consuming, expensive and uncertain part of creating an application. So, modern rapid application development platforms combine proven architecture, ready components implementing typical features, and of course tools facilitating rapid development. All of them help you deliver results quicker both at the Prototyping phase of the project and further during Construction.

Consulting firms like Gartner and Forrester keep introducing new terminology to distinguish between these platforms: Low/No Code Application Platforms (LCAP), High Productivity Application Platforms as a Service (HPAPaaS), Multi Experience Development Platforms (MXDP). However, ultimately all of them can be classified by their target audience.

Low Code / No Code Platforms

Examples: Mendix, Outsystems
The key idea of these platforms is to enable business users with no development skills (referred to as power users or citizen developers) to deliver working applications very quickly. Of course, this simplicity implies lack of flexibility and multiple limitations. I have covered these limitations and associated risks in my previous article. As a result, the niche of such platforms is either prototyping or very basic systems.
A diagram of the application logic in the
        low-code Mendix platform
Defining application logic in Mendix

Developer-focused platforms

Examples: Embarcadero RAD Studio, Jmix, Ruby on Rails

These platforms leverage the speed and joy of software development mostly by providing higher-level API and code generation - so developers are kept away from repeating boilerplate code and typical functionality.

Embarcadero RAD Studio, previously known as Borland Delphi, is one of the pioneers in this space, famous for its visual UI designer. It appeared before the web era and is still applicable only for desktop and mobile applications.

Other rapid application development frameworks focus on the web as it is a dominant channel for interaction with end-users these days. For example, at Jmix we try to join the convenience and speed of visual data model and interface design with the power of modern open source technologies. Such approach not only boosts prototyping speed, but also enables you to grow your prototype into a full-featured enterprise application with a solid and scalable architecture. You can get a feel of how it works in several minutes by watching a 7-minute overview video.

Visual screen designer in Jmix Studio
Designing an application screen in Jmix
If you are interested to investigate RAD platforms and their evolution deeper, I would recommend a good article by my colleague Aleksey Stukalov for further reading.

Discuss how RAD tools and methodology can be applied to your project

Summary

Rapid Application Development is one of the development methodologies following the agile philosophy. The key principle of RAD is a close engagement of end users and fast, iterative prototyping based on user feedback. When the users are happy, the focus is shifted to the delivery of production-ready software.

Choosing the right tool(s) is critical to ensure fast prototyping and thus the successful implementation of RAD methodology in a project. Luckily, there is a wide choice of tools and platforms aimed at different types of applications, stages of a project and team skillset.

RAD is an old concept, but today it is experiencing a renaissance following the trends of digital transformation and the push towards faster time to market. For the right types of projects and team setup, RAD methodology helps to achieve better user satisfaction with reduced risks and in shorter timeframes.

Andrey Glaschenko
Andrey Glaschenko
The Jmix Business Unit Director, Haulmont co-founder. Andrey began his career in IT in 2003. Worked as a Java developer, project manager, business analyst, business unit manager. Together with partners, Andrey founded Haulmont in 2008, and since then he has been fully engaged in the company management. He tries to follow the modern trends and do some coding in his spare time.
Updated on April 19, 2023