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
- Eliminate Waste
- Amplify Learning
- Decide Late
- Deliver Fast
- Empower Team
- Build Integrity
- 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
Example
“As a student, I want to download notes so that I can study offline.”
Five Characteristics (INVEST Model)
- Independent – Can be developed separately
- Negotiable – Details can change through discussion
- Valuable – Delivers value to user
- Estimable – Can be estimated easily
- Small – Can be completed in one sprint
- 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
