Rapid Application Development Model or RAD for short, is a “try before you buy” approach to software development. The theory is that end users can create better feedback when analyzing a live system, as opposed to working strictly with documentation. RAD-based development cycles have resulted in a lower degree of rejection once the application is placed into production, but this success most often comes at the cost of a dramatic overruns in project costs and schedule.
The RAD approach was made possible with significant advances in software development environments to permit rapid generation and change of displays and other user interface features. The end user is allowed to work with the screens online, as if in a production environment. This leaves little to the imagination, and a substantial number of errors are caught using this process.
The down side to RAD is the propensity of the end user to force scope creep to the development effort. Since it seems so easy for the developer to generate the simple screen, it has to be just as simple to add a widget or two. In many RAD lifecycle failures, the end users and programmers were caught in an unending cycle of improvements, with the users asking for more and more and the developers seeking to satisfy them. The participants lost sight of the goal of creating a basic, useful system in favor of the siren song of glittering perfection.
Because of this, the software development group does not use a pure RAD approach, but rather blends limited prototyping in with requirements and design development during a conventional waterfall lifecycle. The prototypes developed are specifically focused on a subset of the application, and don’t provide an integrated interface. The prototypes are used to confirm requirements and design components, and the development of additional requirements or the inclusion of user interface options not readily supported by the development environment is actively discouraged.
Advantages of RAD
RAD reduces the development time and reusability of components help to speed up development.
All functions are modularized so it is easy to work with.
For large jobs RAD require highly skilled engineers in the group.
Cons of RAD
Both end customer and developer should be committed to complete the system in a much abbreviated time period.
If commitment is lacking RAD will fail.
RAD is based on Object Oriented approach and if it’s hard to modularize the project the RAD might not work well.