Click here to Skip to main content
14,974,153 members
Articles / DevOps / Continuous Delivery
Technical Blog
Posted 19 Feb 2020

Stats

1K views

Why "Work Time" Reduction is Futile

Rate me:
Please Sign up or sign in to vote.
5.00/5 (2 votes)
19 Feb 2020CPOL5 min read
This is a look at Continuous Delivery.
One of the common anti-patterns which comes from a more traditional project management toolbox is estimating work time. This estimate is later used as a tool to hold employees accountable, to help managers steer the ship, while making sure that utilization stays high. For a team to work, they need to know what to expect of each other. Measuring and tracking individual employee output doesn't matter, having a team dynamic where everyone chips in does. We look at a case study to illustrate the point. Peer pressure similar to that in ball sports is a good model for how successful teams work together.

In particular, the measuring stick for good management is that employees are efficient. Over time, employees take less and less time to do a particular type of task.

Call me crazy, but this feels short-sighted to me.

If you are looking at improving output and velocity of work (as opposed to employee efficiency), it goes up significantly when you have a solid team dynamic. Where people reach out and help one another, especially if they have different skill sets required to ship a particular feature. This a classic case of conventional management wisdom not tying true causes and effects together.

Ultimately what you care about is finished work. And finished work comes about quickly when a good team dynamic exists, not when individuals are efficient. To be blunt, this comes down to peer pressure dynamics among team members. For a team to work, they need to know what to expect of each other.

This Is Most Obvious in Team Ball Sports

Any given player needs to pay attention to what everyone else on the court is doing, in order to figure out where to go next. Yes there is a coach on the sidelines, and a captain on the court, but the responsibility rests with the individual.

As the game is playing, could you imagine the coach getting off the bench and running after every player with a stopwatch? Telling them--one after another--to run faster? Anyone who the coach wouldn't be yelling at would slow down most likely. Because he's not getting grief from the coach, so why should he care? This might be more acceptable during practices, but even then, it takes away agency from the employee. And emotional skin in the game.

If you start measuring and tracking individual employee output:

  1. You send a pretty clear message that the team doesn't matter as much as what each employee does.
  2. Success and failure rest at the individual level, how much they do relative to what their manager expects of them.
  3. The responsibility for finishing work lies on the manager's/coach's shoulders, and more importantly, doesn't lay on the employee's.

Maybe that's acceptable, and you want the extra control, but usually this will reduce your output. Because the motivation lies solely in the relationship between the employee and the manager. A hub-and-spoke dynamic among a group of people. Not a real team.

Speaking for myself, adding elements of control doesn't feel like it addresses the real issue of people not being self-motivated to work as a real team. It was kind of like buying additional dumbbells or books when wanting to shed a few kilos, like Keith Cunningham points out. It's helpful to have one new pair, but buying 100x more dumbbells on its own won't burn the fat that much faster.

The root of the problem lies elsewhere: a misaligned team dynamic leading to a lack of individual motivation in the form of manager reprisal.

In contrast, if a player consistently gets the ball and fumbles with it or misses shots on goal, the team won't trust him. That's a much more powerful motivator. They understand the consequences (to others) of dropping the ball on any given task.

Conversely, if there are a few good players who trust they can pass the ball to one another and to move their play forward, then things start to happen. Having a team dynamic where everyone chips in matters. Where people know who they can turn to if needed. So they're implicitly clear on priorities, as they enforce them from one another.

Or if you do have a star player, at least the team self-organizes around helping that star contribute significantly on the playing field.

How Does Overemphasizing Work Time Play Out Quantitatively?

In scenarios requiring serial processing of work to ship something, like for example a software feature, you naturally start to observe bottlenecks. In particular, a lot of partially finished but unreleased work lies in the "wait states". The amount of time a given piece of work lies in between BA, development, and QA usually exceeds the amount of actual work time spent on it.

Here's a case study. Same time, same year, same product, same technology stack:

Aggregate work time vs. aggregate elapsed time for all stories

This was a team that I ran when developing a new product. And what I'm showing here is pretty common. Few delivery people can overcome their "cringe factor". To figure out how much flab there is in a delivery process. In this case above, the aggregate elapsed time was over 3x longer than the work time.

Let's say we achieve a nearly impossible feat: halve the amount of developer work time without reducing the rate at which features were completed. All that would mean is that the purple bar in the stack above would be smaller. But the overall elapsed time wouldn't budge. The story would just wait longer for QA to be able to look at it.

Or halve the QA time required without reducing quality and rate of bug discovery. That would reduce the size of the gold bar. Which is admittedly a win at the story level. Because the elapsed time to the end of QA would go down.

But then you have the next step out: release elapsed time.

How much time elapses in between when all of the stories are QAed and the release goes out the door? If you don't have a continuous delivery pipeline, it could be weeks. So it doesn't matter if QA or dev go 20% faster, because the product won't end up in the client's hands until the product is released.

In practice, all features are released together anyway. So even this pinkish elapsed time stack would need to be much taller when you count the time to release.

Key Takeaways

  • Increasing control doesn't help a team be more efficient, if the team members aren't motivated to collaborate.
  • Peer pressure similar to that in ball sports is a good model for how successful teams work together.
  • Strong-arming team members into finishing their work faster usually won't impact the "elapsed time" before the features/product go out to market.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Lukasz Szyrmer
Program Manager
United Kingdom United Kingdom
Lukasz Szyrmer used to develop in C++ and C# and now manages development teams. He writes about agile, lasagna, and the cost of delay. If you are hungry for more, check out Debugging Velocity for a free chapter in his upcoming book.

Comments and Discussions

 
-- There are no messages in this forum --