Kanban, Scrum and XP ?! We look at some of the different styles of Agile
Agile Delivery is a collection of methods for software development who share the same underlying principles and philosophy. Each method has its own rules and procedures. The most popular manifestations of Agile are described below. However if you are completely new to Agile we have a brief guide here.
Extreme Programming (XP) has some strict principles that aim to drive frequent releases of working software. Some of the practices defined in XP are also used in other manifestations of Agile. XP strives to achieve a high level of automation and is closely linked to Test Driven Development (TDD). Another prescribed practice is pair programming, where two developers collaborate actively in developing code; this is also frequently adopted in other implementations of Agile.
Just like XP, SCRUM is based on splitting the work into a series of fixed-length iterations, in which each iteration encompasses the full life-cycle of specification, development, test, build and release. The requirements in the SCRUM model are described as user stories in a product backlog. SCRUM prescribes a set of roles and ceremonies, but does not prescribe methods such as TDD and pair programming. However, in many instances, TDD and/or pair programming is also used with SCRUM.
Kanban also uses a product backlog with requirements described as user stories. Instead of working with fixed iterations, the method prescribes a controlled flow of the work through the development process. For each step in the development cycle, a limit of the Work In Progress (WIP) ensures that the overall flow is kept at the optimum level. Kanban has gained a lot of popularity recently. Below is an example of a Kanban board showing the limit of WIP of each section: