Chapter 9 • Methodologies for Custom Software Development 377
Determine Basic Requirements
Prototype the System
Pilot the Prototype
Prototyping/Piloting Phase
System Building
System Testing
SDLC Construction Phase
Installation
Operations
Maintenance
SDLC Implementation Phase
System Design Modifications
FIGURE 9.10 Prototyping/Piloting Phase Replaces SDLC
Definition Phase
After basic requirements are determined (Step 1), a work-
ing prototype is developed (Step 2). The initial prototype
is sufficiently developed to demonstrate a technical
solution using hardware and software components that
typically had not been used before in the organization. In
Step 3, the prototype is extended to become a working
prototype that can be piloted with a subset of the targeted
users.
This prototyping/piloting approach within an SDLC
is especially useful for large, risky projects that involve
technological risks or organizational risks, or both. For
example, one major objective might be to demonstrate the
basic capabilities or provide a proof-of-concept test of a
technical solution. A second major objective might be to
get executive sponsors to buy in to the proposed system.
By working with a prototype with live data, business
managers can evaluate the potential benefits (and risks) of
the new application in an operational setting. The expec-
tation is that this is only a prototype, developed at mini-
mal cost, which will be modified before the actual system
is built.
For example, changes in functionality based on using
the prototype in a pilot setting, as well as changes in the
technology, are anticipated before the final system will be
implemented at all locations. The prototype is used to help
“sell” the system to key users as well as those who have
budgeting authority. If the pilot is successful, what was
learned from using the working prototype can now be incor-
porated into the design that will be used for the building of
the actual system. The learning from the pilot step also helps
users prepare for the organizational changes needed to
implement the full system. The remaining steps match the
typical SDLC process.
Newer Approaches
The demands for speedier development of new application
systems have steadily increased over the past decade. In
this section, we briefly discuss two approaches that have
been proven to result in faster development of high-quality
customized applications of a certain size: a RAD method-
ology and agile software development approaches.
Rapid Application Development (RAD)
Rapid application development (RAD) is a hybrid method-
ology that combines aspects of the SDLC methodology
and prototyping. Similar to the SDLC methodology, sever-
al RAD variants exist within organizations and consultan-
cies. The goal is to produce a system in less than a year.
Some organizations adopting RAD approaches require that
all projects fit within a short timebox—such as six months
(Clark et al., 1997). RAD is usually applied, much like
prototyping, in isolation from other systems, so interde-
pendencies between systems are not considered.
The RAD life cycle developed by guru James Martin
includes four steps, with iterations between and parallel
conduct among Steps 2 and 3, similar to a prototyping
methodology (see Figure 9.11). The Requirements Planning
step incorporates elements of the traditional IT project pro-
posal initiation and steps from the SDLC Definition phases.
For the User Design step, Joint application design (JAD)
sessions and software automation (CASE) tools are used to
accomplish the work more quickly.
A JAD session could last several hours or could be
held over several consecutive days. It is often held at a lo-
cation removed from the participants’ usual workplace so
User Design
Construction
Cutover
Requirements
Planning
FIGURE 9.11 Four-Step RAD Life Cycle