Chris Gagné

Delight customers. Create value. Do good.

How Scrum Teams Can Seek Out and Destroy Organizational Impediments and Unplanned Work

A team should be able to complete 80–110% of their planned stories each and every sprint without heroics.

Why is this important?

  • The work output from this team is predictable. When the team commits to a set of stories at the beginning of the sprint, other teams can rely on them to deliver.
  • Predictable output breeds confidence. If a team consistently delivers on their commitments, they are considerably more credible when they need to push back on unrealistic expectations.
  • The team will likely feel motivated because they’ve demonstrated a degree of mastery in their craft.
  • The team has a stable base. Because they are delivering on their expectations, they can focus their energy on continuous improvement and optimization.

If a team regularly completes less than 80% of their sprint objectives, why does this happen?

  • The work tasks do not meet INVEST criteria and thus cannot be estimated accurately.
  • New work is given to the team mid-sprint.
  • The team faces new and old impediments that interfere—usually unpredictably—with their ability to deliver the work.

It’s not always easy to glean these issues from tools like Rally. Thankfully, there’s a simple solution that can help both individual teams and the program discover the severity and nature of the issues that prevent a team from achieving fast, flexible flow.

The Status Quo

Let’s take the example of a 2-person team working a 2-week sprint. (This isn’t an ideal team setup, but it keeps the numbers easier to work with.) Here’s their sprint backlog a few hours after planning:

sprint backlog no URI story

 

They’ve taken on 39 story points, which is one fewer than the 40 accepted story points they completed last sprint. That’s perfectly reasonable.

They’ve added tasks to each of these stories and began work on the first one.

I like to assume 6 hours/day of productivity per developer to account for planning meetings, standups, retrospectives, breaks, lunch, etc. Two developers * 2 weeks * 6 hours/day = 120 hours. Assuming a 25% “safety factor” (some teams use 30%, others use 20%, the truth is that we’re splitting hairs at this point), the team should be able to complete about 96 hours of planned tasks this sprint. They’ve identified 93, so this “smells” okay.

(Note: the team should use story points to gauge how much work to accept into the sprint backlog. Use the task hours as a sanity check.)

Let’s fast forward a week and a half. It’s Tuesday afternoon, and there are about 2-1/2 days left in the sprint:

Screen Shot 2014-07-30 at 10.38.50 AM

The product owner accepted 18 points or 46% of the sprint. There’s 36 hours of work left and about 30 hours of time left, so we’re a little behind. This would not set off alarm bells for most teams. A program manager or other stakeholder certainly would not

The development team raised impediments during the standup and worked through them. One developer was out sick for a day. The team had to go to an unexpected all-hands meeting, and they had to do a couple of side projects.

The problem is, there’s no measurement or record of these unexpected requests and impediments. The unexpected requests should not have been added mid-sprint unless they were (rare) “on-fire” issues. The team (and anyone who attended the standups) would know what the issues were, but this knowledge is limited or non-existing at the program level or higher.

This is a missed opportunity.

Introducing the Unexpected Requests and Impediments Story

Let’s rewind and add a new story to the sprint backlog:

Sprint Backlog right after planning

Note the addition of “Sprint 5 Unexpected Requests and Impediments” at the bottom. This doesn’t get story points and it’s at the bottom because it’s the last thing you want your team to be working on.

Each and every unexpected request or impediment gets added to this story as a task (with hours) during the sprint, like so:

Screen Shot 2014-07-30 at 10.54.38 AM

Suddenly these side projects and impediments become real.

Let’s take a look at that mid-sprint view of the backlog again.

Screen Shot 2014-07-30 at 9.46.56 AM

Suddenly, the problem becomes even more clear. We should be able to complete about 120 hours of work in a 2-person, 2-week sprint, but our task estimate is now up to 139. Unless this team works overtime (which they should not do as it is demotivating and ultimately productivity-killing), we’re not going to complete all of our stories in time for the demo.

So here’s where this team ended up right before their demo:

Screen Shot 2014-07-30 at 11.12.01 AM

They completed 28 story points or 72%. A “pointy-haired boss” might look at this team and say “you failed.”

That statement in and of itself is a failure. It jumps to the conclusion that the team experienced a performance failure. In reality (with all credit due to Mary Poppendieck), the more likely failure is that of the original hypothesis: that the team could have completed the work in the first place. There’s a major missed opportunity: the opportunity to learn something from our system and adapt.

We budgeted 25% of our time for these sorts of issues, or 24 hours. We wound up with 46 hours of unexpected requests and impediments, 22 hours “over budget.” We had 15 hours of work remaining on the two stories we didn’t complete, so it’d be pretty reasonable to say that had it not been for those extra 22 hours of work, we would have completed this sprint (and perhaps even added a 1- or 2-point story).

Ideally, you’re keeping track of your velocity from sprint to sprint. Add another metric: keep track of the percentage of task hours each sprint that came from unexpected requests and impediments.

So what?

