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.
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?