CSC 311 Note on RAD
CSC 311 Note on RAD
1. WHAT IS RAD
Rapid Application Development (RAD) is a software development methodology that focuses on
building applications in a very short amount of time using Prototypes, Iterative Customization,
and CASE Tools. Using RAD software requires minimum planning, designed and developed (i.e.
within 60-90 days for rapid prototyping with compromises in usability, features and/or execution
speed.
2. HISTORY
Rapid Application Development has been in existence for nearly 20 years, but is as valid today as
it was when it was initially conceptualized.
3. THE PROBLEM
Processes developed in the 1970's, such as the Waterfall development methodology, often resulted
in the development of applications that did not meet client needs because applications took so
long to build that requirements had changed before the system was complete. Thus, for larger
projects, these methodologies frequently resulted in complete, but unusable, systems.
The cause of the problem was identified in the strict adherence to completion of one lifecycle
stage before moving on to the next lifecycle stage. Specifically, building an application based on
requirements that have been frozen at a point in time means that the longer development takes,
the more likely that business needs will change and invalidate the requirements that the system
being developed is based upon.
In 1986 Barry Boehm wrote A Spiral Model of Software Development and Enhancement, which initially
defined the concepts of prototyping and iterative development and had a focus on risk reduction.
During the late 1980's Scott Shultz and James Martin refined the ideas of prototyping and iterative
development into a methodology called Rapid Iterative Production Prototyping (RIPP) that
focused on developing systems in a short timeframe with small teams of highly qualified,
motivated, and experienced staff.
James Martin (who is frequently called "the Guru of the Information Age") further expanded and
formalized Rapid Iterative Production Prototyping and in 1991 published the book Rapid
Application Development.
5. ADVANTAGES
a. Increased Speed - RAD facilitates organizations in development of software applications faster
and decreased time to delivery.
The goal of delivering applications quickly is addressed through the use of Computer Aided
Software Engineering or CASE tools, which focus on converting requirements to code as
1
quickly as possible, as well as Time Boxing, in which features are pushed out to future releases
in order to complete a feature light version quickly.
b. Reduced Time - RAD has short development time against traditional development
methodologies or structured development methodologies
c. Reduced Cost - It also helps reduce development cost
d. Increased Quality - It increases quality of software.
In Traditional approach, quality in development was both the degree to which an application
conforms to specifications and a lack of defects once the application is delivered.
In RAD, quality is defined as both the degree to which a delivered application meets the
needs of users as well as the degree to which a delivered system has low maintenance costs.
RAD deliver on quality through the heavy involving of users in the analysis and particularly
the design stages.
6. DISADVANTAGES
(a) Reduced Scalability - Because RAD focuses on development of a prototype that is iteratively
developed into a full system, the delivered solution may lack the scalability (i.e. this denotes
the capability of the system to handle a growing amount of work or its potential to be
enlarged in order to accommodate that growth) of a solution that was designed as a full
application from the start.
(b) Reduced Features - Due to time boxing, where features are pushed off to later versions in
favor of delivering an application in a short time frame, RAD may produce applications that
are less full featured than traditionally developed applications. This concern should be
addressed as soon as possible through clear communication with the client as to what will be
delivered and when.
2
RAD has many core elements that make it a unique methodology including prototyping, iterative
development, time boxing, team members, management approach, and RAD tools.
(a) Prototyping
A key aspect of RAD is the construction of a prototype for the purpose of jumpstarting design
and flushing out user requirements. The objective is to build a feature light version of the finished
product in as short an amount of time as possible, preferably days. The initial prototype serves as a
proof of concept for the client, but more importantly serves as a talking point and tool for refining
requirements.
NOTE: CASE tools were popular in the late 80's and early 90's, but as technology has changed
(and COBOL has become obsolete) few tools take full advantage of the full potential of CASE tool
technology.
(ii) User Design Phase (also known as the Functional Design Stage) (B/W 3 and 5 weeks)
During the User Design stage the analysis team meets with end users in Joint Application
Development (JAD) Workshops. During the workshops the analysis team
flushes out the requirements in more detail,
4
develops the entities developed in the Requirements Planning into a data model (Entity
Relationship Diagram),
formalizes business rules,
develops test plans,
creates screen flows and layouts for essential parts of the system.
During the later half of this stage, the development team (also known as the SWAT or Skilled
Workers with Advanced Tools team) aids the analysis team in activities such as:
creating a working data model that can be converted to a functional database,
identifying reusable components (such as Microsoft's Application Blocks, which,
incidentally, are an excellent time saver on Microsoft .Net projects).
It is vital to keep each development iteration on track, and functionality may need to be dropped
to keep development within the time box. Management plays a vital part in ensuring everything is
progressing according to schedule, keeping the customer in the loop regarding changes in the
functionality, and keeping the team motivated.
Once the prototype has been developed (within its time box), the construction team tests the initial
prototype using test scripts
developed during the User Design stage, the design team reviews the application, the customer
reviews the application and finally the
construction team, design team, and customer meet in Focus Group meetings in order to
determine the requirements for the next iteration. Focus group meetings consist of facilitated
sessions that last about two hours. The facilitator should know ahead of time the areas that require
5
discussion and should ensure that each issue receives enough attention, keeping a list of issues
that require additional attention in a separate meeting as appropriate.
After the meeting (additional meetings may be necessary), the development team and design team
should update the requirements, data model, test scripts, and project plan as during the User
Design stage. Again the teams should identify core and secondary requirements, plan out the next
development iteration, keep the user in the loop regarding what will be done, and then start the
next iteration of development over again. As the system approaches a sufficient state the
development team should focus on the system as a finished application rather than a prototype.
During the final iterations of development the design team should update user documentation,
perform User Acceptance Testing and define the steps necessary for deployment/implementation.
Implementation
The Implementation Stage (also known as the Deployment Stage) consists of integrating the new
system into the business. The Development Team prepares data (such as lookup values like States
and Countries) and implements interfaces to other systems. The Design Team trains the system
users while the users perform acceptance testing. and are trained by the Design Team. The Design
Team helps the users transfer from their old procedures to new ones that involve the new system,
trouble shoots after the deployment, and identifies and tracks potential enhancements (read wish
list). The amount of time required to complete the Implementation Stage varies with the project.
Post-Project Activities
Project Manager review and document project metrics
organize and store project assets such as reusable code components, Project Plan, Project
Management Plan (PMP), and Test Plan.
Prepare a short lessons learned document.
Development Environments
The following tools support Rapid Application Development:
Microsoft Visual Studio.NET 2003,
Sun Java Studio Creator,
BEA Web Logic Workshop 8.1,
Borland C# Builder,
IBM WebSphere Studio Application Developer 5.1.2.
6
If requirements gathering tools are import for RAD, Data Modeling Tools are vital. Modifying a
database manually with SQL statements or through an IDE goes against RAD because data
modelers capture requirements and speed development by generating the database. Not using data
modeling on even the smallest project is just a terrible idea. Often tools that support requirements
gathering and UML also contain a data modeling tool and everything links together. The
Introduction to Data Modeling site is a detailed practical guide maintained by the University of
Texas at Austin's Information Technology Services. The next most popular after the Microsoft and
IBM tools is probably ERwin by Computer Associates.