Now we have transparencyTransparency allows inspection, inspection allows adaptation. Here are some ways to use this information to inspect and adapt:

  • The team can review the impediments and suggest user stories to the product manager (often spikes or technical user stories) to help address some of the underlying technical impediments.
  • The team can use this as feedback that they may need to slow down and refactor to address technical debt. They may not want to create new user stories, but they should at least spend a little extra time on their new user stories to clean up old debt and avoid creating new debt.
  • The Product Owner can show stakeholders the cost of unexpected requests and impediments on their predictability. This gives them the evidence they need to hold off on new requests until the next sprint and spend more time building quality into the work that they are doing.
  • Engineering managers and program managers can review impediments across teams and look for impediment patterns to solve. For instance, an engineering manager may be able to quantify that the company spends 10-15% of their development time fixing broken environments. This data could justify an much-needed investment: “We lose $1M a year in productivity fixing broken environments [based on salaries multiplied by time lost]. A new VM system would reduce this cost by 50% and cost us $100K.”

There you have it. Regardless of the software you use (if any), you can add the Unexpected Requests and Impediments story to your sprint backlog. You can use the data it generates to gain knowledge and take corrective action.

What are your thoughts? Have you used something like this in your own team? Please share your thoughts!

Photo from Kyle Pearson on flickr

Keep Calm and Enjoy Samsara

“A small team of A+ players can run circles around a giant team of B and C players.”

—Steve Jobs, Steve Jobs: Hiring the Best Is Your Most Important Task

What a 106-year-old psychological law tells us about long hours in the office

Work harder!

We’ve all been admonished to work harder at some point in our lives, whether it was from a well-meaning parent, a sports coach, or a manager facing a deadline.

What many Agilists have come to empirically observe is that the more we can get people to feel happy and have a good work/life balance, their total productivity goes up. We’ve come to learn that “busyness” is not productivity. I have heard managers brag of how dedicated their teams are because they’re working 100-hour weeks on their latest and greatest innovation. Yet, they seem miss out on the fact that had their teams spent 35–40 hours a week on their latest and greatest innovation, it would be less late and even greater.

So, why do some managers insist upon added stress and arousal? Clearly there must have been a time or place where “cracking the whip” made sense.

Hint: It’s not in highly creative fields like software development.

It turns out that there are some times when it makes sense. According to the Yerkes-Dodson law, an “empirical relationship between [physiological and mental] arousal and performance,” performance increases when arousal does but only up to a point. In some cases, further arousal lowers performance.

For simple tasks, more arousal equals more performance, at least up to a point at which it relatively plateaus. For difficult tasks, more arousal equals more performance, until it reaches a peak and begins to plummet at the rate that it rose. This is because stress negatively affects cognitive processes such as attention, memory, and problem solving, all critical for the modern knowledge worker.

Put another way…

Yerkes-Dodson Law

One of the things that I really like about Agile is that it’s all about staying empirical… Transparency benefits inspection, inspection benefits adaptation. And over the years, we’ve come to learn in the business context what many have learned in the psychology and biology contexts.

For instance, a 2007 review of the effects of stress hormones like glucocorticoids found that people’s performance on memory tests and the levels of stress hormones in their blood produced very similar responses to what Yerkes and Dodson found nearly a century earlier. One example: the ability to form long-term memories was highest in the face of small quantity of glucocorticoids were in the bloodstream, but removing the adrenal glands (thus no glucocorticoids) or injected glucocorticoids produced poor long-term memory formations.

Interestingly, this same review found that in order for something to induce a stress response, it has to be perceived as: novel, unpredictable, uncontrollable, and/or possibly leading to social rejection. Naturally, any knowledge worker’s office is likely to be plagued by novelty, unpredictability, and a lack of control (at least from external circumstances like competition).

One of the things Agile teaches is is how to manage these constants well. Rather than stressing out and feeling like we need to “replan” because “things didn’t go the way we planned,” Agile assumes that things won’t go as planned. Uncertainty is embraced. Servant leaders who understand the nature of software development reality deeply understand these things, and so don’t unnecessarily create a culture of fear that produces the sense of a “social evaluative threat” when “the plan isn’t met.” The plan hypothesis was wrong in the first place.

Thus, workers in strong Agile cultures are more productive not only because they aren’t working 80-hour weeks, but also because the whole culture (especially the leadership) is mature enough not to freak out at every single change. These workers experience less stress, therefore they’re producing less stress hormones, and therefore their brain isn’t acting like it’s about to be eaten by a tiger. Keep in mind the tiny amount of time that has elapsed between the constant fear of violent death and the modern 72°F office environment, at least from an evolutionary perspective.

This is your brain on stress.

Truly Agile companies then put A+ talent in environments where they feel autonomy, mastery, and purpose, thus providing strong intrinsic motivation (which does not cause the same sort of stress). A+ talent will not tolerate an environment of mediocrity, fear, or command and control, so any such talent in such an environment exits post haste. This leaves behind giant teams of B and C players who send the company into a tragically-slow death spiral from which few can escape. Further, small teams of A+-level absolutely run circles around giant teams of B- and C-level talent (kudos to Steve Jobs for popularizing this).  Many people have never seen this in action.

