Rapid Application Development (RAD)

KS3 Computer Science

11-14 Years Old

48 modules covering EVERY Computer Science topic needed for KS3 level.

GCSE Computer Science

14-16 Years Old

45 modules covering EVERY Computer Science topic needed for GCSE level.

A-Level Computer Science

16-18 Years Old

66 modules covering EVERY Computer Science topic needed for A-Level.

KS3 Programming Resources (14-16 years)

  • An editable PowerPoint lesson presentation
  • Editable revision handouts
  • A glossary which covers the key terminologies of the module
  • Topic mindmaps for visualising the key concepts
  • Printable flashcards to help students engage active recall and confidence-based repetition
  • A quiz with accompanying answer key to test knowledge and understanding of the module

A-Level Software Development Lifecycle (16-18 years)

  • An editable PowerPoint lesson presentation
  • Editable revision handouts
  • A glossary which covers the key terminologies of the module
  • Topic mindmaps for visualising the key concepts
  • Printable flashcards to help students engage active recall and confidence-based repetition
  • A quiz with accompanying answer key to test knowledge and understanding of the module

What is Rapid Application Development?

The Rapid Application Development (RAD) model was introduced as a response to plan-driven Waterfall processes.

The first type of RAD was developed by Barry Boehm, which is known as the “Spiral Model” (discussed in another article).

Boehm had emphasized an approach that developed using prototypes as-well as or instead of rigours design specifications.

However building on that model, in 1991 James Martin had published the RAD approach at IBM.

The major differentiation between the two models was that Martin’s development had focused on working for models that were knowledge intensive and UI intensive, much like the systems in our era.

This rapid prototyping methodology was an essential tool to aid users and analysts to “think outside the box” about innovative ways that technology might radically reinvent a core business process.

Rapid Application Development is a type of Agile software development model that is considered to be a progressive development model, which gives more importance to rapid prototyping and speedy feedback over a lengthy development and testing cycle.

The advantage of using this model is that it allows developers to make multiple iterations and updates to a software quickly, without requiring to restart a development schedule from scratch every single time.

RAD is considered to be a methodology that requires minimal planning that will in-turn favour rapid prototyping.

Prototype: A prototype is a working model that is functionally equivalent to a component of the product.

Within RAD’s model, the functional models are developed in parallel as prototypes, furthermore, these prototypes are integrated to make the complete product for faster product delivery.

RAD makes it easier to incorporate changes within the development process since there is no preplanning.

As with other Agile derivatives, RAD projects also follow the iterative and incremental model, moreover, they also have small teams consisting of developers, domain experts, customer representatives and other IT resources working progressively on their component prototype.

One of the most important aspects to bear in mind when using RAD is the fact that the prototypes that are created during iterations are reusable.

The theory that this methodology revolves around is to treat software projects like “clay” rather “steel”, meaning that unlike other methodologies, for instance like the “Waterfall Methodology”, RAD can be re-moulded and re-adapted rather quickly and it doesn’t have to wait for the system to be fully completed to implement changes, rather than the “steel” like Waterfall Methodology.

Therefore, RAD enables low code rapid application development through which businesses can introduce new applications/updates faster and at a more efficient/productive rate.

RAD embraces the use of Object Oriented Programming (OOP), which inherently fosters software re-use. Most popular OOP programming languages include C++, Java.

Object Oriented Programming (OOP):

OOP is a computer programming methodology (model), which organises software design around data, or objects, rather than functions and logic. Objects in OOP can be defined as a data field that has unique attributes and behaviours.

So how is Agile different from Rapid Application Development?

Overall, Agile is more evolved than RAD, since it was introduced much later than RAD.

Agile emphasises more on its models and ideal work environment compared to RAD, however RAD is considered to have much more elasticity in its model, furthermore, RAD focuses on the quality of the overall outcome rather than the techniques and timeframe used for delivery.

Though both of them significantly emphasise early and continuous software delivery, which allow leeway for a change in requirements at later stages of development.

Agile MethodologyRapid Application Development
Agile does not recommend developing prototypes, however it emphases the systematic development of every incremental feature at the end of every iteration.RAD on the other hand has an emphasis on designing quick prototypes that are eventually refined based on feedback obtained from the client at the end of each iteration.
The agile methodology will logically break down the solution into features that are incrementally developed and delivered.Developers that utilise RAD will focus on developing all the features they set out in the iteration, and then improving that code with every iteration. As a matter of fact, developers will develop the feature no matter how bad it is at the beginning, but they will know that with the relevant feedback from the client and other team members they can improve it (consider it as a stepping stone).
Agile methodology only allows the team to display completed work to the client after each iteration.One of RAD’s principles is to have the client “close” when developing the system to constantly obtain feedback so the system is developed to the clients standard and desires. Therefore the team will demonstrate screen mock ups and prototypes of the system.
Agile is not very suitable for small projects as it is difficult to split the project into smaller parts that can be incrementally developed.RAD is most proficient in smaller groups, however these smaller groups must consist of highly skilled individuals to fulfil the requirements of the client at the lowest cost possible.
Agile teams focus on communication and developing a product for the client collectively as a team effort.Developers work as individuals (which may not result in optimal quality of code).

