Agile Methodology - Development Approaches
Agile Methodology
Definition
A methodology that finds a compromise between development without planning and development with too much planning.
Agile = Quick, creating good things quickly and without waste = Maximum efficiency
Difference from Waterfall and Spiral Models
- Less document-oriented
- Code-oriented
Unlike past methodologies driven by planning, Agile is an adaptive style that continuously creates prototypes at regular intervals to reflect changing requirements.
This adaptability is achieved through object-oriented principles.
Types of Agile (Can be combined)
1. Extreme Programming (XP)
Core Practice: TDD (Test-Driven Development)
Implementation Methods
- Set plans and create prototypes every 2 weeks
- Periodically confirm with clients or users if going in the right direction
- Simple coding: Follows the KISS principle
- Test before coding
- Pair Programming: One person codes, one does QA, or code together then test
2. Scrum
- Centered on Sprint: Provide working product every 30 days
3. Crystal Family
- Provides various methodologies based on project size and impact
- Crystal Clear: Methodology for the smallest teams
4. Feature-Driven Development (FDD)
- Closely related to UML-based design techniques
- Iterative development every 2 weeks per feature
5. Adaptive Software Development
- Development methodology where users or customers participate in design
- Defines software development as chaos itself
- Proposes software development methods that can adapt to chaos
6. Extreme Modeling
- Modeling-centered methodology using UML
- Continuously create models that can be executed and verified
- Ultimately, automatically generate products from models
Comments