It’s easy to feel like a hero or a martyr when you’re working those eighty-hour weeks “for a cause.” Managers can tell their employees that they’re not “strong enough” and need to “man up” and put in the hours. But try as we might to ignore them, rarely can we escape the simple facts of our physiology and biology.

Thanks to Wikipedia for illuminating me on the Yerkes-Dodson law, from whose article I borrowed liberally for my own.

Yerkes Dodson ParodyYerkes-Dodson Law ParodyYerkes-Dodson Law ParodyYerkes Dodson Parody

How to Run a 5 Whys (With Humans, Not Robots)

Dan Milstein shares his advice on how to run a 5 Whys retrospective with humans rather than robots. A great watch!

Video:

Slide deck (also shown in the video):

I particularly like his use of humor and contrast in setting the tone for a retrospective.

Rally’s “The Impact of Agile Quantified” White Paper

I’m not normally a huge fan of white papers, but Rally Software has done something extraordinary with this one. They’ve analyzed the process and performance data for nearly 10,000 teams using the Rally platform to extract some rather interesting findings. While there’s empirical evidence to support many of the prescribed Agile behaviors, Rally’s unique access to performance data as a SaaS process tool provides them with the ability to get an inside look across many different companies and teams.

Here’s Rally’s introduction:

Though people have made Agile recommendations for many years, we have never been able to say how accurate they actually are, or how much impact a particular recommendation might make. [Chris: I disagree as many of these recommendations have been made based on other data and evidence.]

The findings in this document were extracted by looking at non-attributable data from 9,629 teams using Rally’s Agile Application Lifecycle Management (ALM) platform. Rally is in the unique position to mine this wealth of SaaS (cloudbased) data, and uncover metrics-driven insights.

These insights give you real world numbers to make an economic case for getting the resources you need, and your people to commit to change. That’s the underlying motivation of this work.

A few highlights that I’ve copied and pasted:

[T]here is almost a 2:1 difference in throughput between teams that are 95% or more dedicated compared with teams that are 50% or less dedicated.

Stable teams result in up to:
60% better Productivity
40% better Predictability
60% better Responsiveness

Teams doing Full Scrum estimating [both story points and task hours] have 250% better Quality than teams doing no estimating

Teams that aggressively control [work in process]:
• Cut time in process in half
• Have ¼ as many defects
• But have 34% lower Productivity

Small teams (of 1-3 people) have
• 17% lower Quality
• But 17% more Productivity
Than teams of the recommended size (5-9)

While these are the summary findings, the white paper is short and well worth a read. Check it out!

You do not get capacity by attempting to forcefully take it. You get it by gracefully creating it.

Agile is exquisitely simple. Empower people and expect high performance. While it’s no guarantee that they can solve all of your problems, they have a better chance of it than you do.

Patterns for Splitting User Stories

I just came across Richard Lawrence’s excellent story splitting flowchart. It’s a poster that offers several different strategies for splitting large user stories into smaller ones, including:

  • Workflow steps
  • Defer performance
  • Simple/complex
  • Major effort
  • Business rule variations

Check out the full flowchart, here. This is an especially useful resource for product managers who are coming from a waterfall environment and are new to writing Agile user stories.

David Koontz, a practicing Agile coach, shared an excellent list of twenty Agile team exercises on his blog, Agile Complexification Inverter. This includes the Marshmallow Challenge I wrote about in an earlier post. There’s some real gems, so take a look!

Some Thoughtful Retrospective Questions

I’ve used relatively standard Agile Retrospective questions to great success over my career:

  • What’s one word that best describes this sprint? (one per person)
  • What were the positive aspects of this sprint that we’d like to persist?
  • What were the deltas we’d like to change?
  • How can we change our behavior, process, or definition of done to address the above?
  • What actions can we take (with volunteered date commitments from one or more individuals) to address the above?
  • And the most important “Big Daddy” that we should ask ourselves constantly… Why? Repeat that one another four times…

While this is a nice base, I’ve been looking for other questions to ask. Here’s several that I liked from Ben Linder’s blog, Sharing My Experience:

  • What still puzzles us?
  • What helps you to be successful as a team?
    • How did you do it?
  • Where and when did it go wrong in this sprint?
  • What do you expect, from who?
  • Which tools or techniques proved to be useful? Which not?
  • What is you biggest impediment?
  • If you could change 1 thing, what would it be?
  • What caused the problems that you had in this sprint?

Here are some nice why examples:

  • Why did you do it like this?
  • Why did this (or didn’t this) work for you?
  • Why do you consider something to be important?
  • Why do you feel this way?
  • Why did you decide to work together on this?

From Debategraph, I liked “What don’t we know yet?”

Are there other questions you like to ask during retrospectives?

Photo from Magnus D on flickr

« Older posts

© 2014 Chris Gagné

Theme by Anders NorenUp ↑