In today’s fast-paced software engineering landscape, programmers are constantly seeking ways to streamline their software development processes and deliver applications faster.
In the 1990s and early 2000s, this quest for speed and efficiency gave rise to a powerful methodology known as the Rapid Application Development methodology (RAD). Nowadays, modern app development platforms seem to deliver on the promises of RAD in a cloud-first world.
If you’re curious about RAD and app development platforms and want to understand their core principles and benefits, you’ve come to the right place.
In this comprehensive blog post, we will demystify Rapid Application Development and app development platforms, providing you with a clear definition of both and their evolution in the software development landscape.
Whether you’re a software developer or an IT enthusiast, this guide will equip you with the knowledge to leverage rapid application development effectively.
Let’s dive in and explore the world of agile, efficient, and accelerated application development!
Rapid Application Development (RAD) is an iterative and incremental software development approach that emphasizes speed, flexibility, and collaboration. It aims to accelerate the delivery of high-quality applications by involving users and stakeholders early on in the development process. RAD focuses on building prototypes, gathering feedback, and incorporating changes rapidly to meet evolving requirements.
The term RAD was originally coined by James Martin. His 1991 book titled “Rapid Application Development” is generally considered the advent of the RAD methodology.
RAD evolved as a response to the traditional waterfall methodology. In a waterfall approach, requirements are typically fixed, and changes are challenging to accommodate, because of the sequential nature of the work. Instead, RAD embraced change and promoted a dynamic development process that adapts to evolving business needs.
The term rapid application development (RAD) can refer to either an application development methodology or a type of software development tool.
As just described, the RAD methodology, as defined by James Martin, is a structured approach to application development that emphasizes rapidly building prototypes of sections of the final product (modules), with ongoing end-user involvement and short feedback loops. The modules are all developed in parallel, and then combined into the final product.
Early rapid application development tools, introduced in the 1990s, tried to enable development using this methodology. These tools included code generation features to help create software more quickly and with less coding. The emphasis on reducing hand-written code was also referred to as computer-aided software engineering or CASE.
Early RAD tools were not successful, however, for several reasons.
After the launch of early RAD tools, the focus of software development gradually shifted to web development. RAD tools could not adapt fast enough to this change.
RAD was also not suitable for projects that weren’t able to be split into modules or were more technically challenging. They were also limited in terms of the scalability of the software developed. The emphasis on rapid development and the user interface also resulted in a reduced focus on requirements planning and modeling. This then affected the quality and maintainability of the software.
RAD, just like many other new, revolutionary technologies, became a marketing buzzword in the late 1990s and early 2000s. The technology entered a trough of disillusionment, as RAD tools could not fully deliver on their promises.
A 2005 article on RAD, for example, says that “Rapid Application Development (RAD) is a marketing buzzword that almost every software development tool uses, yet one that rarely applies.”
The article goes on to say that many tools that claimed to be RAD-ready are simply tools necessary in any software development project, such as IDEs or data modeling tools, without necessarily supporting RAD in any specific way.
Not surprisingly, the interest in RAD waned over the years. Only recently have developers begun to look at rapid application development again, thanks to a new breed of tools: app development platforms.
Modern app development platforms only emerged in recent years. In 2014, IT consultancy Forrester, for example, described modern app development platforms in language surprisingly reminiscent of RAD:
“Faster delivery is the primary benefit of these application platforms; they also help firms respond more quickly to customer feedback after initial software releases and provision mobile and multichannel apps.”
These platforms “accelerate app delivery by dramatically reducing the amount of hand-coding required”.
Let’s explore modern app development platforms and how they are similar or different to rapid application development.
Today’s modern app development platforms incorporate many RAD principles. Cynical observers may argue that today’s app development platforms are just old wine in new skins: just like RAD, these platforms prioritize faster time-to-market, rapid prototyping, shorter iteration cycles, early user involvement, and application adaptability.
However, today’s app development platforms also try to overcome some of RAD’s growing pains.
The 2005 article quoted above correctly pointed out that in the early 2000s, many development tools claimed to be RAD tools, yet none of these was sufficient to build and deploy applications.
This has changed with modern app development platforms.
As written by Capers Jones, there is an important distinction between application development and application delivery: “The true goal of software engineering is to improve the rate of delivery productivity and not development productivity.” What matters in software development is not just how quickly new features are developed, but how quickly they are delivered.
Modern app development platforms offer sophisticated application development and deployment features, accelerating development and delivery.
Through automated, one-click deployment, developers can launch applications onto a highly-scalable cloud infrastructure from inside the same app development platform that they use to develop the application. This is what sets app development platforms apart from traditional IDEs or data modeling tools.
For developers, developing and deploying from the same platform has one big advantage. They can accelerate their full-stack web app development, even without cloud expertise. All it takes to ship the finished application to end users is a single click.
More advanced app development platforms even offer several application environments, such as development, testing (staging), and production. This empowers developers to move applications quickly through the entire software development lifecycle, from development to testing to final deployment.
Modern app development platforms leverage developers’ existing skills. For experienced developers, the learning curve is flat.
This flattens the learning curve and increases the uptake of these platforms.
Moreover, this also reduces vendor lock-in. For example, when using Five, developers build on a MySQL database. The application data remains portable, should the application owner wish to migrate their application. However, as written in our article on online database builders, not all app development platforms use open-source technologies.
Between the rise of RAD tools in the 1990s and 2000s and today, more than twenty years have passed. And during those two decades, the way software gets built has fundamentally changed. Today’s modern app development platforms successfully leverage these changes.
A watershed moment in the evolution of software engineering is Microsoft’s embrace of open-source in 2009. That’s when Microsoft released the source code of the .NET Micro Framework to the development community as free and open-source. How does this relate to RAD and app development platforms?
In the 1990s and 2000s, software development was largely still a siloed activity: APIs and frameworks were only just emerging, for example. Applications were mostly fenced-off data fiefdoms, not designed to communicate with each other and built for specific operating systems. With the advent of the web and the cloud, all of this has changed.
Nowadays applications are built for the web and have to be cloud-based. Moreover, UI libraries have standardized the way applications look, APIs have standardized the way applications communicate with each other and exchange data and the cloud, containers, and Kubernetes have standardized modern deployment.
Modern app development platforms leverage frameworks, cloud computing, and modern, standard technologies. They offer higher levels of abstraction on top of them. Earlier RAD tools simply did not have access to these technologies.
Yesterday’s RAD tools and today’s app development platforms share many similarities. Both are designed to help development teams
However, where RAD failed to convince developers and ultimately went out of fashion, modern app development platforms seem to succeed. They leverage the latest technologies and offer a more comprehensive suite of features that support rapid application development and delivery.