Skip to main content

πŸ”„ Agile Development Principles

Software rarely turns out exactly as planned on day one β€” requirements shift, users surprise you, and "done" keeps moving. Agile is the industry's answer: build in small slices, ship often, gather feedback, and adapt. This lesson gives you the values, the vocabulary, and a practical workflow you can run even as a team of one.

🎯 Learning Objectives

By the end of this lesson, you will be able to:

  • Explain the four values and key principles of the Agile Manifesto in plain language
  • Distinguish Scrum, Kanban, and Extreme Programming (XP) and when each fits
  • Write clear user stories and estimate them with story points and Planning Poker
  • Define a Minimum Viable Product (MVP) and explain why it reduces risk
  • Run a lightweight personal Agile workflow as a solo developer or small team

Estimated Time: 30–40 minutes  β€’  Difficulty: Beginner

Hands-on: Turn a project idea into user stories, estimate them, and plan a one-week iteration on a Kanban board.

In This Lesson

Why Agile Exists

Agile is not a single tool or ceremony β€” it's a mindset for building software when you can't know everything up front. Instead of one giant plan executed once, Agile teams work in short, repeating cycles: build a little, show it to real users, learn, and adjust.

πŸ’‘ An analogy: The old "waterfall" way is like building a rocket β€” you design every bolt in advance, assemble it exactly to plan, and hope it flies on the first launch. Agile is like building a skateboard, then a scooter, then a bicycle, then a motorcycle. At every stage you have something that works and can be ridden, and you learn what the rider actually needs before committing to the car.

The two approaches handle change very differently. Waterfall treats a change late in the project as a failure of planning; Agile treats it as normal and even welcome β€” because the people who use the software almost always understand what they want better after they see a working version.

Waterfall versus Agile delivery Waterfall delivers one large release at the very end, while Agile delivers small increments repeatedly, gathering feedback after each. Waterfall Plan everything Build for months One big release 😬 feedback arrives last Agile Iteration 1 Iteration 2 Iteration 3 Iteration 4 ship + learn ship + learn ship + learn ship + learn πŸ™‚ feedback every cycle
Figure 1 β€” Waterfall bets everything on one release; Agile delivers usable increments and folds in feedback continuously.

The Agile Manifesto

In 2001, seventeen software practitioners met and distilled their shared experience into the Agile Manifesto. Its heart is four value statements. Each one says "we value the thing on the left more than the thing on the right" β€” not that the right side is worthless.

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

⚠️ A common misreading

Agile does not mean "no documentation," "no planning," or "no process." It means favoring outcomes that deliver value. Saying you value nutrition over cooking technique doesn't mean technique is useless β€” it means it serves a higher goal.

The 12 principles, grouped

The manifesto is backed by twelve principles. Rather than memorize them as a list, it helps to see the three themes they fall into:

ThemeWhat the principles say
Deliver value early & often Satisfy the customer through early, continuous delivery; ship working software frequently (weeks, not months); working software is the primary measure of progress.
Embrace change & collaboration Welcome changing requirements even late; business people and developers work together daily; build around motivated, trusted individuals; favor direct conversation.
Sustain quality & improve Keep a sustainable pace indefinitely; attend continuously to technical excellence; maximize the work not done (simplicity); let teams self-organize and reflect regularly to tune their behavior.

πŸ“– Key Terms

Iteration / Sprint: a short, fixed-length cycle (often 1–2 weeks) that ends with something potentially shippable.

Backlog: the prioritized list of everything the product might need, most valuable at the top.

Velocity: how much work a team typically completes per iteration β€” used to forecast, not to judge.

Scrum, Kanban & XP

Agile is the philosophy; methodologies are concrete ways to practice it. Three dominate the industry. They're not mutually exclusive β€” many real teams blend them.

Scrum β€” work in sprints

Scrum organizes work into fixed-length sprints (typically 1–4 weeks). Each sprint is a mini-project with a clear goal, framed by a set of recurring events.

flowchart LR A[Product Backlog] --> B[Sprint Planning] B --> C[Sprint Backlog] C --> D[The Sprint
1-4 weeks] E[Daily Standup] --> D D --> F[Sprint Review] F --> G[Retrospective] G --> B
Scrum roleResponsibility
Product OwnerOwns and prioritizes the backlog; represents the customer's interests.
Scrum MasterFacilitates the process and removes obstacles; a coach, not a boss.
Development TeamThe cross-functional group that actually builds the increment.

