XP and Kanban

The other two agile families, and how they work with Scrum

COMP433 Software Engineering
← Course Page ← Scrum simulator
Scrum is the most widely known agile framework, but it is not the whole picture. Extreme Programming (XP) is a set of engineering practices focused on how code actually gets written, and Kanban is a method for managing flow without fixed sprints. Most real-world teams borrow from more than one of these. Scrum gives you the cadence, XP gives you the engineering discipline, Kanban gives you the flow thinking. They are not rivals.

Extreme programming (XP)

Kent Beck, 1999. Born from a real project at Chrysler. Built around the idea that if a practice is useful, you should do it all the time, to the extreme.

Five values

Communication

Talk early, talk often. Documentation is not a substitute for conversation.

Simplicity

Do the simplest thing that could work. Build only what is needed now.

Feedback

From tests, from users, from each other. Shorten every feedback loop.

Courage

Tell the truth about progress. Change course when needed. Refactor.

Respect

Everyone on the team matters. No finger-pointing, no silent heroes.

Key engineering practices

Pair programming

Two developers, one screen. One drives, one thinks ahead. They swap often.

Test-driven development

Write the failing test first. Make it pass. Refactor. Repeat in short cycles.

Continuous integration

Merge to the shared branch many times a day. Every commit triggers the build and tests.

Refactoring

Improve the structure of the code without changing its behaviour. Tests protect you.

Simple design

You aren't gonna need it. Build for today, not for a future that may never come.

Small releases

Ship working software to real users often. Small steps, tight feedback.

Collective ownership

Anyone can improve any piece of code. No code is owned by one person.

Sustainable pace

No heroics, no death marches. Tired developers make bad code.

When XP shines
Small, co-located or tightly-connected teams. Projects where code quality matters for the long term. Domains where requirements change often and a safety net of tests is essential.

Kanban

David Anderson adapted Kanban for software in the mid-2000s, drawing on the Toyota Production System. Unlike Scrum, Kanban has no fixed iterations, no prescribed roles, and no sprint commitment. It focuses on flow.

A kanban board in action

Backlog

Login screen
Password reset
Dark mode
Export CSV

In progress

WIP 3 / 3
Search filter
Profile page
Email alerts

Review

WIP 1 / 2
Payment integration

Done

Sign up flow
Home page
Onboarding

Each column can carry a WIP (work in progress) limit. When In progress is full, you cannot pull another item, you have to help clear the bottleneck first. This single rule forces the team to finish before starting, which is usually the hardest habit to learn.

Six core practices

1
Visualise the workflow
2
Limit work in progress
3
Manage flow
4
Make policies explicit
5
Implement feedback loops
6
Improve collaboratively
When Kanban shines
Support and maintenance teams. Operations work. Teams dealing with unpredictable incoming requests. Situations where sprint commitments would be broken the next day. Also works well as a first agile step for teams that still have handover-heavy processes.

Scrum, XP, Kanban at a glance

A quick side-by-side. None of these is strictly better. They answer different questions.

Scrum XP Kanban
Rhythm Fixed sprints, 2 to 4 weeks Short iterations, 1 to 2 weeks Continuous flow, no iterations
Roles Product Owner, Scrum Master, Developers Customer, Coach, Programmers, Tester No prescribed roles
Commitment Sprint Goal for the iteration Iteration plan, may adjust None, pull when capacity frees up
Primary focus Framework, cadence, stakeholder feedback Engineering practices and code quality Flow, bottlenecks, steady throughput
Change mid-stream Protected during a sprint Flexible within an iteration Can happen any time
Natural fit New product development Teams needing strong engineering discipline Support, ops, maintenance, unpredictable demand

Scrum plus XP: the common hybrid

Scrum is deliberately silent on how the team builds the increment. XP fills that gap. Most professional agile teams today run Scrum as the outer framework and XP practices inside each sprint. The combination is so common that many people call it "Scrum" without realising the engineering half is XP.

Scrum gives you

The framework

Three roles with clear accountabilities
Sprint cadence and protected focus
Four ceremonies: planning, daily, review, retrospective
Three artefacts: Product Backlog, Sprint Backlog, Increment
Regular stakeholder feedback loop
XP gives you

The engineering

How code is written: TDD and refactoring
How code is shared: pair programming, collective ownership
How code is merged: continuous integration
How code is released: small, frequent releases
How design stays clean: simple design, refactoring

A week in a Scrum plus XP team

Monday
Sprint start
ScrumSprint planning: agree the Sprint Goal, pull items into the Sprint Backlog.
XPDevelopers pair up, write the first failing test, and begin the TDD loop.
Tuesday to Thursday
Delivery
ScrumDaily Scrum each morning, 15 minutes, focused on progress toward the Sprint Goal.
XPPairing throughout the day. Every commit triggers the CI build. Refactor as soon as tests are green.
Friday
Mid-sprint checkpoint
ScrumProduct Owner reviews emerging increment informally.
XPSmall internal release to the staging environment. First chance to see the pieces integrated.
Week 2
Finish and reflect
ScrumSprint Review with stakeholders on day 9 or 10. Retrospective straight after.
XPAll code merged, all tests green. The increment is truly Done, not "done-ish".

What this means for your group project

You do not have to pick one. Your team can run Scrum for the framework (roles, sprints, ceremonies) and adopt the XP practices that matter most for your context. For a student project, the highest-value XP practices are usually: pair programming during tricky sections, continuous integration through a simple GitHub Actions pipeline, and small releases at the end of each phase. Kanban thinking can help too: limit how many stories your team works on at once. Finish what you start before picking up something new.