Kanban or Scrum?
One of the project teams that I recently started working with asked me when they should be using Kanban vs. Scrum and that prompted me to write this blog.
I have used a few different Agile methodologies at different companies but Scrum was by far the most widely adopted methodology by the teams I worked with. Each of the teams implemented it a bit differently depending on the company culture and maturity level of the teams.
When to use Kanban?
- Goal is to limit “Work in Progress” items.
- It is not time boxed and so works well for projects that are working on proof of concepts, trying out new technologies. You could argue that we can time box these types of projects as well. Yes we can, however, that means Engineers have to sacrifice craftsmanship in order to meet the Sprint timelines.
- It works great for teams working on maintenance type of work or defects. These teams would have to change priorities as soon a high severity defect is found.
- Team members move onto new work items only when they complete their existing work items or if there is a higher priority defect that needs be fixed immediately.
- Efficiency is gained by limiting the work in progress items. There is not too much context switching which helps the Engineers focus only on the few items they have in progress.
- Use when there is no Product Owner.
When to use Scrum?
- When the project scope is known and there are timelines that need to be met.
- Deliver incremental end to end functionality every sprint – which means we have to integrate with all the impacted systems within the given sprint. This enables us to identify integration defects much earlier (Shift left).
- When there is a Product Owner and Customer. Team can engage with them in gathering the requirements.
- Sprint scope is fixed and so if any changes are needed, need to wait until the current sprint is over.
- Demo the functionality every sprint so that the Product Owner and the Customer can review what was delivered and identify gaps early on.
Regardless of the methodology used, it is important to continually optimize the processes for team efficiency.
Please share your examples of when you used one vs. the other.