qq_tracker_code_advanced_default

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.

Source material from Wikipedia.