Saturday, January 5, 2008

Rapid application development Model


Rapid application development (RAD) is a software development process developed initially by James Martin in the 1980s. The methodology involves iterative development, the construction of prototypes, and the use of Computer-aided software engineering (CASE) tools.

History

Rapid Application Development Model was a response to non-agile processes developed in the 1970s, such as the Waterfall model. The problem with previous methodologies was that applications took so long to build that requirements had changed before the system was complete, often resulting in unusable systems. Starting with the ideas of Barry Boehm and Scott Shultz, James Martin developed the Rapid Application Development approach during the 1980s at IBM and finally formalized it by publishing a book in 1991.

Advantages and disadvantages

Rapid Application Development model has two primary advantages:

Increased speed of development and increased quality. The speed increases are due to the use of CASE tools, the goal of which is to capture requirements and turn them into usable code as quickly as possible. Quality, as defined by RAD, is 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 increases quality through the involvement of the user in the analysis and design stages.

RAD has two primary disadvantages:

Reduced Scalability, and reduced features. Reduced scalability occurs because a RAD developed application starts as a prototype and evolves into a finished application. Reduced features occur due to time boxing, where features are pushed to later versions in order to finish a release in a short amount of time.

Core RAD elements

RAD has six core elements: prototyping, iterative development, time boxing, team members, management approach, and RAD tools.

The first element, prototyping, is the construction of a feature-light, reduced-scalability application in a short amount of time. The objective is to create a working application to help a user flesh out requirements.

The second element, Iterative development, is the creation of increasingly feature rich versions of applications in short development cycles, where each release produces user requirements that feed the next release.

Time boxing is the third element, and supports iterative development by pushing off features to future versions in order to complete iterative cycles as quickly as possible. Time boxing is extremely important to help reduce scope creep, but it requires watchful and involved management.

The fourth RAD element, team members, specifies that teams should be small and should consist of experienced, versatile, and motivated members that are able to perform multiple roles. Ideally team members should have prior experience with the RAD methodology.

Management approach, the fifth RAD element, is an essential element specifying that management should be very involved in keeping development cycles short and enforcing deadlines. Furthermore management should help keep high team motivation, and should focus on clearing bureaucratic or political obstacles.

The sixth and last element, RAD tools, specifies that development speed is more important than cost of tools and so the latest technologies should be used to increase development speed.

No comments: