Clicky

MANAGING THE BUSINESS OF SOFTWARE
Resources / blog

Mow the Lawn: A Product Story

Lawn mower 938555 1920

We always have more work than can be done. We need a way to organize the work so we know what's pending, active, and complete.

Most families have some form of “Honey-do” jar. Things for “honey” to do when time allows. A bunch of chores to be performed on a weekend when you don’t have anything else pressing— like “replace the faulty outlet in the hallway” or “wash the car.” And trouble ensues if there are different expectations of task completion. By “wash the car,” does that include vacuuming the inside and cleaning the windows?

At Under10, we recommend a status system using five queues: Planning, Ready, Working, Accepted, and Released. Let’s take a chore through the five queues, from PLANNING to RELEASED, to understand how this approach works.

All chores begin in the PLANNING queue. These are ideas that aren’t yet fully fleshed-out. This is the honey-do jar.

With the weekend approaching, you want to clarify the details of some of the most important items. That means you prioritize the chores (i.e., stories), using a simple scheme like Quick Prioritization, to determine which two or three you want to try to tackle on Saturday. Obviously, you want to work on the most important items first.

One of the highest priority chores in our PLANNING queue is mowing the yard. Before the chore can begin, we need to clarify just what is meant by “mow the yard.” What does this entail? How will you know it’s complete?

The Discovery meeting

Have a team discussion to clarify the specifics (in this example, the team is just my wife and me). In this session, we'll explore the story and articulate the acceptance criteria that define what “done” really means so there’s no confusion. Here’s a list:

  • Mow the front yard
  • Mow the back yard
  • Sweep the grass clippings
  • Weed the front garden and around the mailbox
  • Wash the windows on the front of the house.
  • Finish by lunchtime

Wait a minute!—"washing windows" is a different chore than mowing the yard. Let’s make “wash windows” a different chore. And frankly, weeding may be too but at least it’s work that takes place in the yard so let’s leave it for now. And with the time constraint—“finish by lunchtime”—I may not be able to complete all of these.

Notice these rules are not specifications of tasks; they don't include implementation details. The story doesn’t specify to cut in a diagonal or a square pattern. It’s unnecessary and unhelpful to specify 1) put on work boots, 2) get the mower out of the shed, 3) check the oil, and 4) fill it with gas. We’re not explaining HOW to do the job; we’re explaining WHAT successful completion looks like.

As a result of this discussion, we will reach agreement on the chore’s parameters. Whoever will do the task declares, “I know what you need and I’m ready to do the work when we decide it’s time.”

We can now move the chore from PLANNING to READY. That is, all parties agree the work is sufficiently explained and is ready for execution when time allows.

The Queues in Action

When the weekend arrives, I pull the next story from the prioritized queue: mow the yard. I mow the front, I mow the back, and I sweep the clippings. As I start to pull the weeds, my wife runs out to tell me her mother is coming by for lunch (ugh). I ask, “Do you want to consider this chore done?” She checks the front yard; she checks the back yard; she verifies the grass clippings are swept up. Check check check.

We now “split” the chore to move “weeding” into a new story for the honey-do jar and move “mow the yard” into ACCEPTED.

Let’s look at those status queues again. PLANNING is for work that hasn’t been discussed. READY is work with at least one acceptance criterion—the team agrees the story is ready when they have bandwidth. To move a story into WORKING, you’ll need a work team assignment and an expected completion date or time. WORKING, obviously, is the stuff your team is actually doing. When the team considers the work done, they demonstrate each of the acceptance criterion. When all aspects are complete, you can move the story to ACCEPTED. If one aspect—weeding—isn’t completed, you can SPLIT the story to move the incomplete work to another story and move this one to RELEASED.

The point of this five-stage status system is to reduce or eliminate surprises. You want to keep an eye on work in the PLANNING and READY queues to make sure there’s a backlog of work available for the team. And your team doesn’t want to be surprised by expectations that haven’t been discussed (“Hey, I thought you were also going to trim that tree!”)

One of the troublesome aspects of planning using automation is we try to replace human communication with a trouble ticket. Ron Jeffries, one of the three founders of the Extreme Programming (XP) software development methodology, recommends the form of “Card, Conversation, Confirmation” for stories. The chore (or card) is simply a placeholder. The formal discussion of success factors is the conversation; the acceptance criteria are the confirmation.

You want to know the status of what’s being worked on. You want to ensure the team is clear on what success looks like. The five-queues approach works for mowing the lawn and it works for product stories.

Return to Blogs