Real-world example: Spotify famously adapted Scrum into autonomous "squads" grouped into "tribes," letting many small teams ship independently while staying aligned.

Kanban β€” visualize and limit flow

Kanban has no sprints. Instead you visualize work on a board and limit work in progress (WIP) so tasks flow smoothly and bottlenecks become obvious. It's ideal for continuous streams of work like bug-fixing or support.

flowchart LR A[Backlog] --> B[To Do] B --> C[In Progress
WIP limit: 2] C --> D[Review] D --> E[Done]

The magic is the WIP limit. If "In Progress" is capped at 2 and both slots are full, you can't start anything new β€” you're forced to help finish existing work first. That single rule kills the "everything is 90% done, nothing ships" trap.

Extreme Programming (XP) β€” engineering discipline

Where Scrum and Kanban organize work, XP focuses on technical practices that keep code healthy under rapid change:

  • Test-Driven Development (TDD): write a failing test first, then the code to pass it.
  • Pair programming: two developers, one keyboard β€” continuous review as you write.
  • Continuous Integration: merge and test small changes many times a day to catch conflicts early.
  • Refactoring: continuously improve the design without changing behavior.

βœ… How to choose

Use Scrum when you can plan in cadence and want predictable checkpoints. Use Kanban when work arrives unpredictably and you value flow. Adopt XP practices on top of either to keep the codebase clean. Most experienced teams mix all three.

User Stories

A user story captures a requirement from the user's point of view, in one sentence, using a simple template:

As a [type of user], I want [a goal] so that [a benefit].

The "so that" clause is the secret weapon β€” it forces you to state the why, which often reveals a simpler solution than the one originally requested.

  • "As a logged-in user, I want to reset my password so that I can regain access if I forget it."
  • "As a site administrator, I want to see recent login attempts so that I can spot suspicious activity."
  • "As a mobile visitor, I want the layout to adapt to my screen so that I can read comfortably on my phone."

Good stories are often checked against the INVEST checklist β€” a story should be Independent, Negotiable, Valuable, Estimable, Small, and Testable. Each story also carries acceptance criteria: the concrete conditions that make it "done."

Story: As a logged-in user, I want to reset my password
       so that I can regain access if I forget it.

Acceptance criteria:
- [ ] A "Forgot password?" link appears on the login page
- [ ] Submitting a registered email sends a reset link
- [ ] The reset link expires after 1 hour
- [ ] An unknown email shows the same generic message (no account leak)
- [ ] After a successful reset the user is redirected to login

Estimation & MVPs

Story points, not hours

Humans are famously bad at estimating time ("it'll take two hours" β†’ two days). Agile teams estimate relative size instead, using story points β€” usually a Fibonacci-like scale (1, 2, 3, 5, 8, 13, 21). A 5-point story is "about as big as five 1-point stories," accounting for effort, complexity, and uncertainty together.

Planning Poker turns estimation into a quick consensus game: everyone secretly picks a card, all reveal at once, and big disagreements spark a short discussion that surfaces hidden assumptions before you re-vote.

flowchart TD A[Read the story] --> B[Everyone picks a card privately] B --> C[Reveal simultaneously] C --> D{Estimates agree?} D -->|No| E[Discuss the difference] E --> B D -->|Yes| F[Record the estimate]
πŸ’‘ Why relative sizing works. It's like rating hiking trails "easy / moderate / hard" instead of predicting exact minutes. The absolute time depends on the day, but the relative difficulty is stable β€” and over a few iterations your team's velocity turns points into a reliable forecast.

The Minimum Viable Product (MVP)

An MVP is the smallest version of a product that delivers real value and lets you learn from actual users. It is not a broken or ugly product β€” it's a complete thin slice.

MVP done right versus wrong The wrong way builds a car one isolated part at a time; the right way builds a skateboard, then a scooter, then a bike, then a car β€” each usable. Not an MVP: unusable until the end wheel + chassis + body πŸš— car An MVP: usable at every step πŸ›Ή πŸ›΄ 🚲 πŸš—
Figure 2 β€” An MVP delivers something ridable at every stage, so you learn what users need before building the "car."

