If you are involved in knowledge work where more than a single operation or task is required to move an idea to production, you’re operating a workflow. Effectively delivering value through knowledge and service work is challenged by the fact that not only is the work itself invisible, the steps that must be taken to complete work are often ambiguous, variable, and hidden. Improving delivery performance can be as simple as making the work visible through 4 steps.
I once worked as an Agile Coach in a Fortune 500 financial services company as part of their initiatives to become more agile. One of our efforts was to deliver formal trainings through the Learning and Development department. We started by writing down the steps a course needed to go through, and captured those as tasks on each course:
- Coach identifies a need; creates course materials and sets up room logistics.
- L&D sets up course in online registration system with information provided by coach.
- Coach monitors registrations, sends out prework, and prints course collateral.
- Coach delivers course, including sign in sheet.
- L&D uses sign in sheet to give credit to participants and gather online feedback.
- Online feedback shared with coaches.
While this is a straightforward process, as soon as we had more than a couple courses being set up by several coaches, it became difficult to track all the details. The challenge was compounded by the dynamic that prior to this, L&D and coaches didn’t have any established communication channels or cadence. The end result was that no one knew the status of any particular course, what needed to be done next, or who was currently working on it. Attempting to establish this required multiple emails and/or phone calls; we were all frustrated by the lack of visibility, low confidence that details were being handled, and the relatively high amount of effort and overhead it took for even a basic clerical handoff.
The solution was to collaboratively design a simple workflow that reflected the various states’ labels and owners, with steps in the process specifically to hold items ready for a handoff. Nearly instantly, everyone could see exactly where each course was, what it was waiting on, and which would shortly be ready for additional work. Rather than wrangling emails with each other and wasting time with unnecessary communications, coaches and L&D staff could focus on just the effort needed to move courses through to delivery. When we did have a regular touch base it was to quickly communicate important details rather than wondering if we were even talking about the same thing! Our course planning became smoother, and we were able to increase our rate of delivery while decreasing the amount of effort to do so.
A workflow can be described as a series of steps or stages that work items move through to realize value. Organizations and teams operating workflows need to be able to make informed decisions about both managing the optimum flow of work and their improvement efforts.
A key practice to do so is visualizing the flow of work as it moves through the stages. To gain benefit of visualization efforts, having an accurate representation of the workflow is critical; many teams initially struggle to differentiate between the value-generating work items they’re delivering and the states or steps that work moves through. When these are tangled up together, we lose visibility into low-cost, high-leverage improvement opportunities. It cannot be emphasized enough that the practice, in this case visualizing work, is not the goal. Rather it is a means to an end: improving delivery performance. The visualization becomes a source of information to ask better questions and encourage more effective behaviors. Let’s look at the following 4 steps to getting a more accurate representation of your team’s work and flow!
Start small; agree to improve.
Look for tasks repeated across work items.
Pull work and respect capacity.
Create holding queues at handoffs.
Benefits from this step include:
Help gain a view into all work in flight.
Build habits around working with a board.
Begin to instill making changes based on evidence rather than conjecture.
It can be tempting to try and get things perfect right away; instead start with a simple work flow on some sort of board and an agreement to evolve the board as more is learned about how items move through the workflow. The simplest option here is a physical board, such as a blank section of wall or whiteboard that everyone can easily see. For distributed teams a digital tool is likely required, though starting with something simple such as a Google Drawing or Real Time Board can be helpful; the set up is close to creating a physical board and getting started is fast. Over time of course a more sophisticated tool will be beneficial, though at the beginning tools tend to become the object of focus rather than the visualization practice and seeking informed improvement opportunities.
The most basic workflow model to start with has 3 states: To Do, Doing, Done. To Do is a queue of items that are ready to be worked on; Doing is for items that are actively in progress; and Done is for items that are completed. Of course this is pretty rough cut, though it is an important starting point. Agree together this is an initial step and will evolve into more detailed representations as more information is learned over time. It is important to acknowledge that this basic workflow and board sets the foundation for more advanced thinking and practice. The team can decide how long they would like to use a basic workflow model; changes should be supported by evidence where possible, or a coherent hypothesis for experiments when lacking needed data.
It is critical at this step that the team have a conversation about what done means in their context. Arriving at a shared understanding may require people think about their work in novel ways. An example of this is the Stone Cutters’ Parable, where a traveler passes three different stone cutters performing the same act: chiseling chunks of stone into blocks. The difference is how they define their work from highly tactical to highly strategic. The first claims he’s cutting a block; the second making part of wall; the last building a cathedral. Many knowledge work teams have a poor understanding of how their efforts ultimately deliver value to a customer. If we don’t understand our customer, perhaps we don’t understand our work very well, either.
2. Look For Tasks Repeated Across Work Items
Benefits from this step include:
Using the work itself to guide improvement.
Work items become simpler; information in them is both reduced in volume while increasing in importance.
People can begin to organize around delivering work rather than wasting time trying to figure out where in the flow specific items are, what items are incurring normal delay, and what are truly blocked.
Because in knowledge work contexts both the work and the delivery systems tend to be invisible (when was the last time you saw a bunch of source code laying around a desk, or watched it moving from one part of an office to another?), I’ll use the example of something more tangible that demonstrates many of the same flow dynamics: laundry. With 2 adults, 2 kids, 2 dogs, 2 cats, and a rural property we have plenty of sources of dirty laundry. On the weekends there is a backlog of clothes, bed linens, and towels needing to be laundered.
All of these items are valuable to the people and the household when they are once again clean, folded, and in their respective places. To improve the delivery of value in laundry, we benefit from applying our understanding of how flow-based delivery systems work. To begin, we must start with at least a basic understanding of what the flow is; if we have only a single load, the flow goes something like this:
- Dirty laundry is sorted into piles or batches of similar items by type, color, or handling instructions.
- An individual batch or load is placed into the washing machine, which is started and allowed to run.
- After the wash cycle, wet clean items are moved to the dryer, which is started and allowed to run.
- After the drying cycle, items are removed from the dryer, folded, and either stored temporarily in piles or baskets, or delivered to their respective locations throughout the house.
If I want to get a lot of laundry done, every time a wash cycle completes I don’t make a pile of wet clothes near the dryer and just start another load in the washing machine.
These steps must all be completed in order, and they take widely varying amounts of time. From shortest to longest: sorting, folding, washing, drying. Note that this is different from the order of steps in the process! This matters because if drying is the longest running task followed by washing, and if I want to get a lot of laundry done, every time a wash cycle completes I don’t make a pile of wet clothes near the dryer and just start another load in the washing machine! I also don’t add those wet clean clothes to a dryer load half done. In other words trying to get more done by pushing items through the slower process steps will not result in more completed work, it will create more incomplete work though! We understand inherently that allowing the longest step in a process to set the delivery cadence is the most effective way to attain a goal. In knowledge work we tend to throw this understanding away and pretend instead that we can push work between states and still get more of that work to a complete state.
While the example of laundry is convenient as it is (I hope) well understood, it is also imperfect as in my household we are limited to a single load of laundry at a time. The images I’ve drawn for this post show multiple items in progress. That might be more accurate if I were at a commercial laundry facility with banks of washers and dryers. However, I wanted to keep things simple in the example, though show with the images a more complicated version as well. Hopefully this is helpful in building understanding and not simply confusing!
Back to how this applies to knowledge work. Many teams will take a work item and break it down into tasks (sometimes called sub-tasks; the label is less important). It is common for teams using a basic workflow to have the same tasks repeated for many work items, at least those of the same type. Working with multiple types of items is another topic completely for another post.
In the example of laundry, we can treat each load as a complete batch that needs to be “worked on.” As noted previously, to be valuable, dirty laundry must be clean, dry, and folded (and perhaps even delivered). It becomes instantly clear that each batch goes through the same steps from starting in a pile of soiled clothes on its way to being Done. If we are tracking the movement of loads of laundry, we could create cards on a board with the simple 3 state work flow. If each card listed the same steps, and multiple cards are in the Doing column, we have no idea from the board what the actual state of each load is (washing, drying, fold). With only a single washing machine and dryer, this is perhaps not that big a deal; you just look at it. However, if we had 20 washing machines and 20 dryers in a commercial facility and were providing a laundry service, it suddenly becomes a lot more appealing to be able to know instantly the status of every load in every machine without have to go and inspect 40 machines. As always, context is everything!
However, if we take the repeated tasks and translate them to “in progress” columns on the board, we gain instant visibility into where each load is in the process. By removing common information from each item, the information that remains associated with each load is both simplified and more specific to that load’s handling needs. If you are like me, you have at your peril ignored special instructions for various individual pieces and turned perfectly good wool sweaters into doll-sized clothes, or otherwise damaged perfectly good clothing!
The core idea in this step is that tasks shared across work items, often in the form of a sort of template that gets filled out, are signals of states work moves through. That’s such an important point it’s worth repeating: tasks that are repeated across multiple work items are likely representing states that work moves through! These tasks are the evidence we need to make an informed change to the board, our representation of the delivery process!
3. Pull Work; Respect Capacity Limitations of Each Process Stage
Benefits from this step include:
Increased visibility into work’s current state.
Visibility into where work begins to pool into queues upstream from longer-running steps.
Flow of work is maintained by pulling work through the system based on capacity, which improves quality.
It is easier to discover and maintain sustainable pace.
Ever tried to push a piece of string to get it to move in a line? Now try pulling it from one end; an impossible task just became astoundingly easy. Once we learn to recognize pull as a more effective way to move things through flow-based systems, we start to see it everywhere! For another example, imagine you go to your favorite cafe to order a coffee. Rather than patrons waiting in a line for the cashier to take their orders as she is ready, people walk by one at a time and tell what drink they want and put some money on the counter. It is safe to extrapolate that not only would people be unlikely to get the drink they ordered, the cashier would be overwhelmed and the baristas, while staying very busy, would be producing drinks that were unwanted and thus not filling orders. Yet in many ways, this is what happens with knowledge work teams; work gets pushed from one part of the process to another without regard for capacity to complete it with any semblance of quality. Rather than asking for help, people ostensibly working toward the same goal pile work on one another and feel either stressed that they can’t keep up or resentful that enough isn’t getting completed. Pushing information when there is not capacity to receive and operate on it is a self-reinforcing cycle of poor quality, undesired outcomes, frustrated workers, and disappointed customers.
Often in knowledge work teams, work gets pushed from one part of the process to another without regard for capacity to complete it with any semblance of quality.
Pushing information when there is not capacity to receive and operate on it is a self-reinforcing cycle of poor quality, undesired outcomes, frustrated workers, and disappointed customers.
Refocusing on work flow, by making the places explicit that work tends to stop flowing and instead pool up in queues, we can begin to make better decisions. An example is to let an expensive washing machine sit idle full of wet clean clothes until dryer capacity is available, rather than insist that expensive equipment should always be fully utilized. One powerful tool here, which is beyond this post’s scope is to implement work in progress limits or WIP limits. How WIP limits are designed can require experimentation and some pretty solid metrics and data gathering. In the laundry example, it’s clear that while we may have many loads sorted, the limit of laundry in the washing machine regardless of whether it is running or done is 1. Until the dryer has capacity to take a new load, building a piles of clean wet laundry does not get those loads finished any more quickly; it is on the contrary wasteful.
The solution is to let work be pulled through the system as capacity becomes available to work on it.
The solution is to let work be pulled through the system as capacity becomes available to work on it. There are a few implications here, most notably that some steps will be idle, which is still serving the purpose of delivering value! It is important to understand that in many professional contexts, efficiency is considered sacred. To be highly efficient, people are rewarded for being kept busy and to drive down the cost every step of a process without regard for the tradeoffs at the scale of the whole system. When we’re dealing with laundry, the longer dry versus wash time is obvious. In knowledge work the trade offs are far less obvious. As humans when we cannot see things (and even often when we can), we are guided by our intuition, which is often quite incorrect. When we are hanging very tangible business results and introducing very dangerous risks, relying only on intuition is questionable at best and can easily put the survivability of entire organizations at stake.
Back to the example of laundry at my house, where the drying cycle is the limiting factor for laundry being completed, we could choose to remediate this through purchase of a second dryer, or perhaps a more powerful commercial grade one. However these are expensive options with plenty of complications; certainly it is far easier to simply respect the system constraints!
In knowledge work contexts this also requires that you trust people to do good work without a bunch of artificial controls, and that as they have slack time introduced, possibly for the first time ever, that they will learn to fill that time productively in ways other than simply producing more work that will only pile up. In addition to the risk of partially-finished work pooling into queues, high rates of capacity utilization introduce substantial risk of altogether collapsing the flow of work; think of a road system in gridlock. Similar to WIP limits, both the topics of the relationship between capacity utilization and collapse of flow, and whether or not human beings inherently wish to do good work are topics beyond this post’s scope. However both are worth mentioning!
4. Create Holding Queues At Handoffs
Benefits from this step include:
At a glance the board shows what items are currently being worked on and which are ready for the next step.
People operating downstream steps can pull ready items as they have capacity.
Overall system flow can be understood and managed as a whole.
Now, returning to our example of a board representing loads of laundry, if we agree to pull batches through the system according to available capacity, we need to quickly and cheaply know which upstream batches are ready. Understanding which items are ready to be pulled is not explicit on the board, so team members will need to spend additional time communicating about specific items. We can improve this situation by adding “ready” columns between handoff states to clearly signal items ready to be pulled. When work is placed (pushed!) into this column, as capacity is available in the next state there is a clear signal which work to start on. Not every work state needs a ready column (folding clothes occurs immediately after drying, often without any wait state at all), and the cost of work waiting is not always equal. In the laundry example, having sorted piles before the first load is a good strategy for the context of laundry, while having piles of wet clothes waiting for a dryer is not. That is not a universal rule, just something that works in this context. One question a team might seek to answer through their board, is what is the nature of waiting in our work flow? As they seek to gather information to answer this question, they will discover truth. Truth can be uncomfortable as it may demonstrate that our behavior, contrary to our best intent, is responsible for driving poor outcomes; the challenge to address this has nothing to do with boards and flow and everything to do with relationships and emotional intelligence. We must remember always that human beings are at the center of our systems of production; if we don’t know how to work well with people, all the rest of it yields questionable results at best.
If we agree to pull batches through the system according to available capacity, we need to quickly and cheaply know which upstream batches are ready.
One question a team might seek to answer through their board, is what is the nature of waiting in our work flow?
Visualizing workflows and over time improving the accuracy of these tools helps improve performance. Defining states can be a challenge at first; rather than wasting time talking at length about it, make the simplest decision there is evidence for and begin the work! Looking for repeated tasks on work items and then mapping those to the visualization is a simple improvement that is based in what work items need to be completed. Creating ready states at handoffs improve people’s ability to understand what work is ready to be worked on, and when longer-running states are creating work pile ups or queues. There are plenty of additional practices and theory; contact us or leave a comment if you’re interested in more details!
Sources, Contributions, and Resources:
- Anderson, David. (2010). Kanban: Successful Evolutionary Change for Your Business. Sequim, Washington: Blue Hole Press.
- Kaneman, Daniel. (2011). Thinking Fast and Slow. Farrar, Straus and Giroux.
- Ohno, Taiichi. (2013). Taiichi Ohno’s Workplace Management. McGraw-Hill.
- Reddy, Ajay. (2016). The Scrumban [R]Evolution. New York: Addison-Wesley.
- Reinertson, Donald. (2009). The Principles of Product Development Flow. Redondo Beach: Celeritas Publishing.