Originated in the Lean practices of the 50’s, Agile is known and used today under different names and flavors. Scrum, Extreme Programming, Kanban, Spotify Model, SAFe, etc. But what’s the difference? Is one more agile than other?
The two main categories are: iteration-based and flow-based.
Iteration-based, best exemplified by Scrum is an iterative approach (an iteration is called a sprint) where the team tries to deliver as much as possible into a time-boxed period of a few weeks. At the end of the sprint, there is a demo to obtain some customer feedback and a retrospective to seek improvements.
The flow approach is best illustrated by Kanban. The functionalities are delivered one by one (or in very small batches) in a continuous flow. No time-boxing or deadlines, everything flows into the hands of the consumer the moment they’re done.
Let’s look at some factors which should impact your decision for one or the other.
Delivery. Do you want (or can?) to deliver in continuous flow (every few hours or days) or can you settle for a more meaningful delivery every few weeks?
Changes. What’s the frequency and the impact of change requests? Can you prioritize and hold it for a few weeks or you have to deal with more recurrent or urgent changes?
Predictability. How much predictability do you need? The more you need the bigger the inventory or length of sprint duration. The longer the sprint, the more predictability (and the less adaptability). Don’t need much predictability and value adaptability? Kanban will give you that flexibility but at the expense of predictability.
Feedback. Need more frequent feedback or validation? Keep the sprint short. Need even more validations like a few times a day? Kanban will give you that.
Product or Process. Are you looking to discover the what (product) or the how (process)? Scrum will offer the change to inspect both: the product (sprint review) and the process (sprint retrospective). Kanban on the other side is mostly focused on improving the flow which is the process.
Framework. This shouldn’t really even be a criterion but it often is. Do you need a framework you can just use off the shelf? Scrum Guide is already there for you. For Kanban you should create your own framework based on Kanban and Lean principles and philosophy.