User:NcsuOO517
Agile Software Development Methodology
Many software development teams are adopting the relatively new Agile process of development.
Purpose
"Agile is set up to strongly support garnering feedback and guiding the customer toward better understanding what they want and need"
"Both Scrum and XP suit similar kinds of projects: a small, co-located team; an on-site or available customer representative; an emphasis on coding and testing early; and frequent feedback into updated requirements"
Common Practices
- Iterative, incremental development cycle
- Extreme Programming (XP)
- SCRUM
- Retrospectives
- Test-driven development
- Requirements analysis
- Planning Poker
- User stories
- Team velocities
- Release planning
Disadvantages
- Lack of customer involvement made gathering requirements extremely difficult, leading to loss of productivity and rework. - Contract negotiation - customers want "fixed deadline, fixed price, and fixed scope" - meaning requirements are fixed. Agile embraces change, which you can't do w/ a fixed price project. - Design-intensive projects - Superficial documentation - Adaptation to changing requirements not always needed - Sometimes difficult to break down complication development into small user stories - Distributed teams had difficulty carrying out some team collaboration tasks
Other Software Development Methodologies
Waterfall
Waterfall vs. Agile
Spiral
Spiral vs. Agile
Iterative
Iterative vs. Agile
Rapid Application Development (RAD)
RAD vs. Agile
Rational Unified Process (RUP)
RUP vs. Agile
Conclusion
References
[1] Hoda, Rashina et al. "Agility in Context." Proceedings of the ACM international conference on Object oriented programming systems languages and applications (2010): 74-88. ACM DL.