In software development, RAD (rapid application development) is a concept that was born out of frustration with the waterfall software design approach which too often resulted in products that were out of date or inefficient by the time they were actually released. The term was inspired by James Martin, who worked with colleagues to develop a new method called Rapid Iterative Production Prototyping (RIPP). In 1991, this approach became the premise of the book Rapid Application Development.
Martin's development philosophy focused on speed and used strategies such as prototyping, iterative development and time boxing. He believed that software products can be developed faster and of higher quality through:
- Gathering requirements using workshops or focus groups
- Prototyping and early, reiterative user testing of designs
- The re-use of software components
- A rigidly paced schedule that defers design improvements to the next product version
- Less formality in reviews and other team communication
Rapid application development is still in use today and some companies offer products that provide some or all of the tools for RAD software development. (The concept can be applied to hardware development as well.) These products include requirements gathering tools, prototyping tools, computer-aided software engineering tools, language development environments such as those for the Java platform, groupware for communication among development members, and testing tools.
RAD usually embraces object-oriented programming methodology, which inherently fosters software re-use. The most popular object-oriented programming languages, C++ and Java, are offered in visual programming packages often described as providing rapid application development.