Agile Principles and Lean Software Development Practices

12 Agile Principles

1. Planning Game

Customer + team decide scope → ensures relevant features

2. Small Releases

Frequent delivery → early feedback → fewer defects

3. System Metaphor

Simple shared vision → better understanding

4. Simple Design

Avoid overengineering → fewer bugs

5. Testing (TDD)

Write tests first → high reliability

6. Refactoring

Improve code continuously → maintainability

7. Pair Programming

Two developers → fewer errors, better quality

8. Collective Ownership

Anyone can improve code → faster fixes

9. Continuous Integration

Frequent builds → early bug detection

10. Sustainable Pace

Avoid burnout → consistent quality

11. On-site Customer

Instant clarification → correct requirements

12. Coding Standards

Uniform code → easier maintenance

Overall impact:
Fewer defects + better maintainability + faster delivery = higher software quality

Agile Methodologies

  • Scrum
  • Kanban
  • Extreme Programming (XP)
  • Lean Software Development
  • Crystal
  • Feature Driven Development (FDD)

Most used in real life: Scrum + Kanban combo

Lean Principles in Agile (with Waste & Kaizen)

Lean Principles

  1. Eliminate Waste
  2. Amplify Learning
  3. Decide Late
  4. Deliver Fast
  5. Empower Team
  6. Build Integrity
  7. Optimize Whole

Waste in Software (Muda)

  • Extra features (overproduction)
  • Waiting time
  • Defects
  • Unnecessary complexity
  • Task switching

Goal: Do less useless work

Kaizen (Continuous Improvement)

  • Regular retrospectives
  • Process refinement
  • Small, consistent improvements

Not a big change. Tiny improvements → massive results.

Kanban

  • Visual workflow management system
  • Uses Kanban board (To Do → In Progress → Done)
  • Limits Work-In-Progress (WIP)

Roles in Agile

Product Owner

  • Manages backlog
  • Defines priorities

Scrum Master

  • Facilitates process
  • Removes blockers

Development Team

  • Builds product
  • Self-organizing

User Stories in Agile

Concept

User Stories are short, simple descriptions of a feature from the user’s perspective.
They focus on who, what, and why.

Format:
“As a [user], I want

  • so that [benefit].”

    Example

    “As a student, I want to download notes so that I can study offline.”

    Five Characteristics (INVEST Model)

    1. Independent – Can be developed separately
    2. Negotiable – Details can change through discussion
    3. Valuable – Delivers value to user
    4. Estimable – Can be estimated easily
    5. Small – Can be completed in one sprint
    6. Testable – Must be verifiable

    In short: small, valuable, testable chunks of work

    Backlog Management in Agile

    Concept

    Backlog Management is the process of creating, prioritizing, updating, and maintaining work items.

    1. Product Backlog

    • Master list of all requirements
    • Managed by Product Owner
    • Prioritized based on business value

    2. Sprint Backlog

    • Subset of Product Backlog
    • Selected for current sprint
    • Owned by development team

    3. Backlog Refinement

    • Continuous process of:
      • Breaking down stories
      • Estimating effort
      • Re-prioritizing

    Keeps backlog “clean and ready”

    Roles of the Scrum Master

    • Facilitates Scrum events
    • Removes team blockers
    • Ensures Scrum practices are followed
    • Protects team from external interference
    • Acts as coach/servant leader

    Not a boss—more like a team bodyguard + coach