Computer Science Department CS 470 Fall I RAD: Rapid Application Development By Sheldon Liang
CS 470 Handouts Rapid Application Development Pg 1 / 5 0. INTRODUCTION RAD: Rapid Application Development By Sheldon Liang Rapid application development (RAD), is a software development process developed initially by James Martin in the 1980s. The methodology involves ICU -- I - iterative development, -- C - construction of prototypes, and -- U -use of Computer-aided software engineering (CASE) tools. ICU: Intensive Care Unit (for survival not for better) Traditionally the rapid application development approach involves compromises in usability, features, and/or execution speed. It is described as a process through which the development cycle of an application is expedited. Rapid Application Development thus enables quality products to be developed faster, saving valuable resources. Pros 1. Increased speed of development through methods including rapid prototyping, virtualization of system related routines, the use of CASE tools, and other techniques. 2. Decreased end-user functionality (arising from narrower design focus), hence reduced complexity 3. Larger emphasis on simplicity and usability of GUI design Cons 1. Reduced Scalability, and reduced features when a RAD developed application starts as a prototype and evolves into a finished application 2. Reduced features occur due to time boxing when features are pushed to later versions in order to finish a release in a short amount of time 1. WHAT IS RAD 1.1 What is Rapid Application Development (Definition & Methodology) DEFINITION - RAD (rapid application development) is a concept that products can be developed faster and of higher quality through (methodology): Gathering requirements using workshops or focus groups Prototyping and early, reiterative user testing of designs The re-use of software components A rigidly paced schedule that defers design improvements to the next product version Less formality in reviews and other team communication Some companies offer products that provide some or all of the tools for RAD software development. These products include requirements gathering tools, prototyping tools, computeraided software engineering tools, language development environments such as those for the Java
CS 470 Handouts Rapid Application Development Pg 2 / 5 platform, groupware for communication among development members, and testing tools. RAD usually embraces object-oriented programming methodology, which inherently fosters software re-use. The most popular object-oriented programming languages, C++ and Java, are offered in visual programming packages often described as providing rapid application development. 1.2 What is used for Rapid Application Development A programming system that enables programmers to quickly build working programs. In general, RAD systems provide a number of tools to help build graphical user interfaces that would normally take a large development effort. Two of the most popular RAD systems for Windows are Visual Basic and Delphi. Historically, RAD systems have tended to emphasize reducing development time, sometimes at the expense of generating efficient executable code. Nowadays, though, many RAD systems produce extremely fast code. Conversely, many traditional programming environments now come with a number of visual tools to aid development. Therefore, the line between RAD systems and other development environments has become blurred. 2. BETTER UNDERSTANDING OF RAD 2.1 Comparison and Further understanding: RAD and JAD RAD is a methodology for compressing the analysis, design, build, and test phases into a series of short, iterative development cycles. This has a number of distinct advantages over the traditional sequential development model. RAD projects are typically staffed with small integrated teams comprised of developers, end users, and IT technical resources. Small teams, combined with short, iterative development cycles optimizes speed, unity of vision and purpose, effective informal communication and simple project management. Rapid Application Development - Development Methodology (RAD) We highly recommend this book for additional information on rapid application development. By clicking on the book, you will be sent to Amazon.com where you can purchase the book for $28 which is a 20% savings. The traditional software development cycle follows a rigid sequence of steps with a formal signoff at the completion of each. A complete, detailed requirements analysis is done that attempts to capture the system requirements in a Requirements Specification. Users are forced to "signoff" on the specification before development proceeds to the next step. This is followed by a complete system design and then development and testing. But, what if the design phase uncovers requirements that are technically unfeasible, or extremely expensive to implement? What if errors in the design are encountered during the build phase? The elapsed time between the initial analysis and testing is usually a period of several months. What if business requirements or priorities change or the users realize they overlooked critical needs during the analysis phase? These are many of the reasons why software development projects either fail or don t meet the user s expectations when delivered.
CS 470 Handouts Rapid Application Development Pg 3 / 5 RAD is a methodology for compressing the analysis, design, build, and test phases into a series of short, iterative development cycles. This has a number of distinct advantages over the traditional sequential development model. Iteration allows for effectiveness and self-correction. Studies have shown that human beings almost never perform a complex task correctly the first time. However, people are extremely good at making an adequate beginning and then making many small refinements and improvements. We should encourage and exploit this rather than fight it. RAD projects are typically staffed with small integrated teams comprised of developers, end users, and IT technical resources. Small teams, combined with short, iterative development cycles optimizes speed, unity of vision and purpose, effective informal communication and simple project management. An important, fundamental principle of iterative development is that each iteration delivers a functional version of the final system. It is a properly engineered, fully working portion of the final system and is not the same as a prototype. For example, the first iteration might deliver 100% of 10%, the second iteration 100% of 25%, etc. 2.2 Joint Application Development (JAD) Methodology Joint Application Design, or JAD, is a process originally developed for designing a computerbased system. It brings together business area people (users) and IT (Information Technology) professionals in a highly focused workshop. The advantages of JAD include a dramatic shortening of the time it takes to complete a project. It also improves the quality of the final product by focusing on the up-front portion of the development lifecycle, thus reducing the likelihood of errors that are expensive to correct later on. The Joint Application Development (JAD) methodology aims to involve the client in the design and development of an application. This is accomplished through a series of collaborative workshops called JAD sessions. Two employees of IBM, Chuck Morris and Tony Crawford,
CS 470 Handouts Rapid Application Development Pg 4 / 5 developed the JAD methodology in the late 1970s and began teaching the approach in to the 1980s. In contrast to the Waterfall approach, JAD is thought to lead to shorter development times and greater client satisfaction, both of which stem from the constant involvement of the client throughout the development process. On the other hand, with the traditional approach to systems development, the developer investigates the system requirements and develops an application, with client input consisting of a series of interviews. Rapid application development (RAD), a variation on JAD, attempts to create an application more quickly through strategies that include fewer formal methodologies and reusing software components. Development Methodology - Joint Application Development (JAD) The JAD process does for computer systems development what Henry Ford did for the manufacture of automobiles (a method of organizing machinery, materials, and labor so that a car could be put together much faster and cheaper than ever before the assembly line). The goal in systems development is to identify what the users really need and then set up a system or process that will provide it. Traditional methods have several built-in delay factors that get worse as more people become involved. The following description of the Traditional Systems Design process is from "Joint Application Development" by Jane Wood and Denise Silver ¹. It may sound familiar. In most organizations, the systems development life cycle begins with the identification of a need, assignment of a project leader and team, and often the selection of a catchy acronym for the project. The leader pursues a series of separate meetings with the people who will use the system or be affected by it. The leader continues these meetings over time. Often the key people involved are not so easy to reach. But eventually, having documented everything possible, the leader translates copious notes into a personal terminology. That s when it becomes apparent that the requirements from, say Accounting, don t mesh with what the Sales department wants. So the leader calls Sales and finds out the contact there is in the field and will not be back until tomorrow. Next day the leader reaches Sales, gets the information, calls Accounting, and of course the person in Accounting is now out of the office, and so on. When everyone is finally in agreement, alas, the leader discovers that even more people should have been consulted because their needs require something entirely different. In the end, everyone is reluctant to "sign off" on the specifications. Other times, signing off comes easily. But when the system is delivered, it often has little to do with what the users really need: "A user sign off is a powerless piece of paper"² when matched against the fury of top management.
CS 470 Handouts Rapid Application Development Pg 5 / 5 Slow communication and long feedback time is one reason the traditional process is so timeconsuming. You can see why the communication problem grows worse as more people must be brought into consensus. JAD centers around a structured workshop session. Everyone gets together in a room and talks it out. Everyone hears what the rest of the group has to say. There s no delay between question and answer, no "telephone tag" or waiting for memos to come back. JAD eliminates many of the problems with traditional meetings. Meetings are not well regarded as a productive form of work. JAD turns meetings into workshops. They are less frequent, more structured, and more productive. An agenda provides the structure, a facilitator directs the process, visual aids clarify concepts being discussed and the group dynamics, with constant feedback, stimulates creativity. JAD sessions are: 1. Very focused 2. Conducted in a dedicated environment 3. Quickly drive major requirements and interface "look & feel" 4. JAD participants typically include: * Facilitator facilitates discussions, enforces rules * End users 3 to 5, attend all sessions * Developers 2 or 3, question for clarity * Tie Breaker Senior manager. Breaks end user ties, usually doesn t attend * Observers 2 or 3, do not speak * Subject Matter Experts limited number for understanding business & technology