Thanks to Mike Burrows and his work on the values of Kanban (see this excellent Blog Post) I am more and more aware how important understanding is and how deep it is rooted in Kanban.
Let me give you some examples:
Understanding our work
Why is it so important that we visualize our work? And why do we do demand analysis in Kanban? Because we want to understand our work! How much demand do we have? What are the sources of our demand? Do we have seasonal variance in demand? What are the risk profiles that are attached to different types of work (that’s why we might want to introduce different classes of service)? What skills are required for different types of demand? etc. If we don’t understand our work, how can we possibly balance demand against capability to improve flow? We can’t. And we will sooner or later end up with cargo cult solutions. Of course it’s a long way to understand our work completely, and maybe we will never manage to. But the more we understand it, the better we can manage our system. And even a small bit of understanding is probably better than no understanding at all.
My observation is that in most contexts we don’t understand our problems – and we don’t really try to do so. My main takeaway from many different contexts in many different organizations: The problem is almost never what we thought it is at first glance! And for me, that’s one major reason why models are so important in Kanban (and not only in Kanban). If we use them wisely, they can guide us in understanding our problems and finding good countermeasures. Reading John Shook’s great book on A3 Thinking really was enlightening for me in this respect. When we discover a problem and start dealing with it, there is most often a mix up between symptoms of the problem („What can we observe that we don’t like?“), deeper roots of this problem („What are the reasons for this symptoms?“) and possible countermeasures („What do we think is a good idea to do in order to make the symptoms go away, as well as the roots of the problem?“) So it is a good idea to think these things through, have structured discussions, talk to people who are involved and might know more than we about the problem, do observations and experiments etc.
And then there is another issue with the way we usually encounter problems: Jumping to conclusions. I thik that agile retrospctives are very powerful for avoiding this behaviour. Let’s look into the „classical“ schema for retrospectives as suggested by Diana Larsson and Ester Derby (look into the book Agile Retrospctives):
- Set the Stage
- Gather data
- Generate insights
- Determine actions
- Close the Retrospective
There s a reason why the third step exists: When we have gathered our data and identified a problem, we should not directly determine actions, but generate insights first. And this generation of insights means to understand our problem better (no matter what practices we use to do this). This step ist often the hardest one in a retrospective, and teams as well as facilitators tend to skip it. But it is very valuable! (example Henning)
Of course we will never understand a person completely. What I mean here is the following: If we observe a behaviour that seems to be stupid to us, what do we do? Do we ignore this? Do we tell the person "Stop it!" ? Or do we assume that there is a good reason behind his behaviour and try to understand this reason? Everyone who ever played GetKanban knows the devastating effects that are caused by Carlos the test manager and his policies. Any team playing GetKanban hates Carlos, yells at him and desperately waits for Alison to fire him. But if we step back for a while and ask ourselved why he set up the policies, we can find very good reasons for this. If we did this, it could be easier to deal with him. Here is another example, this time from real life: I trained a team, including a project manager in Kanban. Of course we talked about the advantages of WIP limits and having a pull system in place. They all agreed that they wanted to introduce this. But after a couple of weeks it became clear that the project manager kept pushing work into the system without regard to the WIP limits. My first reaction was „What a moron!“ Luckily, I did not day that loudly. After having talked to him, the picture looked differently. It turned out that he was totally aware of the problems his behaviour was causing. But he had a reason for this: „Look, I am responsible for the on-time delivery and quality of our small projects. I totally get this pull-stuff. But I know that our team members have very different skills and experience. So I don’t have faith in a system where an inexperienced person pulls an item he cannot master. This puts the commitments towards our clients at risk. So I bypass the pull-system by assigning tickets to specific persons and putting them on their desks.“ Now we had a better perspective on the problem. It was not the „stupid project manager“ but maybe a problem of too little training for new people. Or maybe it was only a problem of showing the project manager that the skill level was much higher than he thought. In both cases the way we had to approach the problem was different from getting rid of the project manager.
So the bottom line here is: Let’s not jump to conclusions when it comes to strange behaviour either! When we observe bad behaviour, let’s ask questions like: „Assuming this person is a good guy, what might the reasons for his behaviour be?“, „What does this person see that I cannot see?“, „What are his fears?“ etc. This helps us improving by showing respect for people.