Steps that are included in Rapid Application Development

The key advantage of using the RAD approach is the fast project turnaround respectively, therefore making it an attractive choice for clients and developers alike. This rapid pace is made possible by the methodology focusing on minimising the planning stage and thus maximising the potential in the prototype development.

This allows project managers and clients to accurately measure the real time communication and progress the project is experiencing.

RAD generally follows the four phases below:

Phase 1: Requirements planning:

This phase is the same as a project scope meeting. Though the difference between this phase compared to other methodologies is that it is condensed, hence differentiating RAD from other methodologies.

During this stage, developers, team members, and clients communicate to determine the objectives, requirements, and expectations of what is to be produced, moreover any potential issues that would be faced are also considered and addressed during this phase.

A breakdown of this phase can be considered like:

  • Researching the current problem
  • Defining the requirements for the project
  • Finalising the requirements with the client’s approval

It is essential that everyone has the opportunity to evaluate the objectives and expectations for the project, and by getting the the client/s approval and developers, this can avoid miscommunications which can be very costly if something was misunderstood that required changing further down the project.

Phase 2: User Design/Prototype:

Once the project requirements are finalised, it’s then time to enter the development phase, which consists of building out the user design through various prototype iterations.

This phase is the main phase associated with the RAD methodology, and is the phase which fundamentally distinguishes it from other methodologies.

This phase includes showing the client many prototypes in order to portray the functionality, and once feedback is obtained, the client can choose what to leave and what to discard.

This phase also encompasses the reexamination and validation of the data collected during the first phase.

Phase 3: Rapid construction:

This phase takes the approved prototypes that were produced from the phase above,  and produces a working model of them.

Due to the fact that any problems were assessed and addressed in the iterative design phase, the developers at this phase can build the final working system more efficiently and productively, in comparison with other project management methodologies.

The phase is broken down into the following smaller steps:

  • Preparation for rapid constriction
  • Program and application development
  • Coding
  • Unit, integration, and system testing

During this stage, the development teams consisting of programmers, coders, developers, and testers working collectively to make sure that every aspect is working as it was designed to do so, and ultimately satisfying the client(s) objectives and requirements.

Once the client reviews the constructed product, the client will produce any feedback that is required to implement. This feedback can range from functionality as-well as the aesthetics of the system and how well the interface interacts with users etc.

Both phases (2 & 3) prototyping and construction/feedback continue until a final product is produced that is in line with the clients requirements and are developed in the most suitable way.

Phase 4: Cutover:

The final phase of the RAD methodology includes the finalisation of the aesthetics, features, functions, interface as well as everything else related to the software project. Independent modules of the system are also tested in this phase. 

This stage is also where the final product is ready for launch, assuring that the system maintains a desirable level and is stable, moreover, user training is carried in this phase too.

When to use Rapid Application Development?

When you need a project done quickly:

RAD is the sort of methodology that will work perfectly if a team has a tight deadline or they have a lot of pressure to deliver something quickly that is functional. This is because you ultimately delve into development rather than taking a long time going through requirement planning and the design phase.

Though RAD should be used when the system can be modularised to be delivered in incremental form, so little by little.

When you can reliably test your prototypes:

RAD works well when you have a pool of users that can provide the team with ongoing feedback about the prototype they’ve created in each iteration.

When you’ve got a tight budget:

Relatively, compared to other methodologies, RAD is inexpensive. Although you have to consider that just like other methodologies, at times, it may become expensive as you have to hire technology experts to fix a problem etc. Hence why, the team must be highly skilled to avoid such occurrences.

Advantages of Rapid Application Development

Measurable progress:

Project estimation can be better grasped due to frequent iterations, components, and prototypes getting executed. This allows schedules and budgets to be maintained, despite adjustments being needed.

Quickly generates productive code:

As most developers move into multi-discipline roles (for instance like full-stack developers), the RAD model allows skilled developers to quickly produce functioning prototypes and code that will portray examples of the working product for the specific iterations, on the contrary this might take weeks or months if using a different methodology.

Compartmentalisation of system components:

One of RAD’s biggest advantages is the fact it allows designers and developers to create components that are independently functional from each other, similar to object oriented software practices where components are separated from each other.

Within the RAD environment, each element within the software is compartmentalised, hence making it easily modified autonomously as requirements evolve/change.

Rapid, and constant feedback:

