Phase 1 of 5  ·  Foundations
Week 03 / 20   ·   Ch 3

Agile
Software Development

"Agile is NOT just standup meetings. Here's what it actually means."

📚 Ch 3 — Agile Development📋 Agile Manifesto🏃 Scrum + XP + Kanban⏱ ~20 min read

🔍Concept Deep Dives

Click each concept to expand — real examples, diagrams, pros & cons.

📜

Agile Manifesto

4 values + 12 principles published in 2001 that redefined how software is built.

When to Use

Understanding the 'why' behind all agile methods.

Real-World Example

Published by 17 practitioners in 2001 as a reaction to heavyweight, document-heavy processes like RUP.

✓ Advantages

  • Shifts focus to working software over documentation
  • Enables fast response to change

⚠ Watch Out

  • Misunderstood as 'no process' — it's actually disciplined
  • Can be used to justify cutting corners
Individuals & Interactions > Processes & Tools Working Software > Comprehensive Docs Customer Collaboration > Contract Negotiation Responding to Change > Following a Plan (left valued MORE, right still has value)
🏃

Scrum

Time-boxed sprints (2-4 weeks), daily standups, product backlog, sprint review. Most widely used agile framework.

When to Use

Team of 5-9 people. Complex product with evolving requirements. Need visibility.

Real-World Example

Spotify, Amazon, Salesforce — most tech companies run some form of Scrum or modified Scrum.

✓ Advantages

  • Regular delivery rhythm
  • High team visibility
  • Customer feedback every sprint

⚠ Watch Out

  • Doesn't scale easily to large teams without modifications
  • Needs a committed, experienced Scrum Master
Product Backlog ↓ (Sprint Planning) Sprint Backlog ↓ (2-4 week sprint) Daily Scrum (15 min) ↓ Working Software ↓ (Review + Retro) Repeat
🧪

Extreme Programming (XP)

Technical practices: TDD, pair programming, continuous integration, refactoring, small releases.

When to Use

Teams prioritizing code quality and technical excellence over process.

Real-World Example

Many XP practices are now standard: TDD in all serious teams, CI/CD everywhere, refactoring in all IDEs.

✓ Advantages

  • High code quality
  • Catches bugs early (TDD)
  • Shared code ownership

⚠ Watch Out

  • Pair programming = expensive (2 devs on 1 task)
  • Needs a customer on-site — hard to arrange
TDD: Red → Green → Refactor Pair Programming: Driver + Navigator CI: Commit → Build → Test → Deploy Small Releases: ship every 1-2 weeks
📊

Kanban

Visualize work on a board. Limit work-in-progress. Flow over iterations.

When to Use

Ops/support teams, continuous delivery, maintenance work without fixed sprints.

Real-World Example

GitHub Projects, Trello, Linear — all Kanban-style boards. Good for bug queues and support workflows.

✓ Advantages

  • No time-boxed sprints — more flexible
  • WIP limits prevent overload
  • Great for ops and maintenance

⚠ Watch Out

  • Less structure — can drift without discipline
  • Harder to plan releases
To Do → In Progress → Review → Done (WIP limit: 3) (WIP: 2)

📋Quick Reference

θ Ch 3 Cheat Sheet — Agile Software Development
Agile Manifesto (4 values)
Individuals > Processes. Working software > Docs. Customer collab > Contracts. Change > Plan.
Scrum Sprint
2-4 week time box. Daily standup (15 min). Sprint backlog from product backlog. Review + Retro at end.
Scrum Roles
Product Owner (what to build), Scrum Master (remove blockers), Dev Team (build it).
XP Practices
TDD, pair programming, CI, refactoring, small releases, on-site customer, collective ownership.
Kanban
Visual board + WIP limits + flow optimization. No sprints. Pull-based.
Scaling Agile
SAFe, LeSS, Scrum@Scale for large teams. Agile works best at team level (5-9 people).
Agile vs Plan-Driven
Agile: working software over docs, embrace change. Plan-driven: upfront design, predictable delivery.
θ
Sommerville's Key Points — Ch 3
Author's own summary from the end of the chapter.
  • 1Agile methods are iterative development methods designed to produce useful software quickly.
  • 2Agile Manifesto (2001): 4 values + 12 principles — people over process, working software over docs.
  • 3Scrum: time-boxed sprints, product backlog, daily standup. Most widely used agile framework.
  • 4XP: technical practices — TDD, pair programming, CI, refactoring, small releases.
  • 5Kanban: visualize work, limit WIP, optimize flow. Good for maintenance and operations.
  • 6Agile scaling: large systems need elements of plan-driven approaches (SAFe, LeSS).
  • 7Agile is not suitable for all projects — safety-critical systems need plan-driven approaches.

🧠Quiz — Test Yourself

Think through your answer first, then reveal.

Q1
Recall
What are the 4 values of the Agile Manifesto? What does each one mean in practice?
Individuals & Interactions > Processes & Tools (talk to each other, not through tickets). Working Software > Documentation (ship it, don't just write about it). Customer Collaboration > Contract Negotiation (work with the customer, not against them). Responding to Change > Following a Plan (adapt the plan when reality changes).
Q2
Apply
What is the difference between Scrum and Kanban? When would you use each?
Scrum: time-boxed sprints (2-4 weeks), fixed team, sprint backlog, ceremonies. Good for feature development. Kanban: continuous flow, WIP limits, no sprints. Good for operations, support, maintenance, or any work that arrives unpredictably.
Q3
Analyze
Sommerville says agile is not always appropriate. When should you NOT use agile?
Safety-critical systems (avionics, medical devices) where full upfront specification and verification is required by regulation. Also: large distributed teams with contractual requirements, embedded systems with fixed hardware interfaces, and systems where the customer cannot participate regularly.
Up Next → Week 04
Requirements Engineering
Build the wrong thing fast = waste. Here's how engineers avoid it.
Continue → Week 04