Rapid Application Development (RAD)
· RAD introduced by James Martin in 1991.
· Type of software development methodology 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.
· Structured techniques and prototyping are especially used to define users' requirements and to design the final system.
· The development process starts with the development of preliminary data models and business process models using structured techniques.
· RAD approaches may entail compromises in functionality and performance in exchange for enabling faster development and facilitating application maintenance.
· All types of RAD have the potential for providing a good framework for faster product development with improved software quality, but successful implementation and benefits often hinge on project type, schedule, software release cycle and corporate culture.
This table contains a high-level summary of some of the major types of RAD and their relative strengths and weaknesses.
Agile software development (Agile) | ||
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. | |
Extreme Programming (XP) | ||
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. | |
Joint application design (JAD) | ||
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. | |
Lean software development (LD) | ||
Pros | Creates minimalist solutions (i.e., needs determine technology) and delivers less functionality earlier; per the policy that 80% today is better than 100% tomorrow. | |
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. | |
Scrum | ||
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
Reference:
http://en.wikipedia.org/wiki/Rapid_application_development
RAD GAME TOOLS
· RAD Game Tools is privately-held company owned by Jeff Roberts and Mitch Soule based in Kirkland, Washington that develops video and computer game software technologies which are licensed primarily by video game companies.
· Unusual among middleware companies as they generally hire one specific person to write, document and support each single product.
References:
http://en.wikipedia.org/wiki/RAD_Game_Tools
0 comments:
Post a Comment