Sunday, March 27, 2011

Rapid application development-RAD

Rapid application development (RAD) refers to a type of software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements.




Pros
Minimizes feature creep by developing in short intervals resulting in miniature software projects
and releasing the product in mini-increments.
Cons
Short iteration may add too little functionality, leading to significant delays in final iterations.
 Since Agile emphasizes real-time communication (preferably face-to-face), using it is problematic
 for large multi-team distributed system development. Agile methods produce very little written
 documentation and require a significant amount of post-project documentation.
Pros
Lowers the cost of changes through quick spirals of new requirements.
Most design activity occurs incrementally and on the fly.
Cons
Programmers must work in pairs, which is difficult for some people.
 No up-front “detailed design” occurs, which can result in more redesign effort in the long term.
The business champion attached to the project full time can potentially become a
 single point of failure for the project and a major source of stress for a team.
Pros
Captures the voice of the customer by involving them in the design and development of the
application through a series of collaborative workshops called JAD sessions.
Cons
The client may create an unrealistic product vision and request extensive gold-plating,
 leading a team to over- or under-develop functionality.
Pros
Creates minimalist solutions and delivers less functionality earlier
Cons
Product may lose its competitive edge because of insufficient core functionality
and may exhibit poor overall quality.
Rapid application development (RAD)
Pros
Promotes strong collaborative atmosphere and dynamic gathering of requirements.
Business owner actively participates in prototyping, writing test cases and performing unit testing.
Cons
Dependence on strong cohesive teams and individual commitment to the project.
 Decision making relies on the feature functionality team and a communal decision-making
 process with lesser degree of centralized PM and engineering authority.
Pros
Improved productivity in teams previously paralyzed by heavy “process”, ability to prioritize work,
 use of backlog for completing items in a series of short iterations or sprints, daily measured
 progress and communications.
Cons
Reliance on facilitation by a master who may lack the political skills to remove impediments
and deliver the sprint goal. Due to relying on self-organizing teams and rejecting traditional
 centralized "process control", internal power struggles can paralyze a team.


Table 1: Pros and Cons of various RAD types

No comments:

Post a Comment