Real-world example: Dropbox's first "MVP" was a short demo video showing the idea working. It validated demand before the founders built the hard synchronization engine β€” saving enormous effort had nobody cared.

Agile for Solo Devs & Small Teams

You don't need a Scrum Master or a big team to benefit. Here's a stripped-down Agile practice that works for one person on a side project.

Personal Kanban

A three- or four-column board is enough: Backlog β†’ This Week β†’ In Progress (limit 1–2) β†’ Done. The WIP limit on "In Progress" is the whole point β€” it stops you from starting five things and finishing none.

Time-boxed cycles

Pick a rhythm (one or two weeks). At the end of each cycle, run a tiny personal retrospective: What shipped? What blocked me? What one thing will I change next cycle?

Spike before you commit

When you're unsure about a library or approach, do a small throwaway experiment (a "spike") to reduce uncertainty before building the real thing on top of it β€” for example, wiring up two candidate charting libraries with fake data instead of fully integrating one and discovering its limits a week later.

Common Pitfalls

⚠️ Watch out for these

  • Scope creep: new requirements sneak in without adjusting time. Fix: anything new must be prioritized against the existing backlog β€” adding one thing means bumping another.
  • Over-engineering: building for imagined future needs. Fix: follow YAGNI ("You Aren't Gonna Need It") β€” build the simplest thing that works now.
  • "Agile theater": holding all the ceremonies while ignoring the values. Fix: a standup that's just a status report to a manager isn't Agile β€” it should help the team self-coordinate.
  • Sacrificing quality for speed: skipping tests to "go faster." Fix: bake testing and review into your definition of "done."

Hands-on Exercise

πŸ‹οΈ Plan a One-Week Iteration

Objective: Turn a fuzzy idea into a prioritized, estimated, planned iteration.

Instructions:

  1. Pick a small project you'd like to build (a to-do app, a personal portfolio, a weather widget).
  2. Write 5–8 user stories using the "As a… I want… so that…" template.
  3. Give each story a T-shirt size (S / M / L) or a story-point value from {1, 2, 3, 5, 8}.
  4. Sort them by value. Draw a MVP line: which 2–3 stories are the smallest set that delivers something usable?
  5. Create a Kanban board (Trello, GitHub Projects, or paper) with Backlog / This Week / In Progress / Done and place your MVP stories into "This Week."
πŸ’‘ Hint

If a story feels like an "L" or 8 points, it's probably really several stories. Split it β€” "user can log in" might become "sign-up form," "password hashing," and "session handling." Smaller stories are easier to estimate and more satisfying to finish.

βœ… Example answer (to-do app)

Stories & sizes: Add a task (S/2) Β· Mark a task done (S/1) Β· Delete a task (S/1) Β· Tasks persist after refresh (M/5) Β· Filter by done/active (S/3) Β· Due dates (M/5) Β· Drag-to-reorder (L/8).

MVP line: Add + mark done + persist. That trio is genuinely usable β€” you can capture and complete tasks and they survive a reload. Everything below the line (filters, due dates, reordering) is a later iteration.

🎯 Quick Quiz

Question 1: The Agile Manifesto values "working software over comprehensive documentation." What does this actually mean?

Question 2: Which methodology is defined by a WIP limit and continuous flow rather than fixed-length sprints?

Question 3: Why do Agile teams estimate in story points instead of hours?

Summary & Quiz

πŸŽ‰ Key Takeaways

  • Agile is a mindset: build in small slices, ship often, learn, and adapt to change.
  • The Manifesto's four values favor people, working software, collaboration, and adaptability β€” without discarding process or docs.
  • Scrum (sprints), Kanban (flow + WIP limits), and XP (engineering discipline) are complementary ways to practice Agile.
  • User stories capture the "who, what, why"; story points estimate relative size; an MVP is the smallest usable slice.
  • Even solo, a WIP-limited Kanban board plus short cycles gives you most of Agile's benefit.

πŸ“š Further Reading

πŸš€ What's Next?

Now that you can plan work the Agile way, the next lesson looks at the tools that make it flow day to day β€” task boards, time-management techniques, and productivity systems built for developers.

πŸŽ‰ Nice work!

You've got the Agile vocabulary and a workflow you can run today. Let's wire it into real tools next.