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