Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Resource vs. Flow Efficiency, Part 1: Seeing Your System

DZone's Guide to

Resource vs. Flow Efficiency, Part 1: Seeing Your System

How the system of work and your perspective of it impacts your resource efficiency vs. flow efficiency issues.

· Agile Zone
Free Resource

Reduce testing time & get feedback faster through automation. Read the Benefits of Parallel Testing, brought to you in partnership with Sauce Labs.

I’ve been working with a number of people who want to work in a more agile way. These nice folks have one stumbling block: resource efficiency vs. flow efficiency. This is partly because of how they see the system of work.

If you ever used phases or a waterfall approach, you might have tried to optimize resource efficiency:

ResourceEfficiency




In this image, you see that the work flows from one person to another. What this picture does not show is the fact that there are delays in the workflow.

Each person is a specialist. That means they—and only they—can do their work. The more senior and the more specialized they are, the more they need to do the work and the less capable other people are (for that work). Think of a UI designer or a database admin. I often see teams who don’t have those necessary-for-them roles.

With resource efficiency, you optimize for each person along the way. You get the feature when you get it. Each person is “fully utilized.” This leads to a cost of delay. (See Diving for Hidden Treasures to see more costs of delay.) It also leads to problems such as:

  • “It takes forever to bring people up to speed around here.”
  • “Only Fred can work on that. He’s the only one who knows that code (or whatever).
  • “You can’t take a vacation. That’s just before we want to ship and you’re the only one who knows that part of the product.”
  • Many features are partly done and too few are complete (the work in progress is quite high).

Contrast that with flow efficiency:

FlowEfficiency




In flow efficiency, the team takes the feature. The team might specialize in that feature area (I see this a lot on  programs). If anyone needs to be away from work for a day or a week or two, the team can continue to do the work without that one person. Yes, the team might be a little slower, but they can still release features.

In flow efficiency, it doesn’t matter what each person “knows.” The team optimizes its work to get features done. You can see this when teams limit the backlog coming into an iteration, when they pair, swarm, or mob to finish features. If the team uses kanban and they keep to their work in progress limits, they can see flow efficiency also.

Resource efficiency is about optimizing at the level of the individual. Flow efficiency is about optimizing for the feature.

If you are transitioning to agile, ask this question, “How do we optimize for features? It doesn’t matter if we keep everyone busy. We need to release features.” This is a mindset change and can challenge many people.

Here’s why you should ask this question: Your customers buy features. They don’t buy your busy-ness.

When I tell managers about resource vs. flow efficiency, they often react, “Yes. But how do we know the features won’t take more time?” and “How will we know how to do performance management?” I’ll address that in parts 2 and 3.

The Agile Zone is brought to you in partnership with Sauce Labs. Discover how to optimize your DevOps workflows with our cloud-based automated testing infrastructure.

Topics:
agile ,workflow

Published at DZone with permission of Johanna Rothman, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}