background preloader

User Stories

Facebook Twitter

Roman Pilcher - Story Techniques

"As a Developer..." Is Not a User Story | Industrial Logic. Look at these "user stories" I recently encountered: As a developer, I want to refactor the BarSplat module so that it has less duplication As a developer, I want to configure Jenkins so that we have continuous integration As a product owner, I want to have the stories estimated so that we can make a good plan As a tester, I want the test cases defined so I can test the system In Planning Extreme Programming, Kent Beck and Martin Fowler described a user story as "a chunk of functionality that is of value to the customer. " Where is the customer value in those stories? Note: My argument is not that those activities are not good or important things to do (they are for this team), but that thinking of them as user stories misleads the team and its customers. Writing something in the form of a user story when it's not about users of the system misses the point.

The Connextra Style of User Stories As a [role], I want to [do something] so that [reason/benefit] Where Do Poor Stories Come From? Splitting user stories: the hamburger method. Problems: Story is too big to split and estimate; business users don’t accept any breakdown proposed by the delivery team; team is inexperienced and thinks about technical splitting only;new project starts and no simple starting stories can be foundSolution: User Story Hamburger I’ve evolved a new technique for splitting user stories over the last few months shamelessly stealing repurposing Jeff Patton’s User Story Mapping and ideas described by Craig Larman and Bas Vodde in Practices for Scaling Lean & Agile Development. I think it works particularly well in situations where a team cannot find a good way to break things down and is insisting on technical divisions.

It has the visual playful aspect similar to innovation games and it’s easy to remember. I call it the User Story Hamburger. Inexperienced teams often can’t get their heads around splitting stories into smaller stories that still deliver business value. Step 1: Identify tasks Step 2: Identify options for tasks. Feature Injection and handling technical stories. Technical stories don’t make sense As I learn more about stories and how they get written, I occasionally come across odd things that don’t make sense.

One of these is the technical story. Here’s an example: As a developer, I want an automated build So that I can be sure my code works. Of course, we’re resistant to letting developers have their own stories. So sometimes, instead, the technical story becomes: As a business user, I want developers to have an automated build So that they can be sure their code works. This doesn’t make sense to me either. If there’s no benefit to the business, the chances are that a technical story isn’t really appropriate. As a business user I want the developers to refactor the UglyClass So that... um... Maybe not. Feature injection helps us talk about the business benefit There are some technical stories, though, which really do deliver something the business care about.

This is where the feature injection comes in. Users aren’t stakeholders “But, you know what? Where do User Stories Come From? Part 1. | Robert Galen. An Approach for Generating User Stories I see many agile Product Owners struggle with backlogs on their own for new projects. Quite often they insist on personally owning the backlog-which equates to authoring every story themselves. While this approach certainly works, it does require a lot of additional vetting time with their teams-bringing them up to speed on the story content.

So it can be time intensive and a bit wasteful. In his book User Stories Applied, author Mike Cohn discussed the notion of User Story Writing Workshops. I see way too much individualized story writing and too little group-based activity, so I wanted to spend some time in my next two posts discussing the dynamics and merits of User Story Writing Workshops. Getting a Facilitator One of the most critical success factors in the workshop is finding or declaring a facilitator. If you can't get someone who's independent, then go for facilitative experience. Workshop Logistics Brainstorm Roles First Wrapping-Up. User Stories | Mike Cohn's Blog - Succeeding With Agile® Requirements Gathering | The Art of Software Development. INVEST in Good Stories, and SMART Tasks | XP123.

(French) In XP, we think of requirements of coming in the form of user stories. It would be easy to mistake the story card for the “whole story,” but Ron Jeffries points out that stories in XP have three components: Cards (their physical medium), Conversation (the discussion surrounding them), and Confirmation (tests that verify them). A pidgin language is a simplified language, usually used for trade, that allows people who can’t communicate in their native language to nonetheless work together. User stories act like this. We don’t expect customers or users to view the system the same way that programmers do; stories act as a pidgin language where both sides can agree enough to work together effectively. But what are characteristics of a good story? The acronym “INVEST” can remind you that good stories are: I – IndependentN – NegotiableV – ValuableE – EstimableS – SmallT – Testable Independent Stories are easiest to work with if they are independent.

Negotiable… and Negotiated Valuable Small. Use Cases or User Stories? Murali Krishna tells us: Failure to effectively transition to Agile development is often based on a fundamental failure to understand what a User Story is. The most important aspect of a User Story is that it's an independently *schedulable* unit of requirement (feature). The key to achieving the "independently schedulable" characteristic of a user story is that you express it in terms of how a "user" would use it. This leads you to a unit of functionality that's implemented end-to-end (UI to backend) that a user can actually interact with.

