<ch31 toc ch33>

32 Rapid application development (RAD)

32.1 Purpose
32.2 Strengths, weaknesses, and limitations
32.3 Inputs and related ideas
32.4 Concepts
32.4.1 Components
32.4.2 Phases
32.4.3 Variations
32.5 Key terms
32.6 Software
32.7 References
32.7.1 Citations
32.7.2 Suggestions for additional reading

32.1 Purpose

Rapid application development (RAD) is a system development methodology that employs joint application design (to obtain user input), prototyping, CASE technology, application generators, and similar tools to expedite the design process.

32.2 Strengths, weaknesses, and limitations

Rapid application development promotes fast, efficient, accurate program and/or system development and delivery. Compared to other methodologies, RAD generally improves user/designer communication, user cooperation, and user commitment, and promotes better documentation.

Because rapid application development adopts prototyping and joint application design, RAD inherits their strengths and their weaknesses. More specifically, RAD is not suitable for mathematical or computationally-oriented applications. Because rapid application development stresses speed, quality indicators such as consistency, standardization, reusability, and reliability are easily overlooked.

32.3 Inputs and related ideas

Rapid application development is an alternative to the traditional system development life cycle (# 1). The RAD methodology incorporates joint application design (# 14) and prototyping (# 31). CASE technology (# 5) is often used to speed the development process.

32.4 Concepts

Rapid application development (RAD) is a system development methodology that employs joint application design (to obtain user input), prototyping, CASE technology, application generators, and similar tools to expedite the design process. Initially suggested by James Martin, this methodology gained support during the 1980s because of the wide availability of such powerful computer software as fourth-generation languages, application generators, and CASE tools, and the need to develop information systems more quickly. The primary objectives include high quality, fast development, and low cost.

32.4.1 Components

Rapid application development focuses on four major components: tools, people, methodology, and management. Current, powerful computing technology is essential to support such tools as application generators, screen/form generators, report generators, fourth-generation languages, relational or object-oriented database tools, and CASE tools. People include users and the development team. The methodology stresses prototyping and joint application design.

A strong management commitment is essential. Before implementing rapid application development, the organization should establish appropriate project management and formal user sign-off procedures. Additionally, standards should be established for the organization’s data resources, applications, systems, and hardware platforms.

32.4.2 Phases

Martin suggests four phases to implement rapid application development: requirements planning, user design, construction, and cutover.

Requirements planning is much like traditional problem definition and systems analysis. RAD relies heavily on joint application design (JAD) sessions to determine the new system requirements.

During the user design phase, the JAD team examines the requirements and transforms them into logical descriptions. CASE tools are used extensively during this phase. The system design can be planned as a series of iterative steps or allowed to evolve (# 72).

During the construction phase, a prototype is built using the software tools described earlier. The JAD team then exercises the prototype and provides feedback that is used to refine the prototype. The feedback and modification cycle continues until a final, acceptable version of the system emerges. In some cases, the initial prototype consists of screens, forms, reports, and other elements of the user interface, and the underlying logic is added to the prototype only after the user interface is stabilized.

The cutover phase is similar to the traditional implementation phase (# 76). Key activities include training the users, converting or installing the system, and completing the necessary documentation.

32.4.3 Variations

There are several variations and/or extensions to the rapid application development methodology.

Courbon et al.4 defines an evolutionary approach in which “progressive designs” go through “multiple, minimum-length cycles” in which “successive versions of the system under construction are utilized by the end user.” Courbon’s evolutionary approach5 is also called middleout, breadboarding, and the iterative design approach.

The essence of the evolutionary approach is to have the user (or the manager) and the builder agree on a small but significant subproblem, and then to design and develop an initial system to support that immediate need. After a short period of use (a few weeks for instance), the system is evaluated, modified, and incrementally expanded. This cycle is repeated three to six times over the course of a few months until a relatively stable system that supports a cluster of related tasks evolves. The word relatively is important because, although the frequency and extent of system change will decrease or even cease, the system will never be truly stable. In effect, constant change is a conscious strategy.

Note that the evolutionary approach requires an unusual level of user (or management) participation. The user is actually the designer, and the system analyst merely implements required changes or modifications. Note also that this approach differs from traditional prototyping because the initial system is real, live, and usable, not just a pilot test.

Sprague6,7 and Carlson’s1,2 quick-hit approach is designed to take advantage of recognized high payoff application tasks for which a system can be built very quickly. The basic idea is to gain user cooperation and confidence by rapidly developing a highly usable system. For example, imagine that a company is losing market share to a rival. Imagine further that a preliminary study suggests that the primary factors contributing to the problem are product quality, after-sale service, and brand recognition. Perhaps a simulation model that focuses on those factors can be designed and constructed quickly, yielding information that can help management correct the problem. Note that the system is designed quickly to hit the main points; hence the name quick hit approach. According to Sprague, the quick-hit approach is low risk and has a high potential short run payoff.

32.5 Key terms

Application generator (generator, program generator) —
A program that starts with information in graphical, narrative, list, or some other logical form and generates the appropriate source or executable code.
CASE (computer-aided software engineering) —
A set of automated tools that assist in the entire software engineering process.
Construction phase —
The rapid application development phase during which a prototype is built, exercised, and modified based on user feedback.
Cutover phase —
The rapid application development phase during which the system is finalized and released to the user.
Evolutionary approach —
An approach to rapid application development in which progressive designs go through multiple, minimum-length cycles in which successive versions of the system under construction are utilized by the end user.
Fourth-generation language —
A non-procedural language that generates the appropriate source or executable code from a programmer’s definition or description of a logical operation.
Joint application design (JAD) —
A technique for quickly determining system requirements in an intensive session attended by a team consisting of major users, managers, and systems analysts.
Prototype —
A preliminary, working, physical model of a system, a subsystem, or a program.
Prototyping —
The act of creating a prototype.
Quick-hit approach —
An approach to rapid application development that takes advantage of recognized high payoff applications for which a system can be built very quickly.
Rapid application development (RAD) —
A system development methodology that employs joint application design, prototyping, CASE technology, application generators, and similar tools to expedite the design process.
Requirements planning —
The rapid application development phase during which the system requirements are defined using joint application design and other tools and techniques; this phase is similar to traditional problem definition and systems analysis.
User design phase —
The rapid application development phase during which the joint application design team examines the requirements and transforms them into logical descriptions.

32.6 Software

Many CASE products support prototyping. Screen painters, menu builders, report generators, fourth-generation languages, executable specification languages, spreadsheets, and database management programs are popular prototyping tools. There is no software specifically designed to support a JAD session. However, certain groupware, such as Lotus Notes, supports limited computer mediated conferencing.

32.7 References

32.7.1 Citations

1.  Carslon, E. D., An approach for designing decision support systems, Data Base, 3, 1979.
2.  Carlson, E. D., Bennett, J., Griddings, G., and Mantey, P., The design and evaluation of an interactive geo-data analysis and display systems, Inf. Process., 74, 1974.
3.  Carlson E. D., Grace B. F., and Sutton, J. A., Case studies for interactive problem solving systems, MIS Q., 1(1), 51, 1977.
4.  Courbon, J. C., Drageof, J., and Jose, T., L’approache evolutive, Inf. Gest., 103, 51, 1979.
5.  Courbon, J. C., Grajew, J. and Tolovi, J., Design and Implementation of Interactive Decision Support System: An Evolutive Approach, Unpublished working paper, France, 1978.
6.  Sprague, R. H., Jr., Decision support systems—implications for the systems analysts, in Systems Analysis and Design: A Foundation for the 1980’s, Elsevier, New York, 1980.
7.  Sprague, R. H., Jr., A framework for the development of decision support systems, MIS Q., 1, 1980.
8.  Sprague, R. H., Jr. and Watson, H. J., Bit by bit: toward decision support system, Calif. Manage. Rev., 22(4), 60, 1979.
9.  Sprague, R. H., Jr. and Watson, H. J., A decision support systems for banks, OMEGA, 4(6), 657, 1976.
10.  Sprague, R. H., Jr., and Watson, H. J., MIS concepts—Part II, J. Syst. Manage., 26(2), 35, 1975.
11.  Sprague, R. H., Jr. and Watson, H. J., MIS concepts—Part I, J. Syst. Manage., 26(1), 34, 1975.
12.  Sprague, R. H., Jr. and Watson, H. J., Model management in MIS, Proceedings, 7th Annual DSI, Cincinnati, OH, 1975, 213.

32.7.2 Suggestions for additional reading

1.  Burch, J. G., Systems Analysis, Design, and Implementation, Boyd & Fraser, Boston, MA, 1992.
2.  Dewitz, S. D., Systems Analysis and Design and The Transition to Objects, McGraw-Hill, New York, 1996.
3.  Hoffer, J. A., George, J. F., and Valacich, J. S., Modern Systems Analysis and Design, Benjamin/Cummings, Reading, MA, 1996.
4.  Keen, P. G. W. and Scott-Morton, M. S., Decision Support Systems: An Organizational Perspective, Addison-Wesley, Reading, MA, 1978.
5.  Martin, J., Rapid Application Development, Macmillan, New York, 1991.
6.  McConnell, S., Rapid Development: Taming Wild Software Schedules, Microsoft Press, Redmond, WA, 1996.
7.  Mullin, M., Rapid Prototyping for Object-Oriented Systems, Addison-Wesley, Reading, MA, 1990.
8.  Power, M. J., Cheney, P. H., and Crow, G., Structured Systems Development: Analysis, Design, Implementation, 2nd ed., Boyd & Fraser, Boston, MA, 1990.
9.  Sarna, D. E. Y. and Febish, G. J., PC Magazine Windows Rapid Application Development/Book and Disk, Ziff Davis Press, Indianapolis, IN, 1992.
10.  Sprague, R. H., Jr. and Carlson, E. D., Building Effective Decision Support Systems, Prentice-Hall, Englewood Cliffs, NJ, 1980.
<ch31 toc ch33>