Professional Documents
Culture Documents
www.StickyMinds.com
JULY/AUGUST 2010 BETTER SOFTWARE 17
Figure 1: The six slicing elements of a user story
Analyzing User Story Options: Expand- Throughout this expand-then-contract process, the team
Then-Contract and product owner together gain crucial knowledge. As
To get your user stories ready, our story-slicing technique the product owner assigns a value to each option, she asks
follows an overall pattern of expand-then-contract. For the team to gauge the effort and risks for implementing it,
each user story, in the expand phase, the product owner first heightening her understanding of technical concerns and the
elaborates possible options. Then, in the contract phase, the development process. As team members discuss the options,
team and the product owner explore the options and quickly they learn about the requirements. Team members question,
narrow them based on their value; this takes a matter of min- challenge, and clarify the product owners filtering criteria,
utes. The result is a small, concise, thinly sliced story ready for deepening their understanding of the business domain and the
development. requirements that will provide value.
Lets explore this pattern in more detail. Note that you will find this technique useful for product
In the expand phase, you begin with a single chunky story requirements but not team or technical work, which some
and explore the analysis options. Your analysis looks at six teams represent as technical stories. And remember: As you
elements of the user story: proceed through each expand phase, if you discover that any
Who acts in the user role? What are the types and of the six user story elements has no options, simply move to
states of that role? the next element.
What actions are needed to meet the users goal?
What data objects are acted on? What are the types Slicing Stories by Analyzing Options: An
and states of those data objects? Example
What business rules must be enforced for the actions Lets iterate through the technique again, this time looking
and data objects? at the six elements via a sample story.
What interfaces are needed? What are their types You begin by selecting a high-value user story from your
manual solutions, physical hardware devices, system- backlog. The story might originate from, say, a high-level
to-system interfaces, or user interfaces? feature or a minimal marketable feature (MMF). [13] Or, it
What quality attributes constrain and control the sliced might have been decomposed from chunkier requirements
user story? what some teams call epics.
On agile teams, these stories are usually written in the fol-
In the contract phase, the product owner collaborates lowing form:
with the team to select options using transparent, rational cri-
teriafor example, return on investment, market drivers or As a [user role]
events, or risk reduction. She uses prioritization techniques I need to [some behavior or action]
such as a tailored ranking scheme, stakeholder value, voice of so that [business value]
the customer, and so on.
www.StickyMinds.com
JULY/AUGUST 2010 BETTER SOFTWARE 19
cycle. Encourage her to defer actions that are less valuable, story. In our example, the Book object has two states: new
occur infrequently, require data not yet built into databases, or used.
or are complex and better left until later.
Be sure to analyze any interdependent optionsthose that Select for Value
might need to be selected together. At the same time, look for As before, the product owner now contracts the options.
independent actions. For example, ask your product owner, Her selection is New Book.
Is it necessary to offer discounts in the next iteration or re-
lease, or can that wait? Book State Options
To guide the selection, consider the context of the action. New
For example, is the buyer shopping at a brick-and-mortar Used
store or online? We learn that the immediate need is to sup-
port in-store purchases. Our product owner selects four op- What Weve Sliced So Far
tions (checked): We started with the user story: As a customer, I want to
buy a product ... We used the expand-then-contract pattern
Buy Action Options to slice three elements: user role (types and states), actions,
Verify product cost and data objects (types and states). The story has been sliced:
Calculate tax amount
Calculate total purchase amount As an individual anonymous buyer, I want to buy a new
Apply discount book ... paying with cash and receiving a cash receipt.
Determine wrapping fee
Arrange for shipping The story includes four action options: verify product
Secure payment price, calculate total purchase amount, secure payment, and
Adjust inventory generate receipt.
Generate receipt At this point, you have partially sliced your story. Your
Post payment to accounts receivable team might choose to defer analyzing the three additional
slicing options (business rules, interfaces, and quality attri-
Step 3: Data Object Options: Types and butes) until development. But, in our experience, the addi-
States tional minutes spent exploring these other options before you
Next, we focus on data objects. Your product owner commit to delivering a story can significantly help in creating
should identify object options based on her prior selections of a ready story while expanding the teams knowledge of the
user role and actions. In our example, the objects are Product, product requirements. Lets take a look.
Payment, and Receipt.
For each object option, identify types or variations. For Step 4: Business Rule Options
example, the Product objects types include Book, CD, DVD, Business rules define constraints and conditions that must
and so on. be satisfied. As part of developing your storys sliced, high-
value actions and objects, you need to elicit business rules
Select for Value that must be enforced. Limiting business rule options to only
The team has analyzed the objects and expanded its un- the prioritized user role, actions, and objects streamlines your
derstanding of the objects types. The product owner assesses analysis work and ensures eliciting fresh rules.
the business value of the options and determines valid combi-
nations. The product owner chooses the highest-value object Select for Value
types (checked items in table 1): The product owner again weighs the business value of
these options for the next iteration. She chooses the following
Product Type Payment Type Receipt Type (checked):
Options Options Options
Book Cash Cash receipt Business Rule Options
CD Credit card Credit card Payment currency must be specific to purchase location
receipt Cash payment denomination amount must not be
DVD PayPal
greater than
Gift card Purchase
order Payment change amount is calculated as
Greeting card Receipt bar code is designed using
Electronic
book reader Step 5: Interface Type Options
Table 1
You can gain a high-level view of your storys interfaces
by quickly drawing a context diagram of the user story or its
Theres more. As you did with the user role, you need to higher-level, minimal marketable feature.
explore possible lifecycle states for the objects specific to our Focus on the interface options that are relevant to the
Cash Receipt Interface Type Options Our thinly sliced, ready story meets the INVEST criteria:
Printed in store (report) independent, negotiable, valuable, estimable, sized appropri-
Faxed (system to system) ately, and testable. [16]
Emailed (system to system) In development, the team details each storys selected op-
tions. That includes building user acceptance tests, regardless
Step 6: Quality Attribute Options of testing methods or toolsthe Given-When-Then construct
Quality attributes are the subset of nonfunctional require- (e.g., jBehave, easyB, Cucumber), data tables (e.g., FIT or
ments that describe properties of the softwares operation, de- FitNesse), or other scripting tool. Meanwhile, work-ahead
velopment, and deployment. [14] Teams sometimes neglect analysis continues on lower-priority options for upcoming de-
these crucial requirements until well into development. But, livery cycles.
weve learned that teams need to explore options for perfor- And, yes, we have found this slicing technique useful for
mance, reliability, safety, security, scalability, usability, and so requirements in forms other than user stories, including use
on if theyre going to define a ready story and improve the cases, snippets of text-user requirements statements, events,
quality of the products ever-unfolding architecture. and features.
There are several ways to specify quality attributes. For ex-
ample, you can write them as user stories, use Planguage (a Slicing for Success
specification language) [15], list the quality attributes as user By collaborating with business customers to explore re-
story acceptance criteria, or incorporate them into the user quirements options and successively slice them at the last
story text. responsible moment, the team can continually groom the
One quality attribute we need for our sample story is the backlogand continually deliver well-understood, valuable
response time for printing the receipt. Borrowing from Gilbs requirements. Along the way, everyone in the project commu-
Planguage tags, you can specify response-time requirements nity benefits by expanding and deepening their requirements
as follows: knowledge.
Tag: ResponseTime.CashReceiptPrintLaunch This just enough, just in time slicing method is a fast,
Scale: Seconds efficient, repeatable technique that streamlines planning and
Meter: Elapsed time between pressing Receipt to the jointly engages the customer and team in optimizing value
start of printing all goals of successful agile teams. {end}
Minimum: No more than 7 seconds
Plan: 4 seconds ellen@ebgconsulting.com
Wish: 2 seconds mary@ebgconsulting.com
Alternatively, you can write your storys quality attributes
on the back of the user story card (or in your backlog man-
For more on the following topic go to
agement tool)for example, Cash receipt begins printing www.StickyMinds.com/bettersoftware.
within four seconds of pressing the Receipt key. n References
www.StickyMinds.com
JULY/AUGUST 2010 BETTER SOFTWARE 21
Appreciations
MaryandEllenGottesdienerthankSusanBlock,MikeCohn,ChrisMatts,Tom
Poppendieck,JeffSutherland,andBillWakefortheirreviewandincisive
commentsonadraftoftheirarticleSlicingRequirementsforAgileSuccess.{end}
References
[1]Wake,Bill.TwentyWaystoSplitStories.XP123:ExploringExtreme
Programming,December2005.
[2]Lawrence,Richard.PatternsforSplittingUserStories.October2009.
[3]Rainsberger,J.B.SplittingStories:AnExample.June2007.
[4]Koskela,Lasse.WaystoSplitUserStories.BlurtsontheArtofSoftware
Development,blog,June2008.
[5]Matts,Chris,andOlavMaassen.RealOptionsUnderlieAgilePractices.
InfoQ,June2007.
[6]Matts,Chris.FeatureInjectionEpisodes1through4.LimitedWIPSociety.org,
May2009.
[7]Sutherland,Jeff.PracticalRoadmaptoGreatScrum:Systematically
AchievingHyperactivity.AgileBazaar,Boston,November2009.
[8]Jakobsen,Carsten,andJeffSutherland,ScrumandCMMIGoingfromGood
toGreat:areyoureadyreadytobedonedone?Agile2009,Chicago,2009.
[9]Harvey,Jack.TheProductOwnerReadyBoard.AgileProductOwnerBlog,
November2009.
[10]Beaumont,Serge.FlowtoREADY,IteratetoDONE.Xebia,July,2009.
[11]Leffingwell,Dean.MoreonLean,BacklogandLittlesLaw.Scaling
SoftwareAgility,January2010.
[12]Cohn,Mike.AgileTeamwork:3WaystoMinimizeHandoffs.BetterSoftware,
March/April2010.
[13]Denne,Mark,andJaneClelandHuang.SoftwarebyNumbers:LowRisk,High
ReturnDevelopment.PrenticeHall,2003.
[14]Gottesdiener,Ellen.TheSoftwareRequirementsMemoryJogger:APocketGuide
toHelpSoftwareandBusinessTeamsDevelopandManageRequirements.GOAL/QPC,
2005.
[15]Gilb,Tom.CompetitiveEngineering:AHandbookforSystemsEngineering,
RequirementsEngineering,andSoftwareEngineeringUsingPlanguage.Addison
Wesley,2005.
[16]Wake,Bill,op.cit.
EBGConsulting,Inc.PrincipalConsultantandFounderEllenGottesdiener
helpsbusinessandtechnicalteamscollaboratetodefineanddeliverproducts
customersvalueandneed.Authoroftwoacclaimedbooks,Ellenworkswith
globalclientsandspeaksatindustryconferences.Learnmorefromherarticles,
tweetsandblog,freeeNewsletterandfindresourcesonEBGswebsite.Contact
Ellenatellen@ebgconsulting.com.
MaryGorman,CBAP,isseniorassociateatEBGConsultingandhelpsproject
teamsexplore,analyze,andbuildrobustbusinessandsystemrequirements
models.MaryservesontheBusinessAnalysisBodyofKnowledgecommitteeof
theInternationalInstituteofBusinessAnalysisandistheleaderoftheelicitation
subcommittee.Shecanbereachedatmary@ebgconsulting.comand
ebgconsulting.com.