Another major advantage that RAD possesses is obtaining relevant feedback from the client(s) during each iteration.

This allows for continuous feedback via recurrent iteration and prototype releases, providing the team with extremely valuable evaluation and criticism that they can analyse and use to adapt the software in the following iteration.

Early system integration:

Unlike other methodologies (for instance like Waterfall) that have to wait till the very end for integration or close to the end, RAD is the exact opposite of that, implementation is almost integrated immediately.

The advantage of doing it this way allows developers to identify any early errors or complications within the prototypes that are created in each iteration. Thus allowing the team members to force immediate resolutions. Whereas with the Waterfall methodology, errors can only be distinguished at the very end, which can cause very big delay in trying to fix the problems, therefore meaning it’ll be very costly too.

Simple adaptability:

The RAD methodology allows the code developed to act malleable. This means that the code can be dramatically altered to evolve new software/component.

Despite this advantage, in order for developers to make use of this advantage, they need to iterate and prototype potential concepts or ideas, to produce great software.

Changing requirements is accommodated:

In the RAD model, at the end of each iteration, the prototype is reviewed, feedback is provided by the client, and the requirements can/may need to be altered to match the desired functionality that the client wishes to have. Ultimately, allowing the client to leave happier at the end.

Other advantages include:

Reduced development time

Increases the reusability of components

Disadvantages of Rapid Application Development

Requires modular systems:

According to the principle of RAD, each component within the system should be alterable and testable on its own accordingly. Each component requires to be flexible and allow elements within the system to be swapped or altered by diverse team members.

Difficulty within large scale projects:

Despite the fact that RAD provides a lot more flexibility during the design and development phase of the project as compared to other methodologies, it also tends to reduce control and restrictions, which may not seem very adequate for large applications.

Demands frequent interactions with the user:

Although it’s highly beneficial to always obtain feedback and user insight at the quickest time possible during development, this does also mean that communication between developers and clients/users must be at its optimum from the point of view of both sides.

Depends on skilled developers:

Team members must be highly skilled in order to quickly adapt to the fast pace development of the system. The team should also bear in mind that if any bugs or errors are to be found within the code, they should be efficient in solving them in the quickest time possible.

Summary and Facts

What is Rapid Application Development ?

Rapid Application Development is a type of Agile software development model that is considered to be a progressive development model, which gives more importance to rapid prototyping and speedy feedback over a lengthy development and testing cycle.

The advantage of using this model is that it allows developers to make multiple iterations and updates to a software quickly, without requiring to restart a development schedule from scratch every single time.

RAD is considered to be a methodology that requires minimal planning that will in-turn favour rapid prototyping.

Prototype: A prototype is a working model that is functionally equivalent to a component of the product.

Step that are included in Rapid Application Development:

  • Phase 1: Requirements planning
  • Phase 2: User Design/Prototype
  • Phase 3: Rapid construction
  • Phase 4: Cutover

When to use Rapid Application Development?

  • When you need a project done quickly
  • When you can reliably rest your prototypes
  • When you’ve got the budget

Advantages and Disadvantages of Rapid Application Development:

Advantages of RADDisadvantages of RAD
Requirements can be changed at any timeRequires strong team collaboration
Encourages and makes the client feedback a priorityRAD isn’t suited for very large teams
Reviews are rather quick compared to other methodologiesRequires highly skilled developers
Development time is reduced as there is not much time spent thinking about requirementsRequirements may not be very clear at the beginning of the project
More productivity with fewer peopleOnly suitable for projects which have a small development time
Time between prototypes and iterations is respectively shortDue to changing requirements and many prototypes, it can be harder to manage compared to others
Integration isn’t a problem, considering it integrates from project inceptionOnly modularised systems can be developed with RAD

References:

  1. https://www.clariontech.com/blog/what-is-rapid-application-development-why-when-should-you-use-it
  2. https://searchapparchitecture.techtarget.com/definition/object-oriented-programming-OOP#:~:text=Object%2Doriented%20programming%20(OOP)%20is%20a%20computer%20programming%20model,has%20unique%20attributes%20and%20behavior
  3. https://www.lucidchart.com/blog/rapid-application-development-methodology
  4. https://hackr.io/blog/rapid-application-development-model
  5. https://www.outsystems.com/blog/rapid-application-development.html
  6. https://kissflow.com/rad/rapid-application-development/
  7. https://searchsoftwarequality.techtarget.com/definition/rapid-application-development
  8. https://www.geeksforgeeks.org/software-engineering-comparison-between-agile-model-and-other-models/
  9. https://stackify.com/what-is-sdlc/
  10. https://theappsolutions.com/blog/development/rad-model/
  11. https://www.geeksforgeeks.org/steps-in-rapid-application-development-rad-model/
  12. https://airbrake.io/blog/sdlc/rapid-application-development