web analytics

Product Backlog and Backlog Grooming in Scrum

Options
@2020-01-29 23:39:33

Use case might be represented in two major forms: use case diagram or structural textual description.

@2022-05-03 19:24:42

User stories are about needs. When you write a user story, what you’re describing is a “raw” user need. It’s something that the user needs to do in his day-to-day job.

A typical user story will have enough information to help the user understand what it is the software needs to accomplish, but it’s not meant to be a complete description of how the software works.

Use cases are about the behavior you’ll build into the software to meet those needs. A developer who needs to build working software should be able to read a use case and get a good sense of what the software needs to do. It typically has a lot of detail, and describes everything that the developer needs to build in order to meet the user’s need. That’s why it needs to have a lot more detail, and be clear and unambiguous.

A user story needs to express a complete thought in just a couple of sentences. Use cases describe a complete interaction between the software and users (and possibly other systems). It’s possible that one user story could spawn several use cases.

 

@2022-08-13 13:21:29

Role-Feature-Reason

The role-feature-reason template, or RGB (role, goal, benefit), looks something like this:

"As a [type of user] I want [some feature] so that [some reason]."

Although there are variations, this short sentence structure keeps the focus on the who, what, and why. This prevents the product owner from giving the development team too much information about how they should implement a solution. 

By focusing on the who, what, and why, the development team is empowered to find the best technical solution.

Example 1: Provide a trainer with the ability to add a course

As a trainer, I’d like to be able to add a new course, so that I’ll have the potential to attract new students.

Example 2: Provide a student with the ability to search for a course

As a student, I’d like to be able to search the course offerings, so that I’ll be able to find an offering that most interests me.

The role (who)

The role describes who will benefit from this function. Notice that the role is not simply “the user.” There are different types of users, and so we want the role to be more specific than “user” but describe the type of user that will benefit from the story. Product owners are often tasked with getting in the mind of their users in order to understand what would be most valuable for them.

            Example 1 Role = trainer

            Example 2 Role = student

The feature (what)

This step very briefly describes what the user wants. This most closely represents the requirement that you describe in traditional software development. However, you want to be careful not to be too specific or describe how to write the code. That will be determined eventually, but not when you first create the user story. The user story should be written from the perspective of the user who will benefit from the function, not from the perspective of the developer who will be coding it.

Example 1 Feature = add a new course

Example 2 Feature = search the course offerings

The reason (why)

Finally, we want to state why the user wants this feature. What value will the user get from it? This helps the product owner evaluate how to prioritize the user story on the backlog. If the value or benefit can’t be articulated, it might be something that’s not necessary. Understanding the value often helps the development team find innovative ways to implement the code in order to solve the objective—ways that may be different from what the product owner has in mind.

Example 1 Reason = attract new students

Example 2 Reason = find an offering that most interests me

@2022-08-13 13:32:17

INVEST: The attributes of a solid user story

INVEST is an acronym that helps evaluate whether you have a high-quality user story. Here's how the attributes in the acronym apply to the story we’ve been working on. 

I = Independent—Can this story be completed by the team? We want the team to be able to complete the whole story rather than be dependent on a different team to do the GUI, for example.

N = Negotiable—The story is not so detailed as to describe exactly how long the fields should be or give specifics about date formats and the like. Most likely there will be common routines or libraries that will allow the development team to implement in the way that makes the most sense for them.

V = Valuable—The product owner describes that the value being sought is the ability for the trainer to be able to advertise upcoming classes. This is clear in the "why" of the original statement and re-emphasized in the conversation.

E = Estimable—The team will ask enough questions and gather the details to feel confident in their ability to estimate the story.

S = Small—The team needs to feel confident that they’ll be able to complete the story within a sprint. If they do not, they might split the story. For instance, in our sample story, they may decide to make the ability to gather the student information be a different story and simply display information about the class for this story.

T = Testable—With clear acceptance criteria, both the happy path and error conditions can be tested.

Comments

You must Sign In to comment on this topic.


© 2024 Digcode.com