The pandemic certainly ignited an urgency to deliver new digital experiences. It also revitalized ongoing digital transformation efforts to quickly build out user-facing features. Simultaneously, old waterfall development cycles are fading, being replaced by more continuous methodologies and greater use of automation. In recent years, two approaches have specifically entered the limelight to deliver these outcomes: low-code/no-code (LCNC) development and rapid application development (RAD).
Though low-code and rapid application development can both accelerate software development and delivery, they are different concepts. Low-code development refers explicitly to a visual programming trend that empowers domain experts to stitch together their own applications and workflows. On the other hand, RAD is a general approach that aims to evolve traditional waterfall development cycles, involving rapid prototyping and user testing. Rapid application development doesn’t necessarily involve low-code/no-code platforms, though it certainly could, depending on a software team’s chosen strategies.
Below, I’ll define low-code and rapid application development and see how similar and different the two approaches are. We’ll examine the benefits and drawbacks of each concept to help readers consider which strategy may be suitable for your software development requirements.
First off, what is low-code development? Low-code/no-code is an ongoing movement that eases software development by providing a codeless method to construct applications. Low-code/no-code platforms typically offer a UI-driven experience with drag-and-drop building blocks. These reusable components can handle everything from payments to form creation, user account information, event triggering, and more. Low-code environments also abstract underlying APIs, streamlining the headache of integrating with SaaS and external data sources.
IT typically has a long backlog of projects. As a result, a non-IT department may end up waiting months for a simple app to be designed, developed, and deployed. Low-code can help speed up application development for non-programmers who want to apply their domain knowledge to build out specific functionality. These users are sometimes referred to as citizen developers.
There are many low-code/no-code frameworks on the market, which could quickly boost the operations of, say, a product manager or financial analyst while allowing professional developers to focus on building out core infrastructure.
- Gives development power to domain experts
- Decreases development time
- Helps fill IT gaps and engineering shortages
- Can complement the workflow of a professional developer
- Reduces effort to generate boilerplate code to support multiple platforms
- Lowers barriers to integrating with external data sources and tools
- Usually cloud-based and easily accessible
- Automated deployment and hosting
- Requires a new governance to control non-developer usage
- Introduces new security concerns
- Could incur additional technical debt
- Can be difficult to encourage a citizen developer culture
- Often citizen developers only get 80% of the way there; still requires IT to reach the finish line
- Over-dependency on automation can bring negative outcomes
- A lack of vendor-neutral low-code standards limits portability
Rapid Application Development
Rapid application development (RAD) is a project life cycle approach that is an alternative to the age-old waterfall development style of production, known as Systems Development Life Cycle (SDLC). Traditional plan-based models like this were a holdover from the physical engineering world and didn’t translate over that well into software production. On the other hand, RAD emphasizes ongoing, continuous development, where prototypes are rapidly assembled and shown to users to iteratively collect feedback. In essence, the blueprints are more malleable.
James Martin formalized RAD in his 1991 book, Rapid Application Development. Martin’s flavor of RAD condenses the project lifecycle into four key stages: the requirements phase, user design phase, construction phase, and a cutover phase. However, one should note that RAD is both a specific method championed by Martin and a general philosophy interpreted differently from group to group. For example, OutSystems rephrases the RAD process as Define Requirements, Prototype, Absorb Feedback, and Finalize Product.
The general consensus is that RAD sidesteps lengthy design specifications, and embraces a series of agile prototyping and increased user testing. This retains quality while providing the ability to pivot mid-project to meet user demands.
Rapid Application Development Benefits
- Shortened development lifecycles help complete projects on-time
- Well-suited to UI-heavy apps
- Enables agility to change within the development phase as opposed to after
- Continuous testing helps discover risks and bugs early on
- Easier to refine the user experience throughout development
- Can generate quick proof of concepts
- Reduces unforeseen client changes post-delivery
- Could help eliminate unused features to keep costs lean
Rapid Application Development Drawbacks
- Less structure means less control
- RAD requires more user and developer interaction, which will take time away from domain experts to participate
- Hacky nature of RAD could compromise high-security scenarios
- Intended for small-to-medium-sized teams and projects
- Difficult to scale RAD governance across an enterprise
- RAD does not itself enable the citizen development concept
Comparing LCNC and RAD
So, how are LCNC and RAD different? Well, for one,
Another distinction is that RAD is typically adopted by teams of professional programmers. Developers working in a rapid application development model continually interface with subject matter experts to showcase prototypes and accept feedback. However, the domain experts themselves are not necessarily the ones constructing applications. On the other hand, low-code often empowers these subject matter experts to craft software themselves. That being said, low-code tools could certainly be utilized to accelerate a RAD process.
Both Approaches Enable Malleability
There are many schools of thought on how to deliver software fluidly. Software development is knowledge-based and truly depends on production usage to inform development. Due to these factors, expectations are prone to shift mid-project — perhaps a new library or API is discovered that should be integrated, or maybe, the end-user has unforeseen difficulties interpreting how a feature works.
Rapid application development and low-code development can help respond to these needs within the development process, as opposed to later on once things are set in stone. This helps avoid producing superfluous features and grounds development in actionable use cases. Both approaches are also heavily interface-driven — as in, the end UI stands as a marker for project success since features are intercepted and tested at the UI level.
In short, low-code development and rapid application development are not mutually exclusive — they can both deliver quick prototypes and share a similar goal: to increase agility for application development. They can both be employed to offer a malleability to satisfy rising end-user needs.