Agile Model

Agile is a flexible software development model where work is done in small parts (iterations or sprints) instead of one big plan. Each sprint delivers a working piece of software, and requirements can change anytime.

Think of it as building software step by step, with feedback at every step.

Agile Process Flow

  1. Requirements: Collect only the high-level needs.

  2. Planning: Plan for the current sprint (2–4 weeks).

  3. Design + Coding + Testing: Build a small feature.

  4. Demo/Feedback: Show it to customer, get feedback.

  5. Repeat: Improve or add more features in next sprint.

ATM Machine Example:

  • Sprint 1: Build & deliver Card Insertion + PIN validation.

  • Sprint 2: Add Withdrawal feature.

  • Sprint 3: Add Balance check.

  • Sprint 4: Add Mini statement.

After each sprint, customer gives feedback, so changes can be made early.

Methodologies

1. Kanban

  • What it is: Visual workflow management using a Kanban board (columns like To Do → In Progress → Done).

  • Goal: Limit work in progress (WIP) and improve flow.

  • Best for: Teams that want continuous delivery and flexibility without strict time-boxes.

2. Scrum

  • What it is: An Agile framework with fixed-length iterations called Sprints (usually 2–4 weeks).

  • Roles:

    • Product Owner → defines what to build.

    • Scrum Master → ensures the team follows Scrum practices.

    • Development Team → builds the product.

  • Ceremonies: Sprint Planning, Daily Standup, Sprint Review, Sprint Retrospective.

  • Best for: Teams that want structure, iterative progress, and frequent feedback.

3. XP (Extreme Programming)

  • What it is: Agile approach focusing heavily on engineering practices for high-quality code.

  • Practices:

    • Test-Driven Development (TDD)

    • Pair Programming

    • Continuous Integration

    • Frequent small releases

  • Best for: Teams needing high code quality and frequent changes.

4. SAFe (Scaled Agile Framework)

  • What it is: Agile at scale for large enterprises with multiple teams working together.

  • Layers: Team → Program → Portfolio → Large Solution

  • Goal: Align multiple Agile teams with company strategy.

  • Best for: Big organizations with 50–1000+ people working on large projects.