First of all, let's have a recap of Agile software development. In very broad terms we have:
- A Product Owner (decides what to build)
- A Development Team builds it
- Users or Customers experience / benefit from it
With Agile, value is delivered by the Development Team in small increments. The important benefit from doing this is:
- Users / customers feed back to the Product Owner
- The Product Owner takes this feedback and inputs from other Stakeholders to then reorder the list (the Product Backlog) of what to build, ensuring that the features offering most value are at a higher priority.
The Scrum and Kanban angles
The relationship between the Product Backlog and the Customer is what distinguishes Scrum from Kanban.
- Scrum - The Scrum Master works the Product Owner and Development Team to follow Scrum principles and maintain good habits.
- Kanban - An Agile Coach will often be recruited and will perform an equivalent role to the Scrum Master.
Both 'Pull' work from the Product Backlog to the Customer.
- Scrum - Works in sprints of 2-4 weeks in duration (consisting of a series of Scrum ceremonies). Work is 'pulled' from the Product Backlog to create a Sprint Backlog and the Development Team commits to completing the associated tasks to deliver the feature, and only this feature.
- The Scrum Team will use a board, named the Scrum Board / Agile Board, or confusingly, a Kanban Board. This board will track progress, typically under columns of To Do, In Progress, and Done.
- Progress is discussed in the Daily Scrum, a 15 minute meeting to discuss progress and identify any blockers.
- At the end of the Sprint, a Sprint Review will demonstrate to the stakeholders what has been done / delivered.
- Following this is the Sprint Retrospective, which examines what went well, what went badly, and what can be improved in the next sprint.
- Kanban - Kanban is a continuous process; there is no sprint and therefore no Sprint Backlog. Instead, in Kanban there is a Work In Progress Limit related to the Team's capacity. Each developer might have a capacity of 1-2 items. The lower the better as spreading a person over many tasks reduces efficiency. More tasks in progress does not equate to more tasks Done.
- As with the Scum Team, the Kanban Team will use a Kanban Board, the simplest having the columns of To Do, In Progress, Done.
- Work is 'pulled', when an item becomes Done, work is pulled from To Do into In Progress. A new item is then pulled from the Product Backlog into the To Do column.
- Similar to the Daily Scrum, Kanban will have a Daily Stand-up, a terms that is often used by Scrum Teams. Stakeholders will have a Demo, and the team will have a Retrospective. As for the frequency of the Demo and Retrospective, it is for the Team to decide.
Both use a board as it is highly visible, allowing anyone to track the progress of work through its workflow, show who is responsible for it, and allow for the fast identification of blockers.
It is not a Prescription
The description above is the briefest of brief descriptions of Scrum and Kanban. High performing teams are self-organising and decide the best way of working themselves. Therefore they will bend the process yet adhere to the principles.