Rapid application development (RAD) describes a method of software development which heavily emphasizes rapid prototyping and iterative delivery. The RAD model is, therefore, a sharp alternative to the typical waterfall development model, which often focuses largely on planning and sequential design practices. First introduced in 1991 in James Martin's book by the same name, rapid application development has become one of the most popular and powerful development methods, which falls under the parental category of agile development techniques.
Some more specific takes on SDLC include:
|Software Development Life Cycle||Test-Driven Development||Waterfall Model|
|Iterative Model||Extreme Programming||Scaled Agile Framework|
|Agile Model||Scrum||Rational Unified Process|
|Big Bang Model||V-Model||Conceptual Model|
|Kaizen Model||Kanban Model||Spiral Model|
Perhaps the biggest advantage of rapid application development is its inherent synergy with the requirements of the medium itself: software. Whereas other forms of creation, such as a towering skyscraper or a sleek new automobile, require meticulous planning and logical development, the very essence of software is both malleable and in constant evolution. Since code itself -- and by extension, the software which is powered by said code -- can be morphed quickly and easily during development, software is inherently adaptable, lending itself well to iteration and experimentation.
By utilizing a rapid application development method, designers and developers can aggressively utilize knowledge and discoveries gleaned during the development process itself to shape the design and or alter the software direction entirely.
Below we'll explore a few of the primary uses of rapid application development, in both historical and theoretical scenarios, as well as analyze both the pros and cons of this attractive method of software creation.
Getting started with rapid application development generally follows a cyclical process that includes four basic steps:
In the slow, methodical software development methods of olde, receiving useful and concrete user feedback has been inherently difficult, costly, and time consuming. Long meetings and phone calls, and even longer design docs, were a necessary evil to lay out even the most basic concrete plans of proper software design. With typical waterfall methods, rudimentary user feedback was often many months if not years in the future, after all planning and most development had taken place.
In stark contrast, one of the biggest benefits to rapid application development is the ability to both easily and frequently receive feedback from users who are directly interfacing with the application during development and prototyping. While this advantage is most readily visible within the UI/UX components of the system, iterative design intrinsically means user feedback can be at the forefront of the process.
While various forms of RAD emphasize slightly different concepts and design methodologies, a common inclusion in most RAD systems is the heavy use of prototyping. As an alternative to heavy-handed design specifications, the use of prototypes throughout the development cycle provides for a number of unique benefits:
While there are a number of benefits to using a rapid application development method, we've highlighted a handful of the most crucial when considering whether RAD is the right choice for your next project.
No software development method is without fault and RAD is no different. While the benefits typically outweigh the disadvantages, we'll examine a few of the most likely roadblocks when implementing RAD into a new project.