Doorgaan naar hoofdcontent

Still some misunderstanding about User Stories


In projects i often see that there is still a lot of confusion about User Stories and planning. This article of the famous Scott Ambler describes the way you should plan and use User Stories within Agile projects. One common mistake is that a User Story is much smaller than a Use Case.

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.

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.  It's important to recognize that each of the statements in Figure 1 represents a single user story. 
Figure 1. Example user stories.
  • Students can purchase monthly parking passes online.
  • Parking passes can be paid via credit cards.
  • Parking passes can be paid via PayPal ™.
  • Professors can input student marks.
  • Students can obtain their current seminar schedule.
  • Students can order official transcripts.
  • Students can only enroll in seminars for which they have prerequisites.
  • Transcripts will be available online via a standard browser.

Important considerations for writing user stories:
  1. Stakeholders write user stories.  An important concept is that your project stakeholders write the user stories, not the developers.  User stories are simple enough that people can learn to write them in a few minutes, so it makes sense that the domain experts (the stakeholders) write them.
  2. Use the simplest tool.  User stories are often written on index cards as you see in Figure 2 (at least when your project team is co-located).  Index cards are very easy to work with and are therefore an inclusive modeling technique.
  3. Remember non-functional requirements.  Stories can be used to describe a wide variety of requirements types.  For example in Figure 1 the Students can purchase parking passes online user story is a usage requirement similar to a use case whereas the Transcripts will be available online via a standard browser is closer to a technical requirement.  
  4. Indicate the estimated size.  You can see in Figure 2 that it includes an estimate for the effort to implement the user story.  One way to estimate is to assign user story points to each card, a relative indication of how long it will take a pair of programmers to implement the story.  The team then knows that if it currently takes them on average 2.5 hours per point; therefore the user story in Figure 2 will take around 10 hours to implement. 
  5. Indicate the priority.  Requirements, including defects identified as part of your independent parallel testing activities or by your operations and support efforts, are prioritized by your project stakeholders (or representatives thereof such as product owners) and added to the stack in the appropriate place. You can easily maintain a stack of prioritized requirements by moving the cards around in the stack as appropriate.  You can see that the user story card includes an indication of the priority; I often use a scale of one to ten with one being the highest priority.  Other prioritization approaches are possible – priorities of High/Medium/Low are often used instead of numbers and some people will even assign each card it’s own unique priority order number (e.g. 344, 345, …).  You want to indicate the priority somehow in case you drop the deck of cards, or if you're using more sophisticated electronic tooling.  Pick a strategy that works well for your team. You also see that the priority changed at some point in the past, this is a normal thing, motivating the team to move the card to another point in the stack.  The implication is that your prioritization strategy needs to support this sort of activity.  My advice is to keep it simple.
  6. Optionally include a unique identifier.  The card also includes a unique identifier for the user story, in this case 173.  The only reason to do this would be to do this is if you need to maintain some sort of traceability between the user story and other artifacts, in particular acceptance tests.


    You can read the full article here

Reacties

Populaire posts van deze blog

OSB 10gR3 and SWA and MTOM

This blog is about using soap with attachments and the use of MTOM within the OSB (10gR3). A service is created that accepts a soap with attachment (DocumentService) and translates it to a service that accepts a binary element. MTOM is used for performance reasons for the second. Some notes: * For the use of attachments you need RPC-style document instead of the usual document-style. This due to the fact that the document-style limits a message to a single . * A service can not have both SWA and MTOM within OSB. First a WSDL is setup for the DocumentService: The $attachments variable holds the attachments and the body holds the attachment data. Also other data is stored within the attachment element (see h

Microservices mindmap

"The tree" - See also   my photo page When you are fairly new within the Microservices land, there are a lot of terms fired at you. So also for my own understanding i have made a mindmap. I think it has a good status now, so that i can share it with you. As always feedback is very welcome ! You can download the mindmap here .

Book review: Data Management at Scale (Piethein Strengholt)

 This blog is a review of the book "Data Management at Scale (See also at bol.com ) Data Management is a hot topic nowadays and this book does a fantastic job at adding value to this topic. It is a must read and one of the few technical books I finished reading in a weekend. The book gives a fantastic overview on how to implement a Data Mesh data architecture. The Data Mesh concept is explained by Martin Fowler here . The book is a good mix between conceptual and implementation architecture level. It gives a lot of examples of how this architecture at scale can work, for both small and big companies. It is practical and I used it to implement it at one of my customers. The book describes an architecture in which the focus is on the DIAL (Data- and Integration Access Layer).  On a high level the book covers the following topics: The key principles for data management at scale - Domain-Driven Design  - Domain Data Stores - Meta data management Ready Data Store The concept of servin