// you’re reading...

Programming

Rapid application development (RAD) - Part 1

In recent months I have been asked questions various times regarding development methodologies for web 2.0 applications.  The way I have become accustomed to work in the current web climate is to use what is known as rapid application development or RAD for short.  RAD is an application development technique that incorporates the use of prototypes, iterative customisation, and CASE Tools.

Rapid Application Development Cycle

Overview

The purpose of rapid application development is to build applications in short timescales by with the compromise of usability, features and/or speed of execution. In current times rapid application development has become a term that describes applications that can be designed and developed within 60-90 days.  Although this was not the original description, as it was originally intended to describe processes of development that involved application prototyping and iterative development.

History

Rapid application development has been around for approximately 20 years, but it remains as valid today as when it was initially conceived.

The problem that existed

In the early 1970’s such process as the Waterfall development methodology often resulted in applications developed that did not meet the clients requirements. This was due to the fact that applications took far too long to be completed that by the time they were the clients’ requirements had changed. Thus, for large projects the methods resulted in complete projects that were unfortunately unusable.

When investigated it was found that the reason this occurred was the strict adherence to the completion of each development lifecycle stage before continuing to the next stage.  The problem occurred when business requirements were based on a list frozen at a point in time, thus the longer the development phase the more likely that the business requirements have changed and potentially invalidated the original targets that the system was based on.

The solution rapid application development provided

There were many potential resolutions to the problem provided in the 1980;s and through to the current day.  Back in 1986 Barry Boehm wrote a book titles A Spiral Model of Software Development and Enhancement. This book initially outlines the basic concepts of prototyping and iterative development with a focus on risk reduction.  Also during 80’s, Scott Shultz and James Martin further refined the ideas of prototyping and iterative development into a new methodology named Rapid Iterative Production Prototyping (RIPP).  The main focus of RIPP was the development of systems in a rapid time frame using small teams of highly qualified, motivated and experienced staff. James Martin (Often referred to as “the Guru of the Information Age” and was also nominated for the Pulitzer prize) then expanded on the method and formalised RIPP.  He published the book Rapid Application Development.

The Advantages and Disadvantages of RAD

The main advantages of Rapid Application Development are speed and quality, where potentially the disadvantages are potentially the reduction in scalability and features.

Increased Speed

The name of the method, Rapid Application Development, strongly suggests the main advantage, speed. The main advantage lies in the in increased development speed, and the decreased time that is required for delivery.  To achieve this goal of speedy application delivery is addressed with the use of Computer Aided Software Engineering otherwise known as CASE Tools.  These focus on decreasing the time required in converting project requirements into code. Another element used is Time Boxing, in which various extra features are pushed out to future released in order to complete a feature light version quickly.

Increased Quality

Increased quality is a primary focus of the Rapid Application Development methodology, but the term has a different meaning than is traditionally associated with Custom Application Development. Prior to RAD, and perhaps more intuitively, quality in development was both the degree to which an application conforms to specifications and a lack of defects once the application is delivered. According to 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. Rapid Application Development attempts to deliver on quality through the heavy involving of users in the analysis and particularly the design stages.

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 of a solution that was designed as a full application from the start.

Reduced Features

Due to time boxing, where features are pushed off to later versions in favour 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.

Discussion

No comments for “Rapid application development (RAD) - Part 1”

Post a comment