Limiting Work in Process… Are There Any Other Options?

Written by Mike Cottmeyer Friday, 1 April 2011 06:00

One of the big wins of any agile method you pick… Scrum, Kanban, Extreme Programming, AUP… is that you get a built-in ability to balance capacity against demand. This natural throttling of work helps us better manage expectations between the customer and the team. It allows the team to work at a sustainable pace, dramatically reduce thrashing, and helps everyone get more predictable over time.

  • Scrum has us meet with our Product Owner once every couple of weeks during sprint planning. The Product Owner gets to decide what we build. The team gets to decide how and how much, based on their historical velocity.
  • Kanban introduces visual controls and explicit work in process limits to make sure that teams don’t confuse being busy with actually creating value. We can’t start more work, until the other work we’ve already started has left the queue.

When we get in the business of comparing the merits of the various agile approaches, we all kind of assume that limiting work in process is a good thing… it’s just a matter of how of best to accomplish that goal. That said, I’ve actually encountered a few organizations over the past few months that don’t value limiting work in process… they value saying ‘yes’ and then letting the chips fall where they may.

It is politically safer to say ‘yes’ now, give it your best shot, and then deal with the consequences of missed dates, and blown expectations, later after everyone tried really hard to make it all work. In my opinion, this is one of the most challenging barriers to adopting agile… and one of the most corrosive factors to actually sustaining agile in an organization after it has been transformed.

At the team level, people usually understand the problem, and are open, but don’t believe their managers will ever let them throttle back. The higher you go up the food chain, the less connected people are to the day-to-day work, and the more connected they are to the desires of the business. At that level, the deal has been sold and the work just has to get done. It’s up to the lower levels of the organization to figure out how to make it happen.

The irony is that the more we throw at the teams, the more we pressure them to deliver, the less they get done, the more defects get built into the system, and the more technical debt gets accumulated. Ultimately our ability to build working software grinds to a halt and our relationship with the business degrades to the point of open hostility. It’s a vicious cycle that someone has to step up and break.

Any agile method will give you some way of understanding the problem and some tools and techniques to do something about it. We might choose to use a prioritized product backlog and a Scrum board, or maybe a Kanban board with explicit work in process limits. Either way, if we can back off long enough to let the teams stop thrashing, establish a steady cadence of delivery, and a stable throughput… we have a chance to see the problem and do something about it.

Our only other option is to ignore the problem and hope it get’s better. In my opinion, hope isn’t a great business strategy, and ignoring the problem isn’t likely to make it go away. Doing something about your problems though requires taking risks… it requires courage to stand in the face of overwhelming pressure and saying ‘no’… or at least ‘not now’. But really though… what other option do you have?


9 Comments

  1. Paul Boos   |  Friday, 01 April 2011 at 2:18 pm

    Nice post Mike,

    I’m a big fan of trying to get Management to do 2 things:

    - Use Kanban boards to visualize the process of items in flow from a top level. To get an idea of how long things really take and to understand that dumping things into a capacity constrained organizational ‘system’ won’t help them. They need to take a systemic approach to how they help the organization handle more.

    - Second, I think if folks in the consulting world in particular would get managers, particularly senior levels ones, to use Personal Kanban and the Pomodoro to manage themselves; they would begin understanding the principles of Agility in a more concrete manner for themselves. then you could extrapolate that to the large.

    Cheers!
    Paul

  2. Bob Williams   |  Friday, 01 April 2011 at 4:48 pm

    In my mind, it’s not so much about saying ‘no’ or ‘yes’ as it is about working on the most valuable things to the business. Keep the focus of the conversation about the value of the work to the customer and priority answer in most cases will fall into place.

  3. Mary Gilligan   |  Friday, 01 April 2011 at 6:30 pm

    This issue has been a problem since way before Agile came into vogue. The salesmen and the VPs always want to say “yes,” and the project managers and team doing the work have to try to put the brakes on. At least agile methods like Scrum give us some tools to help manage this conflict. But I don’t think it will ever completely go away (if it does, that’s the company I want to work for!).

  4. Mike Cottmeyer   |  Friday, 01 April 2011 at 6:51 pm

    Mary, totally agree. Agile puts the problem front and center and forces you to deal with it.

  5. Mike Cottmeyer   |  Friday, 01 April 2011 at 6:53 pm

    Bob… some companies have sold 10x more work than they can deliver so the conversations are not always rational. People’s jobs are on the line, or the profitability of their company. While I agree with you in principle, things don’t always fall into place.

  6. Just give me a 'G & T'   |  Monday, 23 May 2011 at 4:59 am

    [...] WIP = Work in Progress. [...]

  7. Balance the System First « Developers.BlogNotions - Thoughts from Industry Experts   |  Monday, 18 July 2011 at 5:27 am

    [...] Limiting Work in Process… Are There Any Other Options? [...]

  8. Work In Process Limits, Revisited « Developers.BlogNotions - Thoughts from Industry Experts   |  Monday, 15 August 2011 at 5:21 am

    [...] Limiting Work in Process… Are There Any Other Options? [...]

  9. The Wisdom of Limiting Work-In-Progress - Chris Steele on Agile   |  Monday, 21 January 2013 at 1:03 pm

    [...] failure to limit the work-in-progress leads to extra pressure on delivery teams, which has its own negative effects. Lower delivery quality, more stress, higher turnover, and failed relationships between [...]

Leave a Comment