Murali mirrors what many in the Agile community believe - that user stories are the only/best way to go and points us to an article by Mike Cohn, Advantages of User Stories for Requirements where Mike defines user stories: and then specifically contrasts user stories to the other well-known requirement technique, use cases: So it seems pretty clear that user stories are superior. Things aren't as clear cut as some would have us believe. Introduction to User Stories. 1. Introduction to User Stories A good way to think about a user story is that it is a reminder to have a conversation with your customer (in XP, project stakeholders are called customers), which is another way to say it's a reminder to do some just-in-time analysis. In short, user stories are very slim and high-level requirements artifacts. 2. Initial User Stories (Informal) As you can see in Figure 1 user stories are small, much smaller than other usage requirement artifacts such as use cases or usage scenarios.

Figure 1. Important considerations for writing user stories: Stakeholders write user stories. Figure 2. 2. Figure 3. 4. There are two areas where user stories affect the planning process on agile projects: Scheduling. Figure 4. 5. As you can see in the Disciplined Agile Delivery (DAD) life cycle of Figure 5, there are several distinct "phases" or seasons in the life cycle (some people will refer to the agile delivery life cycle as a release rhythm).

Inception. Figure 5. 6. 7. User stories in VS2010. MSDN Library Design Tools Development Tools and Languages Mobile and Embedded Development Online Services patterns & practices Servers and Enterprise Development Web Development This topic has not yet been rated - Rate this topic User story (Agile) Other Versions This topic has been merged with its parent, Agile process template work item types and workflow. Did you find this helpful? Tell us more... (1500 characters remaining) Thank you for your feedback Show: © 2014 Microsoft. The Easy Way to Writing Good User Stories. Many development shops have opted to writing user stories over traditional feature/requirement documents; however, almost all of them struggle when writing their first batch of user stories. This is not at all uncommon, just like riding a bike, it does take a little bit of practice (but once you get it – you get it). Writing user stories is dead simple if you follow these simple steps: 1.

As a [role], I can [feature] so that [reason] When writing user stories, using this pattern is a for sure bullseye. Let’s look at an example: As a account owner, I can check my balance online so that I can keep a daily balance 24 hours a day. Pretty easy right? As a account owner, I can check my balance online. Feel free to use slight deviations of this template using synonyms: As a [role], I want [feature] because [reason]As a [role], I can [feature]As a [role], I can [feature] so that [reason] 2. The theory is simple – if you use any larger than a 3″ x 5″ index card you will write too much. P.S. 3. 4. The new user story backlog is a map. Why the flat user story backlog doesn’t work, and how to build a better backlog that will help you more effectively explain your system, prioritize, and plan your releases.

This is Gary. Gary and I worked together for a day to build a user story map - a better version of a product backlog. Building a user story map helps us focus on the big picture - the product as a whole instead of getting myopically focused on an individual story. When it comes time to prioritize, Gary did so with the entire context of the system in view.

In Gary's case he originally set out to build Mimi - short for Music Industry Marketing Interface. However, when it came time to prioritize we focused on the band member promoting a gig in a club. Mimi shipped after a lot of sweat and effort from Gary, Dave Hoover, and the fine folks at Obtiva. Flat backlogs don't work for me One of the more troubling things, for me, about common Agile development practice is the idea of the flat user story backlog. Build a story map. New to User Stories?Written for the Scrum Alliance. A CSP’s perspective on user stories, requirements, and use cases. Having coached traditional requirements, use cases, user stories, and agile development, I’ve fielded a lot of questions around the differences among the three major ways of specifying requirements, particularly by people migrating to user stories.

To set the record straight on requirements, use cases, and user stories, I will describe each methodology and then compare the three against each other. Traditional requirements Traditional requirements are criteria to which the system or business must adhere. They are usually created before the coding begins and are nearly always written as text. They often are thought of as constraints, conditions, or capabilities to which the system must conform. Good requirements have the following characteristics: Complete. Traditional requirements focus on system operation.

Use Cases A use case is a series of interactions by the user (Actor) with the system and the response of the system. User Stories A good user story uses the “INVEST” model: Independent. User story. History[edit] User stories originated with Extreme Programming (XP), whose first written description in 1998 only claimed that customers defined project scope "with user stories, which are like use cases".

Rather than offered as a distinct practice, they were described as one of the "game pieces" used in the planning game. However, most of the further literature thrust around all the ways arguing that user stories are "unlike" use cases, in trying to answer in a more practical manner "how requirements are handled" in XP and more generally Agile projects. This drives the emergence, over the years, of a more sophisticated account of user stories. [1] In 2001, Ron Jeffries proposed the well-known Three C's formula, i.e.

Card, Conversation, Confirmation, to capture the components of a user story:[2] A Card (or often a Post-it note) is a physical token giving tangible and durable form to what would otherwise only be an abstraction; Creating user stories[edit] Format[edit] Examples[edit] Run tests.