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. |
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