Today we are pleased to welcome Ed Hill, who is providing a guest post for Shmula.com today, where he discusses Agile User Stories and explains, in practice, how detailed they should be.
For Lean folks, an Agile User Story is akin to a piece or a part in manufacturing. In software development, rather than dealing with pieces or parts, we’re dealing more with software features and functionality. But, the principle here is about “How large should the batch size be?”. Does this ring familiar with Lean practitioners? Yes, the principle here is single-piece flow, but with application for software development.
Read more about Ed after the article.
How Detailed Should Tasks be in an Agile Story?
When I first started using agile project management, my stories didn’t have enough detail. In my office we use Agile to manage our marketing department with 2 week iterations. Even from the beginning, I could see the value of bite size goals that you could accomplish in a short time span. Agile project management is effective in managing our marketing work, even though it was originally created to manage software development projects. It helps our self-managing marketing team to specifically define marketing projects, while limiting the scope of each project to what can be accomplished in a day or two. This whole agile approach is faster in producing results and adapts rapidly to changing customer needs.
When I first worked with marketing stories, I was content to put 1 or 2 tasks into the each marketing story and then start the work. Unfortunately, without a clear definition of done and well defined tasks, I often suffered from scope creep. Simple stories became longer and more complex. Over time I’ve learned to add just enough well defined tasks to accurately drive each project to a timely finish.
How much detail do we need in agile tasks without spending excess time in the planning stage? Let’s take a look at why it’s good to add more detail to tasks in a story. To get a handle on this question, I talked to a developer familiar with breaking agile stories down into tasks.
“I think one of the great uses of tasks is to capture the output of planning each agile story,” says Developer Rajiv Delwadia, of VersionOne. I learned more about the value of planning a story and creating tasks when Rajiv explained planning stories for software development.
“Remember the story, in XP(extreme programming) at least, is a placeholder for a conversation. When the team estimates each story, and possibly again when a pair picks up a story to work on it, conversation happens between the developers and the customer. During story planning, the developers will think of the things that need to be done in order to implement the story”, explained Rajiv.
If we sum up the benefits that Rajiv is outlining, we see that capturing those as tasks will:
- Carry the output of that thinking forward
- Provide a sense of how big the story is
- Hopefully expose dark corners and edge cases
- Help define when the story is “done”
- Make it evident if there are actually multiple stories that can be broken out. Development teams should hone their sensitivity to this.
“Also, don’t forget tests. Whereas tasks capture what needs to be done, tests capture the details of desired outcome. Both are important,” said Rajiv.
So how big does a story have to be before it’s too big and really needs to be broken into two stories? Rajiv tells me, “On our team, anything larger than 1 point should be broken down. Our scale of estimates is:”
- 0.5 = trivial
- 1 = normal, well-defined, achievable in a day or so
- 2 = some lack of definition, or not a single cohesive story, or too large for a couple of days
- 4 = outragous; this is probably an epic
“A story that is already a 1 might call for 15 minutes of planning when a pair picks it up. Of course, it may have had much conversation leading up to that point. Likewise, much ongoing conversation will occur before it is closed,” said Rajiv.
I get some valuable concepts about agile from what Rajiv has said. I can also generalize his ideas to any kind of work that’s managed with agile project management. Some of the benefits are;
- In the iteration planning stage, a story may lack enough detail to estimate the points or time required. Adding smaller tasks, of a known length, can help build a realistic estimate of the hours required for the story.
- If you’re is not familiar with the solution to a technical issue, then this represents a risk in terms of the time required to solve the problem. Writing tasks with estimated hours for all the known tasks of the story, means that the unknown part of the task is limited.
- Breaking down the story into tasks forces you to think about how you will approach the story. It also forces you to consider whether testing or revisions are needed before you can take the next step.
- Planning the tasks to implement a story also allows you to see if someone else in your team can be working on different tasks for the same story in parallel.
When you’re first introduced to Agile stories, you may not see the value of breaking stories down into detailed tasks. When I compare agile project management for software development versus agile for marketing, I see that detailed tasking eliminates a lot of wasted work. As a marketer, I see that being specific about the definition of done and defining the steps I’ll use to get there is a tremendous time saver for me.
If you use agile methods in your work, how much time do you spend on planning stories? Is detailed task planning helpful in your work?
About Ed Hill
Ed Hill is one of the top Marketing Specialists in the Southeast US and has worked with Agile and Scrum since 2009. Ed is a marketing blogger for AgileScout and works with VersionOne to help IT teams and practitioners evangelize the many different forms of Agile, Scrum and Kanban.