Kanban Metrics: Learning to See and Improve

Kanban is a tool, it`s a culture and mindsets change tool, it`s a approach to change management. In order to make that happens we need to learn to see waste and see bottlenecks. There are several things you can do to archive that like retrospectives and peer-reviews but you also should be considering do as much metrics as you can. It could sound awkward talk about metrics on a Lean/Agile context because could easily sounding like non-sense but its not.

So what kind of metric should i have, well that will depend of your system, when i say system i do not mean software but your people work system. Metrics does not need be atomic and microsecond precise you should see metrics as a thermometer rather than a raw number,

Starting with the Flow

First thing you might do is starting to get metrics from you kanban flow, it does not matter what kinda of steps, queues and definition of done you might have. So lets say you have a flow like this, this is one of the flow i use a lot:

For each queue, its a step into your flow, you should get metrics per queue, in this sample we have, backlog, design, design review, test and code, test and code review, acceptance and done. You should get simple metrics per queue like:

  • Time in days that the card sits on the queue
  • Time in days the card gets blocked in the queue
  • Time the card is ready to move on but is delayed in days
With this simple metrics you can have the whole time, from backlog to DONE, your done should consider deploy into production them you will have the LED time, from backlog to production. If you create a simple google docs with this information is easy to generate charts and compare why some queues are taking more time than other.

Another great thing todo is add some extra informations on the CARD like:
  • Strategy: One piece flow? Wip MAX? Single Developer?
  • Story Pints: Scrum points if you do it
  • Class of Service: Issue, Arch work, etc,,, 
  • Delay time
  • Block time

Developers should add this day by day, if you do that on the last day of the week or on the last day of the sprint, if you do sprints, them will be complicated and people will not want do this because will be very boarding and they will forget this. 

Its also improve to make CROSS metrics, for instance dont look only for delivery, you also should see if you are increasing your test coverage and number of tests, some you can get that per card or story as well and you can plot on google docs to see whats going on.



Measure Retrospective Actions

You will do retrospectives time to time, it`s important talk about what is not okay and improve team relation ship but you also need improve your product and your methods. So lets say you create actions on each retrospective is important to see whats going well or not, for instance here a simple case i did for a project:
For each sprint you will have actions and you will have a queue for the actions you finish and you will have a backlog of the once you did not finished. So is easily to see how much the team is committed and improving things or not. With this in hand is easy to create a google doc and have metrics on what is going well or not. 

If my process change?

It should change, you will add queues, drop queues depending the moment your team are in sense of maturity or project. That`s what we want change. For metrics history i dont like to delete anything, instead i like to keep columns and add ZERO, so that does not destroy old metrics and allow you do comparison. If you have multiple teams and do communities of practice you guys can compare metrics not in sense to see with team is best but in sense of see why somethings goes faster or better for one team than others and use the metrics to discover patterns and remove bottlenecks you did not know was there.

Cheers,
Diego Pacheco


Popular posts from this blog

Kafka Streams with Java 15

Rust and Java Interoperability

HMAC in Java