Showing posts with label flow. Show all posts
Showing posts with label flow. Show all posts

Sunday, May 24, 2020

Error: Customer unavailable! How do you manage flow now?

It’s Wednesday morning, you try to get an appointment with the stakeholder who is the most important customer for a work item that your team started to work on on Monday. And now you find out that they’re out of the office for the coming two weeks.

Now what?

You and your team invested 2 days already (for a 7 people team that would represent 14 person days of effort), and you all would really like to work on the topic.

After some inquiry about the requested feature it becomes clear that no one else knows what the requirements on this work item really are and now you’re faced with a tough decision: mark this card as blocked and become ‘idle’ as a team, or abandon the card (discard it) and let the customer bring up the topic later again?

There are drawbacks to both approaches –after all the situation is bad to begin with– but both follow the mantra to “accept reality” and are way better than following the wiscy approach where you start defining the result (e.g. by programming) without even knowing the requirements.

Let’s look at the implications of each approach.

For the following assume that we manage our work using ideas from the Kanban method and thus have the flow of our work visualised on a board including WIP-targets.

Option 1: put a blocker on the card if the customer is unavailable

Putting a blocker on a card is the normal way to make it visible to everyone that there seems to be no way to progress on the work represented by that card in a sensible way. At least if you apply the Kanban method. If your WIP-Target (mostly known as WIP-Limit) was already honored this creates a tremendous amount of slack for the team that worked on that card. In most cases more than you actually want and more than is wise from an economic point of view. But it reflects reality. If the relevant stakeholder is not available for an extended period of time this could be really expensive.

The important point here is that blocking the card fosters learning inside the system. People might come up with policies to make sure that the customer is actually available for before starting to work on the work item. Or they might come up with completely different ideas on how to mitigate this situation. Remember: Documentation isn’t bad per se.

Option 2: discard –or abandon– the work

On the other hand there is always the option of starting something new. In a system with a known capacity that usually means abandoning the old work – after all there are good reasons to limit the work in progress in a system. Amongst other reasons, allowing more work in has a very clear and negative impact on the lead time for the system as a whole. Discarding the work doesn’t necessarily mean that all the work already put into this item will be lost. It just means that the work item has to start its journey again from the far left side of the board and it might even take a couple of replenishment meetings (where stakeholders decide wich item to commit into the system) before work is started again. Some of the work will probably have to be redone because the world will have changed by the time work on that item again.

Here the systemic aspect is that discarding or abandoning a card fosters learning outside the system. Especially upstream, at the customer’s end. Customers might come up with the idea that it is a good idea to have more than one person who knows what the reasoning behind a requirement is. Or they might develop other smart ideas on how to handle this. Remember: there once was a whole body of knowledge called requirements engineering.

Either way: it is a chance for learning

Both approaches offer a chance to improve the system. While the former is targeted more at the system itself, the latter is target more towards the customer interface. Both are legitimate ways to “accept reality” and thus are way better than the alternative: wishful thinking and hoping you will guess the customer’s needs correctly.

till next time
  Michael Mahlberg

Sunday, February 07, 2016

Blocking it to get free

Product development can greatly benefit from the Kanban-practice of ‘managing flow’.

Let’s look into one aspect that seems counterintuitive, but helps a lot in managing flow – the option to mark ongoing work as blocked.

Even if only the first core property of Kanban – visualize the work – is implemented, the agreement to mark stuck items (items that can’t be worked on right now) in a highly visible manner sends a very recognizable message to anybody looking at the visualization.

Having a blocked Item in the system means that there ‘is a disturbance in the flow’ and thus work downstream – and upstream – of this blockage might be affected. When the disturbance is highlighted and openly visible, all parties involved can act in their own area of influence to handle this disturbance. They might decide to delay some work, swarm to get the blocked item unblocked, or find completely new ways to get rid of this blockage.

Therefore marking a work-item as blocked in a Kanban system is a powerful measure to get the system free again and get the ‘flow’ flowing – leading to less work in progress and thus to shorter lead times and effectively a shorter time to market.

How do you handle tasks you can't work on right now? How many people can really see that the flow is ‘impaired’?

till next time
  Michael Mahlberg

Sunday, November 29, 2015

In Lean "Value to the Customer" actually trumps ... "Eliminate Waste"

In Lean "Value to the Customer" actually trumps ... "Eliminate Waste"

A lot of people starting with lean think that the topmost goal is to eliminate waste.
Maybe it is just because the Poppendiecks started their first book on Lean Software Development with the principle "eliminate waste", or maybe it is because "Eliminate Waste" makes such an impressive battle cry.
The so called lean decision filter (described nicely by David J Anderson in an article on providing value with lean) makes it rather clear, that in most cases waste elimination is just a ‘minor’ priority, easily trumped by Value to the customer.

The whole chain of trumps in that decision filter is listed as

Value to the customer
    trumps
Flow
    trumps
Waste elimination

This list makes it way easier to decide what to work on next, as Yuval Yeret explained in an article at the leankit blog.

So, next time you ask yourself what to do next you might consider applying this filter instead of going by simple "always do x" rules.

till next time
  Michael Mahlberg