Agile Methodology
Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. Instead of betting everything on a "Big Bang" launch, an agile team delivers work in small, but consumable, increments.
1. The Agile Manifesto
The Agile philosophy is based on four core values:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
2. Scrum
Scrum is the most popular Agile framework. It breaks work into fixed-length iterations called Sprints (usually 2 weeks).
Key Roles
- Product Owner: Defines what needs to be built (manages the Backlog).
- Scrum Master: Helps the team follow the process and removes obstacles.
- Development Team: The people who actually do the work.
Key Events
- Sprint Planning: Deciding what to do in the upcoming sprint.
- Daily Standup (Scrum): A 15-minute meeting to sync up (What did I do yesterday? What will I do today? Any blockers?).
- Sprint Review: Showing the finished work to stakeholders.
- Sprint Retrospective: Discussing how to improve the process for next time.
3. Kanban
Kanban is a visual workflow management method. Unlike Scrum, it is a continuous flow model without fixed-length sprints.
Core Principles
- Visualize the Work: Use a board with columns (e.g., To Do, In Progress, Done).
- Limit Work In Progress (WIP): Only allow a certain number of tasks in the "In Progress" column at once. This prevents context switching and bottlenecks.
- Focus on Flow: Measure how long it takes for a task to move from start to finish (Cycle Time).
4. Scrum vs. Kanban
| Feature | Scrum | Kanban |
|---|---|---|
| Cadence | Fixed Sprints (e.g., 2 weeks) | Continuous Flow |
| Roles | Defined (PO, Scrum Master) | No prescribed roles |
| Change | No changes allowed during Sprint | Change allowed anytime (if capacity exists) |
| Key Metric | Velocity (Story points per sprint) | Cycle Time / Lead Time |
programming/ci-cd-pipelines programming/software-testing-basics