Rapid Application Development

advertisement
Kyle Hartmann
Introduction
 RAD was created in response to long lead times and low flexibility
 Focuses on communication
 Quicker and better requirements interpretation
 Strict timetable
History: Concept Background
 Software development issues into the 1970s:
 Vast majority of projects used a waterfall model


Low Requirements Flexibility
Unable to go back to make changes unless a large portion of the process was
redone.
 Large amount of time needed to take a project from just an idea to
completion
History: Waterfall Model
 Example:
 After gathering
requirements and moving
through Integration
testing, requirements are
changed.
 To accommodate these
changes, the developer
must start at the top level
and move back down
until they are finally back
at integration testing.
History: RAD (1970s)
 Dan Gielan, System Development Center manager at New York
Telephone Co.
 Saw the trends that the waterfall model produced as inherent flaws with
the process.
 Engineered a new model that allowed design to adapt to changes easier
while shortening time to market.


Gielan believed by the time projects were created technology had changed and
therefore, so had the requirements.
Idea that even the most strenuous initial requirements gathering couldn’t unearth
all important requirements.
 The new process was used by New York Telephone Co. and the result was
cheaper software production with a better time to market.
History: RAD (1970s) cont.
 James Martin – IBM
 Brought the process to IBM to combat the same problems Gielan saw.
 After successful releases, Martin wrote a book, “Rapid Application
Development” giving the new process concept its name.
RAD Concepts





Minimal Planning (Initial Requirements gathering)
Rapid prototyping
Constant client communication
Rigid time schedule
Rigid budget constraints
Result: 80% of a complete system produced in the same
time as it takes for 20% of a system using traditional
methods
RAD Process Breakdown
 Requirements Planning
 Developers meet with clients to formulate a very basic understanding
 Focus on a few key objectives that will remain constant throughout
development

Idea that requirements may change but the scope of the project will remain
relatively the same.
 User Design
 Prototyping of user interaction with system (user interface)

Constant communication with client and/or end user
 Focus on user input
RAD Process Breakdown cont.
 Construction
 Finalized User interface
 Engineers implement backbone (unseen by user) of system
 Sparse communication with client/end user until completion of main
aspects
 Cutover
 Finishing up the software
 Last minute testing and changes
 Validation and Deployment
 Training
Advantages of RAD
 Flexibility
 Converge toward users’ optimal system with frequent changes
 Client inclusion
 Client sees work being done
 Decreased time to market
 Budget constraining
 Quality software through client/user communication
 Bugs can be found before release as prototypes are shown to the user.
Disadvantages of RAD
 Must have very effective communication skills at a developer level as
well as a management level
 Communication breakdown leads to a breakdown in software validity or
the timeline for production breaking down.
 Requires time budgeting skills at a management level
 If timing breaks down, the process becomes cumbersome rather than
efficient.
 Leads to a breakdown in budget constraints.
Branches of RAD
 Rapid Application development started as a concept or a set of ideas for
producing software.
 Early uses of RAD just mixed RAD concepts with traditional methods
 Creating hybrid approaches, more formal processes spun off of RAD
concepts.
Branches of RAD: Agile
 Takes prototyping principle from RAD
 Also focuses on flexible requirements
 Uses iterations for each prototype
 Formal communication with client


Done at end of each iteration
Management appoints a client
representative for communication.
Branches of RAD: Agile
 Microsoft RAD Presentation
Branches of RAD: Extreme
 Focus on flexibility coinciding with very high
quality
 Still maintains formalized requirements
planning
 Uses RAD concept of prototyping but with a
longer timetable
 Each prototype also includes strenuous
testing and other quality initiative (pair
programming, TDD, etc.)
 Changes made after a formal checkpoint at
the end of the process.
Branches of RAD: Joint Application
 Niche Development process
 Information Systems
 Reinforces RAD communication throughout development.
 Focus on Quality while trying to minimize cost and risk
Focuses of Joint
Application
Branches of RAD: Lean
 Mixes RAD for software with Lean
manufacturing principles.
 Process improvement and waste
minimization
 Eliminate wasted code and time
 Typically used as an add-on to other
methods such as the Agile method.
 Result should help improve quality
as well as time to market.
These focuses would usually
be added to whichever
process the development
team decides to use
Conclusion
 RAD is good for:
 Small – Medium sized projects
 Projects with changing technology
 Projects that need high flexibility
 RAD is bad for:
 Projects that need highly formalized standards
 Large projects
Questions
Download