What is RAD (rapid application development)?


RAD is a concept more than anything else.  Using an Integrated Development Environment (IDE), the idea is to bring a project to completion, without sacrificing quality or comprehensiveness, as quickly as possible. One company claims it is a "toolset is a complete object oriented and object based application development environment built upon [our] programming language. It allows software application developers to plan, develop, deploy, and maintain database oriented business applications 10 times faster than with any other tools available."

The following discussion is from University of California, Davis web page on Application Development Methodology.

RAD (rapid application development) is a concept that 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

CASE (computer aided software engineering) is the use of a computer assisted method to organize and control the development of
software, especially on large, complex projects involving many software components and people. Using CASE allows designers, code
writers, testers, planners, and managers to share a common view of where a project stands at each stage of development. CASE helps
ensure a disciplined, check-pointed process. A CASE tool may portray progress (or lack of it) graphically. It may also serve as a
repository for or be linked to document and program libraries containing the project's business plans, design requirements, design
specifications, detailed code specifications, the code units, test cases and results, and marketing and service plans.

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, CASE 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.

CASE originated in the 1970s when computer companies were beginning to borrow ideas from the hardware manufacturing process and apply them to
software development (which generally has been viewed as an insufficiently disciplined process). Some CASE tools supported the concepts of structured
programming and similar organized development methods. More recently, CASE tools have had to encompass or accommodate visual programming tools
and object oriented programming. In corporations, a CASE tool may be part of a spectrum of processes designed to ensure quality in what is developed.
(Many companies have their processes audited and certified as being in conformance with the ISO 9000 standard.)

Some of the benefits of CASE and similar approaches are that, by making the customer part of the process (through market analysis and focus groups, for
example), a product is more likely to meet real-world requirements. Because the development process emphasizes testing and redesign, the cost of servicing a
product over its lifetime can be reduced considerably. An organized approach to development encourages code and design reuse, reducing costs and
improving quality. Finally, quality products tend to improve a corporation's image, providing a competitive advantage in the marketplace.

Rapid Application Development (RAD) Components

Factors for Rapid Development

Fast development does not mean a "quick and dirty" process. There should be no compromise between speed of development and quality. Several factors
contribute to the success of rapid development by improving both the quality of the delivered system and the speed of delivery.

Important Factors

Factors important for rapid development include:

     * Intensive involvement of the end user in the design of the system

     * Use of prototyping, which helps users visualize and make adjustments to the system

     * Use of an integrated CASE toolset to enforce technical integrity in modeling and designing the system

     * Use of a CASE repository to facilitate the re-use of proven templates, components and systems

     * Use of an integrated CASE toolset to generate bug-free code from a fully validated design

     * User involvement in the Construction stage, allowing the details to be adjusted if necessary

     * Development of a task structure that encourages parallel project activities

The Importance of User Involvement

The early, effective and continued involvement of users in the development process is critical to the success of RAD. The involvement of users is an important
factor in the early detection of errors, and in general, the earlier a defect is found, the less time and expense required to correct it. The relative cost of correcting
errors varies over the development life cycle. It is much less expensive to catch the error early.

Danger of Rapid Development: The Nature of the Danger

Rapid application development is becoming increasingly essential to business survival. There is, however, a danger inherent in rapid development. Enterprises
are often tempted to use RAD techniques to build stand-alone systems to solve a particular business problem in isolation. Such systems, if they meet user
needs, then become institutionalized. If an enterprise builds many such isolated systems to solve particular problems, the result is a large, undisciplined mass of
applications that do not work together.

In practice, most business applications are closely related to other applications and share databases with them, making a common infrastructure essential. In
addition, as computing systems grow, they become ever more complex, and such systems are difficult to change unless they have been created within a skillfully
designed architecture that allows one piece to be changed without changing the other pieces.

Most corporations did not until recently design overall Business Systems Architectures. As a result, as the installed base of applications has grown, flexibility
has decreased. The consequent cost of maintenance has grown, often to 70 or 80 percent of the total IT budget. The task of replacing systems created in the
absence of an overall architecture has now become overwhelming.

As the Number of Applications Grows, Flexibility Decreases

As the installed base of applications grows and becomes more complex, the flexibility of business systems decreases. Because such systems are difficult to
change, they inhibit the ability of the enterprise to react quickly to changing business conditions. This has been a frequent source of frustration to CEOs and
business strategists. Furthermore, as systems become more complex and less flexible, IT productivity decreases, because the constant effort to modify existing
systems becomes a task of growing difficulty.

To combat these problems, RAD techniques must be used within an infrastructure designed for rapid evolution of integrated systems.

Ruth says "Like every other tool, unless we know what the underlying issues are, we won't use it appropriately."

 Contents    What is NetDynamics?