Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Breaking a project's first User Story in to tasks [closed]

I'm starting a new project from scratch and have written User Stores to describe how a given user will interact with the system. But, I'm having trouble understanding how to break the first user story in to tasks without the first one becoming an epic.

For example, if I were building a car and the first user story said something like "As a driver, I would like to be able to change the direction of motion so that I don't hit things.", that would imply a user interface (steering wheel), but also motion (wheels) and everything necessary to link those together (axle, frame, linkage, etc...). In the end, that first user story always seems to represent about 40% of the project because it implies so much about the underlying architecture.

How do you break user stories down for a new project such that the first one doesn't become an epic representing your entire underlying architecture?

like image 387
PaulH Avatar asked Nov 02 '11 13:11

PaulH


People also ask

When should a user story be broken down?

You should see a break point at which stories get unwieldy or balloon unexpectedly. When stories cause sprint bloat, it's likely a symptom of unaccounted-for complexity. If those 13-point stories always end up dragging through multiple sprints, it's time to agree that your stories need to be sized at an 8 or below.

What are the benefits of breaking down user stories?

User stories generally express the customer's perspective so that the development team can focus more on day-to-day activity, creativity, collaboration, and, most importantly, better outcome. The ultimate purpose of writing a user story is to focus on business values and prioritizing customers needs.


1 Answers

You might want to think of your story as a vertical slice of the system. A story may (and often will) touch components in all of the architectural layers of the system. You might therefore want to think of your tasks as the work needed to be done on each of the components that your story touches.

For example, Let's say you have a story like In order to easily be able to follow my friends' tweets, as a registered user, I want to automatically follow all of my gmail contacts that have twitter accounts.

In order to accomplish this, you will have to pass through the UI layer, service layer, persist some data in the data layer, and make an API call to twitter and gmail.

Your tasks might be:

  • Add an option to the menu
  • Add a new gmail authentication screen
  • Add a twitter authentication screen
  • Add a contact selection screen
  • Add a controller that calls into your service layer
  • Write a new service that does the work
  • Save contacts to the database
  • Modify your existing gmail API calling service to get contacts
  • Add a twitter API calling service to follow selected contacts

There: That's 9 possible tasks right there. Now, as a rule, you want your tasks to take roughly 1/2 a day to 2 days, with a bias towards one day (best practice, for sizing). Depending on the difficulty, you might break down these tasks further, or combine some if they are two easy (perhaps the two API calling services are so simple, you'd just have a modify external API services).

At any rate, this is a raw sketch of how to break the stories down.

EDIT:

In response to more question that I got on the subject of breaking stories into tasks, I wrote a blog post about it, and would like to share it here. I've elaborated on the steps needed to break the story. The link is here.

like image 155
Assaf Stone Avatar answered Sep 22 '22 17:09

Assaf Stone