SlideShare une entreprise Scribd logo
1  sur  67
Composing	
  User	
  Stories	
  
Raja	
  .	
  S	
  
July	
  2014	
  
We	
  Are	
  Here	
  !!!	
  
Implementa2on	
  
Story	
  Refinement	
   Coding	
  
Tes2ng	
  
Planning	
  
Storytelling	
  
Chartering	
   Project	
  happen	
  in	
  a	
  context,	
  created	
  by	
  their	
  charter	
  
Once	
  you	
  have	
  some	
  stories,	
  you	
  can	
  plan	
  
with	
  them	
  
Storytelling,	
  the	
  art	
  of	
  composing	
  user	
  stories,	
  is	
  the	
  
focus	
  of	
  this	
  album	
  
Implementa2on	
  involves	
  some	
  story-­‐related	
  acIviIes	
  in	
  
refinement	
  and	
  tes2ng.	
  We’ll	
  touch	
  
on	
  them	
  slightly,	
  but	
  they’re	
  mostly	
  out	
  of	
  scope	
  
for	
  this	
  album	
  
This	
  drawing	
  is	
  linear,	
  but	
  real	
  projects	
  move	
  more	
  freely	
  
among	
  these	
  acIviIes	
  
What	
  is	
  in	
  a	
  ChaMer	
  ?	
  
A	
  Project’s	
  Charter	
  Drives	
  the	
  Stories	
  You	
  will	
  Create.	
  
Whether	
  formal	
  or	
  informal,	
  a	
  charter	
  establishes	
  clear	
  expecta2ons	
  between	
  a	
  
sponsor	
  and	
  a	
  team	
  
The	
  charter	
  answers	
  key	
  quesIons	
  that	
  set	
  the	
  context:	
  
•  Vision:	
  The	
  ulImate	
  end-­‐state	
  that	
  will	
  saIsfy	
  the	
  sponsor	
  
•  Mission:	
  The	
  way	
  in	
  which	
  we	
  propose	
  to	
  accomplish	
  the	
  vision	
  
•  Principles:	
  What	
  values	
  guide	
  the	
  team’s	
  behavior?	
  
•  Objec2ves:	
  What	
  are	
  the	
  measurable	
  ,	
  external	
  outcomes	
  for	
  which	
  the	
  
sponsor	
  is	
  funding	
  the	
  project.	
  What	
  tests	
  will	
  tell	
  us	
  if	
  those	
  objecIves	
  were	
  
met?	
  
•  Boundaries:	
  What	
  is	
  the	
  project	
  responsible	
  for?	
  What	
  comes	
  in	
  or	
  goes	
  out?	
  
What	
  are	
  the	
  key	
  events?	
  
•  CommiLed	
  Resources:	
  What	
  resources	
  will	
  be	
  made	
  available	
  to	
  
the	
  team?	
  
•  Authorizing	
  Players:	
  Who	
  is	
  sponsoring	
  the	
  work?	
  Who	
  will	
  judge	
  it?	
  
Telling	
  Stories	
  
with	
  the	
  
Product	
  Backlog	
  
Requirements	
  =	
  CommunicaIon	
  Tool	
  
•  Can	
  be	
  well	
  thought	
  through,	
  reviewed	
  and	
  edited	
  
•  Provide	
  a	
  permanent	
  record	
  
•  Are	
  easily	
  shared	
  with	
  groups	
  of	
  people	
  
•  Time	
  consuming	
  to	
  produce	
  	
  
•  May	
  be	
  less	
  relevant	
  or	
  superseded	
  over	
  Ime	
  
•  Can	
  be	
  easily	
  misinterpreted	
  
WriLen	
  Requirements	
  	
  
•  Instantaneous	
  feedback	
  and	
  clarificaIon	
  
•  InformaIon-­‐packed	
  exchange	
  
•  Easier	
  to	
  clarify	
  and	
  gain	
  common	
  understanding	
  
•  Easily	
  adapted	
  to	
  any	
  new	
  informaIon	
  known	
  at	
  the	
  Ime	
  
•  Can	
  spark	
  ideas	
  about	
  problems	
  and	
  opportuniIes	
  
Verbal	
  Requirements	
  
User	
  Stories	
  
Seek	
  to	
  Combine	
  the	
  Strengths	
  of	
  WriLen	
  and	
  Verbal	
  Communica2on,	
  
Where	
  Possible	
  Supported	
  by	
  a	
  Picture.	
  
*	
  Kent	
  Beck	
  Coined	
  the	
  Term	
  User	
  Stories	
  in	
  Extreme	
  Programming	
  Explained	
  1st	
  EdiIon,	
  1999.	
  
What	
  is	
  a	
  User	
  Story?	
  
A	
  concise,	
  wriLen	
  descrip2on	
  of	
  a	
  piece	
  of	
  func2onality	
  that	
  will	
  be	
  valuable	
  to	
  a	
  
user	
  (or	
  owner)	
  of	
  the	
  soTware	
  
Stories	
  are:	
  
•  User’s	
  needs	
  
•  Product	
  descripIons	
  
•  Planning	
  items	
  
•  Tokens	
  for	
  a	
  conversaIon	
  
•  Mechanisms	
  for	
  deferring	
  conversaIon	
  
User	
  Story	
  –	
  Ambiguity	
  
Yes,	
  it	
  is.	
  You’ll	
  hear	
  “User	
  Story”	
  (or	
  “story”)	
  used	
  to	
  talk	
  about	
  at	
  least	
  three	
  things:	
  
•  The	
  feature	
  itself	
  (whether	
  implemented	
  yet	
  or	
  not)	
  
•  The	
  “headline”	
  wriMen	
  on	
  a	
  card	
  
•  The	
  headline,	
  details,	
  discussions,	
  and	
  key	
  tests	
  that	
  together	
  describe	
  a	
  feature	
  
The	
  context	
  will	
  tell	
  you	
  which	
  meaning	
  of	
  story	
  is	
  in	
  play.	
  
Isn’t	
  the	
  Term	
  
“User	
  Story”	
  
Ambiguous?	
  
A	
  user	
  story	
  describes	
  a	
  s2mulus;	
  the	
  system	
  produces	
  results	
  in	
  response	
  to	
  that	
  s2mulus	
  
•  All	
  stories	
  have	
  the	
  same	
  basic	
  structure:	
  Heading	
  (Itle)	
  and	
  details	
  
User	
  Story	
  –	
  Basic	
  Structure	
  
Heading	
  
Details	
  
User Logs in with Expired License
Take user to home page
Disable all links and buttons
Add prominent renewal link that takes
user to the Store
– Ask for exact text and location
The	
  Heading:	
  Role–Ac2on–Context	
  
The	
  “Role–Ac2on–Context”	
  formula	
  works	
  very	
  well	
  for	
  wri2ng	
  story	
  headings	
  that	
  reflect	
  events	
  
and	
  responses:	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
The	
  words	
  in	
  the	
  heading	
  create	
  and	
  reflect	
  a	
  domain	
  vocabulary:	
  
•  The	
  people	
  using	
  our	
  system	
  
•  How	
  they	
  can	
  act	
  
•  What	
  they	
  can	
  act	
  upon	
  
Heading	
  –	
  RAC	
  Style	
  
Someone	
  or	
  something	
  
that	
  sends	
  a	
  s2mulus	
  
into	
  a	
  system	
  boundary	
  
How	
  the	
  role	
  triggers	
  the	
  
s2mulus.	
  Usually	
  as	
  simple	
  
as	
  verb	
  +	
  object	
  
Op2onal:	
  Where	
  or	
  when	
  
the	
  ac2on	
  applies	
  
Role	
  
User Logs in with Expired License
Ac2on	
   Context	
  
Good	
  Headings	
  
Which	
  are	
  Good	
  Headings?	
  
Which	
  of	
  the	
  following	
  fit	
  the	
  Role–Ac2on–Context	
  formula	
  (Good)	
  and	
  which	
  Do	
  Not?	
  
Good	
   Bad	
  
1.  “The	
  system	
  shall	
  process	
  Visa™	
  cards.”	
  
2.  ATM	
  Customer:	
  Iden2fies	
  self	
  
System:	
  Presents	
  op2ons	
  for	
  deposit,	
  withdrawal,	
  or	
  fast	
  cash	
  
ATM	
  Customer:	
  Selects	
  fast	
  cash	
  
etc.	
  
3.  “Student	
  Schedules	
  a	
  Course”	
  
4.  “Grading”	
  
As	
  a	
  type-­‐of-­‐user,	
  I	
  want	
  to	
  ac-on	
  so	
  that	
  business-­‐goal	
  
DescripIon	
  –	
  Connextra	
  Style	
  
User	
  stories	
  replace	
  detailed	
  requirements	
  and	
  specificaIons	
  with	
  just	
  enough	
  
detail.	
  Just	
  enough	
  for	
  what?	
  For	
  esImaIng,	
  planning,	
  understanding,	
  discovering,	
  
and	
  evolving	
  the	
  system,	
  and	
  basically,	
  moving	
  forward	
  
The	
  details	
  elaborate	
  on	
  the	
  heading.	
  They	
  describe	
  the	
  sImulus,	
  the	
  response,	
  
and	
  any	
  specifics	
  that	
  maMer	
  to	
  the	
  customer.	
  The	
  details	
  shouldn’t	
  be	
  technical,	
  
nor	
  should	
  they	
  spell	
  out	
  development	
  tasks	
  or	
  guide	
  implementaIon	
  
The	
  Details	
  Elaborate	
  on	
  the	
  Heading	
  
You	
  can	
  use	
  any	
  simple	
  means	
  to	
  write	
  the	
  details,	
  as	
  long	
  as	
  you	
  get	
  your	
  
point	
  across:	
  
•  A	
  few	
  phrases	
  
•  Bullet	
  points	
  
•  Diagrams	
  
•  Hand-­‐drawn	
  pictures	
  
“Wri2ng	
  the	
  Stories	
  is	
  Not	
  the	
  Point,	
  Communica2ng	
  is	
  the	
  Point”	
  
–  Kent	
  Beck	
  and	
  Mar-n	
  Fowler	
  
When	
  Do	
  We	
  Get	
  the	
  Details	
  
•  During	
  planning	
  sessions	
  
•  Even	
  deeper	
  conversaIons	
  about	
  other	
  details	
  as	
  they	
  begin	
  to	
  
implement	
  the	
  story	
  
•  Decisions,	
  details,	
  and	
  specificaIons	
  can	
  be	
  captured	
  in	
  automated	
  
tests,	
  as	
  a	
  picture,	
  on	
  a	
  whiteboard,	
  or	
  by	
  any	
  other	
  useful	
  means	
  
•  Key	
  Principle:	
  "Defer	
  decisions	
  unIl	
  the	
  last	
  responsible	
  moment.”	
  
Pre-­‐requisites	
  
Some	
  details	
  are	
  
clearly	
  needed	
  
earlier	
  than	
  others.	
  
Summary	
  
User	
  Stories	
  Provide	
  a	
  Lightweight	
  Way	
  to	
  Manage	
  Requirements.	
  
•  “A	
  user	
  story	
  is	
  a	
  chunk	
  of	
  funcIonality	
  (some	
  people	
  use	
  the	
  word	
  
feature)	
  that	
  is	
  of	
  value	
  to	
  the	
  customer.”	
  
•  A	
  story	
  card	
  consists	
  of	
  a	
  heading	
  (Itle)	
  and	
  details	
  
•  The	
  formula	
  Role–AcIon–Context	
  can	
  help	
  you	
  write	
  effecIve	
  
story	
  headings	
  
•  A	
  story	
  is	
  useful	
  even	
  before	
  we	
  work	
  out	
  its	
  details:	
  “A	
  user	
  story	
  is	
  
a	
  promissory	
  note	
  for	
  a	
  conversaIon.”	
  (Cockburn)	
  
•  “CCC:	
  Card,	
  ConversaIon,	
  ConfirmaIon”	
  (Jeffries)	
  
What	
  Makes	
  a	
  User	
  Story	
  Good	
  
A	
  Story	
  Should	
  be	
  
•  Understandable	
  to	
  customers	
  and	
  developers	
  
•  Testable	
  
•  Valuable	
  to	
  the	
  customer	
  
•  Small	
  enough	
  so	
  that	
  the	
  programmers	
  can	
  build	
  half	
  a	
  dozen	
  in	
  
an	
  iteraIon	
  
–  Kent	
  Beck	
  and	
  Mar-n	
  Fowler	
  
INVEST	
  –	
  Acronym	
  
Bill	
  Wake	
  devised	
  the	
  acronym	
  INVEST	
  as	
  a	
  reminder	
  of	
  the	
  properIes	
  of	
  good	
  stories	
  
Independent	
  
Nego2able	
  (and	
  Nego2ated)	
  
Valuable	
  
Es2matable	
  
Small	
  
Testable	
  
Stories	
  ideally	
  describe	
  non-­‐overlapping	
  bits	
  of	
  funcIonality,	
  possible	
  to	
  implement	
  in	
  any	
  order	
  
The	
  customer,	
  developers,	
  and	
  testers	
  can	
  agree	
  on	
  what	
  the	
  story	
  means	
  precisely	
  enough	
  that	
  tests	
  can	
  be	
  created	
  
Stories	
  have	
  flexibility;	
  there’s	
  room	
  for	
  a	
  collaboraIve	
  definiIon	
  of	
  success	
  
Stories’	
  value	
  makes	
  sense	
  from	
  a	
  customer	
  or	
  end	
  user’s	
  perspecIve.	
  They’re	
  not	
  described	
  in	
  terms	
  of	
  a	
  developer’s	
  tasks	
  
The	
  team	
  can	
  esImate	
  the	
  difficulty	
  of	
  the	
  story	
  (at	
  least	
  to	
  a	
  rough	
  level)	
  
The	
  story	
  is	
  small	
  enough	
  for	
  its	
  purpose.	
  For	
  implementaIon,	
  it	
  can	
  be	
  completed	
  in	
  less	
  than	
  an	
  iteraIon.	
  
For	
  longer	
  term	
  planning,	
  the	
  story	
  is	
  larger	
  
What	
  Characterizes	
  Great	
  User	
  Story	
  
Essen2al	
  
The	
  user	
  story	
  describes	
  something	
  that	
  helps	
  achieve	
  essenIal	
  management	
  objecIves	
  
External	
  
The	
  user	
  story	
  perspecIve	
  views	
  the	
  system	
  as	
  a	
  black	
  box,	
  describing	
  what	
  is	
  to	
  happen,	
  
not	
  how	
  it	
  happens	
  
Instantaneous	
  
The	
  user	
  story	
  happens	
  at	
  an	
  instant	
  in	
  Ime	
  rather	
  than	
  over	
  a	
  duraIon	
  of	
  Ime	
  
Detectable	
  
The	
  user	
  story	
  has	
  an	
  explicit	
  sImulus	
  (acIon-­‐	
  or	
  Ime-­‐based)	
  
EssenIal	
  Stories	
  
•  Essen2al	
  user	
  stories	
  provide	
  value	
  to	
  sponsors	
  
•  What	
  provides	
  value?	
  SoTware	
  that	
  helps	
  achieve	
  a	
  project	
  charter's	
  vision,	
  mission,	
  
or	
  key	
  objec2ves	
  
•  Sponsors	
  ul2mately	
  care	
  about	
  effects,	
  the	
  changes	
  in	
  the	
  outside	
  world	
  resul2ng	
  from	
  
the	
  system	
  
•  Here	
  is	
  the	
  vision	
  statement	
  project	
  charter:	
  
§  Rapidly	
  spawned,	
  knowledge	
  workers,	
  skilled	
  in	
  the	
  fundamentals	
  of	
  collaboraIve	
  learning	
  
§  User	
  stories	
  that	
  contribute	
  to	
  achieving	
  this	
  vision	
  are	
  essenIal.	
  Thus,	
  knowledge	
  workers	
  
adds	
  eIqueMes	
  of	
  collaboraIon	
  in	
  enterprise	
  to	
  his	
  learning	
  plan	
  is	
  essenIal	
  because	
  it	
  lets	
  
Knowledge	
  workers	
  teach	
  themselves	
  	
  
§  The	
  story	
  knowledge	
  workers	
  adds	
  eIqueMes	
  of	
  poetry	
  learning	
  to	
  his	
  learning	
  plan	
  is	
  not	
  
essenIal	
  to	
  the	
  vision.	
  In	
  other	
  words,	
  it	
  is	
  not	
  currently	
  something	
  valued	
  by	
  sponsors	
  
External	
  Stories	
  
•  User	
  stories	
  that	
  are	
  external	
  to	
  a	
  system	
  boundary	
  focus	
  on	
  organiza2onal	
  and	
  business	
  
concerns	
  rather	
  than	
  technical	
  ones	
  
•  The	
  user	
  story	
  perspec2ve	
  views	
  the	
  system	
  as	
  a	
  black	
  box,	
  describing	
  what	
  is	
  to	
  happen,	
  not	
  
how	
  it	
  happens	
  within	
  the	
  black	
  box	
  
•  The	
  external,	
  organiza2onally-­‐focused	
  language	
  of	
  user	
  stories	
  survives	
  changes	
  in	
  technology;	
  
how	
  a	
  user	
  story	
  gets	
  implemented	
  is	
  up	
  to	
  the	
  programmers	
  
•  A	
  given	
  user	
  story	
  might	
  have	
  hundreds	
  of	
  ways	
  it	
  could	
  be	
  implemented	
  
•  When	
  wri2ng	
  User	
  Stories,	
  don't	
  include	
  any	
  technological	
  assump2ons	
  about	
  how	
  the	
  story	
  
"should"	
  be	
  implemented	
  
•  User	
  stories	
  reflect	
  end-­‐to-­‐end	
  func2onality	
  
Instantaneous	
  Stories	
  
A	
  Great	
  Story	
  Describes	
  an	
  Instantaneous	
  Event.	
  
The	
  story’s	
  ac2on	
  or	
  event,	
  happens	
  at	
  an	
  instant	
  in	
  2me	
  rather	
  than	
  over	
  a	
  
dura-on	
  of	
  2me	
  
The	
  phrase	
  “Clock	
  hands	
  move	
  around	
  clock	
  face”	
  fails	
  this	
  criterion	
  because	
  there	
  
is	
  no	
  single	
  instant	
  in	
  2me	
  during	
  which	
  that	
  happens	
  
The	
  clock’s	
  hands	
  reaching	
  a	
  certain	
  posi2on	
  or	
  2me	
  would	
  be	
  an	
  instantaneous	
  
event	
  
These	
  stories	
  headings	
  are	
  examples	
  of	
  instantaneous	
  events	
  
•  System	
  sends	
  daily	
  summary	
  email	
  
•  Customer	
  selects	
  report	
  
User	
  stories	
  are	
  triggered	
  by	
  something	
  –	
  and	
  that	
  trigger	
  must	
  be	
  detectable	
  by	
  
the	
  system	
  
	
  
Ed	
  Yourdon	
  (author	
  of	
  the	
  classic,	
  modern	
  structured	
  analysis)	
  
describes	
  three	
  types	
  of	
  event	
  triggers:	
  
•  Flow-­‐oriented	
  Events:	
  Triggered	
  by	
  data	
  arriving;	
  the	
  most	
  common	
  sort	
  
Example:	
  Customer	
  cancels	
  order.	
  
•  Temporal	
  Events:	
  Triggered	
  by	
  a	
  point	
  in	
  Ime.	
  
Example:	
  System	
  processes	
  credit	
  cards	
  at	
  9:00PM	
  
•  Control	
  Events:	
  Triggered	
  by	
  external	
  sImulus;	
  common	
  in	
  real-­‐Ime	
  systems	
  
Example:	
  Alarm	
  sensor	
  signals	
  door	
  open	
  
Detectable	
  Stories	
  
Quiz	
  
External	
  Stories	
  Quiz	
  
Please	
  drag	
  the	
  boxes	
  to	
  re-­‐order	
  them	
  from	
  best	
  to	
  worst,	
  in	
  terms	
  of	
  their	
  taking	
  an	
  external	
  perspecIve	
  of	
  the	
  system.	
  
Place	
  these	
  in	
  the	
  correct	
  order:	
  
Student	
  Reveals	
  Answers	
  
Student	
  Reveals	
  Answers	
  via	
  JavaScript	
  
Student	
  Clicks	
  “Show	
  Answers”	
  
Student	
  Reveals	
  Answers	
  by	
  Joining	
  Quiz	
  Answer	
  Column	
  in	
  Quiz	
  Table	
  with	
  Quiz	
  QuesIon	
  Table	
  
Instantaneous	
  Stories	
  Quiz	
  
For	
  each	
  item,	
  tell	
  whether	
  it	
  takes	
  place	
  at	
  an	
  Instant	
  or	
  over	
  a	
  Dura2on	
  of	
  Ime.	
  
We	
  prefer	
  stories	
  with	
  s2muli	
  that	
  are	
  instantaneous,	
  rather	
  than	
  occurring	
  over	
  a	
  period	
  of	
  2me.	
  
1.	
  Taxpayer	
  Submits	
  Tax	
  Form	
  
2.	
  Admin	
  Reads	
  Report	
  
3.	
  Device	
  Monitors	
  Blood	
  Pressure	
  
4.	
  User	
  Selects	
  Context-­‐SensiIve	
  Help	
  
Instant	
   Dura2on	
  
Can	
  You	
  Hear	
  Me	
  Now?	
  
Which	
  events	
  are	
  detectable?	
  For	
  each	
  event,	
  please	
  tell	
  whether	
  it	
  is	
  Detectable	
  or	
  Not.	
  
1.	
  System	
  is	
  to	
  send	
  a	
  warning	
  noIce	
  3	
  days	
  before	
  library	
  book	
  is	
  due	
  
2.	
  User	
  presses	
  keyboard	
  key(s)	
  to	
  capture	
  contents	
  of	
  the	
  screen	
  
3.	
  Elevator	
  passenger	
  imagines	
  going	
  to	
  the	
  12th	
  floor	
  
4.	
  The	
  developer	
  runs	
  into	
  the	
  project	
  manager	
  in	
  the	
  hallway	
  and	
  tells	
  her	
  that	
  the	
  task	
  is	
  completed	
  
5.	
  The	
  government’s	
  tax	
  department	
  has	
  flagged	
  your	
  tax	
  return	
  and	
  is	
  considering	
  whether	
  to	
  audit	
  you.	
  
	
  	
  	
  	
  (This	
  is	
  from	
  the	
  perspecIve	
  of	
  the	
  taxpayer,	
  not	
  the	
  government)	
  
Detectable	
   Not	
  
•  First,	
  the	
  mere	
  existence	
  of	
  the	
  story	
  implies	
  that	
  the	
  project	
  community	
  considers	
  it	
  important.	
  
Stories	
  that	
  actually	
  get	
  implemented	
  are	
  (hopefully)	
  essen2al.	
  If	
  you	
  don’t	
  need	
  the	
  story,	
  get	
  
rid	
  of	
  it.	
  (If	
  you	
  track	
  stories	
  on	
  cards,	
  you’ll	
  get	
  a	
  saIsfying	
  feeling	
  when	
  you	
  r-­‐r-­‐rip	
  it	
  up)	
  
•  If	
  you	
  model	
  the	
  system’s	
  interacIons	
  properly,	
  the	
  role	
  is	
  usually	
  an	
  external	
  enIty	
  (user,	
  
accountant,	
  another	
  system)	
  sending	
  a	
  sImulus	
  into	
  the	
  system	
  
•  Instantaneous	
  events	
  manifest	
  themselves	
  in	
  the	
  acIon,	
  usually	
  through	
  the	
  choice	
  of	
  the	
  verb	
  
•  When	
  the	
  means	
  of	
  interacIng	
  with	
  the	
  system	
  are	
  clear,	
  such	
  as	
  a	
  buMon-­‐click	
  or	
  API	
  call,	
  the	
  
acIon	
  describes	
  a	
  detectable	
  event	
  
•  A	
  proper	
  context	
  helps	
  to	
  pinpoint	
  all	
  the	
  criteria,	
  and	
  helps	
  us	
  to	
  write	
  beMer	
  stories	
  
Four	
  Criteria's	
  and	
  RCA	
  Format	
  
I’m	
  not	
  sure	
  I	
  understand	
  how	
  
these	
  four	
  criteria	
  relate	
  to	
  the	
  
Role–Ac2on–Context	
  structure	
  
Summary	
  
	
  
The	
  Four	
  Criteria:	
  Essen2al,	
  External,	
  Instantaneous,	
  and	
  Detectable	
  
Can	
  Help	
  Keep	
  Your	
  Stories	
  on	
  Track	
  
1	
   Essen2al:	
  Valuable	
  to	
  sponsors	
  (as	
  part	
  of	
  the	
  charter)	
  
2	
   External:	
  Takes	
  an	
  outside-­‐the-­‐system	
  perspecIve	
  
3	
   Instantaneous:	
  Happens	
  at	
  a	
  moment	
  in	
  Ime,	
  not	
  over	
  an	
  interval	
  of	
  Ime	
  
4	
   Detectable:	
  The	
  system	
  has	
  a	
  way	
  to	
  tell	
  that	
  the	
  story	
  is	
  triggered	
  
What	
  are	
  Roles	
  
When	
  we	
  say	
  User,	
  we’re	
  usually	
  talking	
  about	
  an	
  individual,	
  a	
  person	
  
A	
  role	
  is	
  an	
  abstracIon:	
  A	
  name	
  for	
  how	
  a	
  parIcular	
  group	
  of	
  people	
  
use	
  the	
  system	
  
The	
  name	
  “role”	
  comes	
  from	
  theater:	
  An	
  actor	
  plays	
  a	
  role	
  by	
  acIng	
  
like	
  someone,	
  but	
  they	
  don’t	
  really	
  become	
  that	
  person	
  
Even	
  more	
  common,	
  a	
  single	
  role	
  can	
  be	
  filled	
  by	
  different	
  people:	
  Many	
  people	
  
are	
  Shoppers	
  
A	
  system	
  may	
  enforce	
  roles	
  (eg.,	
  only	
  Administrators	
  can	
  install	
  soqware),	
  but	
  we	
  don’t	
  require	
  that	
  
Roles	
  need	
  not	
  be	
  explicit	
  in	
  the	
  system:	
  We	
  can	
  be	
  a	
  Browser	
  and	
  a	
  Shopper,	
  
without	
  any	
  need	
  for	
  the	
  system	
  to	
  keep	
  track	
  of	
  which	
  role	
  we’re	
  playing	
  
One	
  person	
  can	
  have	
  mul2ple	
  roles:	
  A	
  person	
  may	
  be	
  acIng	
  like	
  a	
  Browser	
  and	
  a	
  Shopper	
  at	
  
different	
  Imes	
  in	
  a	
  single	
  session	
  
Roles	
  Iden2fy	
  PaLerns	
  of	
  Using	
  the	
  System	
  
Search	
  Widely	
  for	
  Roles	
  
Roles	
  help	
  us	
  create	
  higher-­‐value	
  systems	
  by	
  focusing	
  on	
  
the	
  needs	
  of	
  par2cular	
  groups	
  of	
  users	
  
A	
  brainstorming	
  and	
  refinement	
  process	
  can	
  
help	
  us	
  iden2fy	
  roles	
  (from	
  So6ware	
  for	
  Use	
  
by	
  Constan2ne	
  and	
  Lockwood):	
  
•  Compile	
  –	
  Brainstorm	
  or	
  otherwise	
  generate	
  as	
  many	
  
candidates	
  as	
  possible	
  
•  Organize	
  –	
  Review	
  and	
  sort	
  them;	
  understand	
  their	
  
relaIonships;	
  consolidate	
  them	
  
•  Detail	
  –	
  Fill	
  in	
  any	
  missing	
  data	
  
•  Refine	
  –	
  Improve	
  and	
  complete	
  the	
  model	
  
Develop	
  an	
  Ini2al	
  Model	
  of	
  Roles	
  and	
  Their	
  Rela2onships.	
  
Characters	
  of	
  Users	
  
Knowledge	
  about	
  users	
  can	
  help	
  iden2fy	
  missing	
  roles	
  and	
  guide	
  us	
  in	
  how	
  we	
  use	
  roles	
  
Categories	
  of	
  users	
  can	
  suggest	
  missing	
  roles,	
  and	
  guide	
  us	
  in	
  how	
  we	
  treat	
  roles	
  we	
  
know	
  about	
  
Roles	
   Characteris2cs	
  
Primary	
  
or	
  
Secondary	
  
Do	
  we	
  need	
  to	
  address	
  this	
  user’s	
  needs	
  sooner	
  or	
  can	
  we	
  wait	
  Ill	
  later?	
  
Example:	
  Customer	
  is	
  a	
  primary	
  role	
  for	
  the	
  vacaIon	
  site;	
  customers	
  bring	
  in	
  money	
  so	
  
we	
  want	
  to	
  support	
  them	
  early	
  
Favored	
  
or	
  
Disfavored	
  
Are	
  we	
  trying	
  to	
  help	
  this	
  user	
  or	
  avoid	
  helping	
  them?	
  
Example:	
  A	
  compeItor	
  is	
  a	
  disfavored	
  user;	
  we	
  might	
  add	
  watermarks	
  to	
  our	
  pictures	
  t	
  
make	
  it	
  harder	
  for	
  compeItors	
  to	
  steal	
  them	
  
Direct	
  
or	
  
Indirect	
  
Does	
  this	
  user	
  operate	
  they	
  system	
  themselves	
  or	
  does	
  somebody	
  else	
  use	
  the	
  system	
  
on	
  their	
  behalf?	
  
Example:	
  Customer	
  is	
  a	
  direct	
  user,	
  while	
  a	
  Giq	
  Recipient	
  is	
  an	
  indirect	
  user	
  
Primary	
  or	
  Secondary	
  
Think	
  about	
  MyFakeVaca2on.info;	
  which	
  roles	
  are	
  Primary	
  and	
  which	
  are	
  Secondary?	
  
Primary Secondary
1.  Marke2ng	
  Manager:	
  All	
  the	
  markeIng	
  manager	
  wants	
  is	
  that	
  within	
  six	
  months	
  of	
  
iniIal	
  release,	
  markeIng	
  starts	
  receiving	
  reports	
  monthly	
  reports	
  on	
  the	
  
effecIveness	
  of	
  adverIsing	
  campaigns	
  
2.  Vaca2on	
  Creator:	
  A	
  member	
  of	
  the	
  markeIng	
  department	
  who	
  creates	
  a	
  vacaIon	
  
by	
  uploading	
  a	
  set	
  of	
  compaIble	
  photographs	
  
3.  Hacker:	
  On	
  Day	
  1,	
  some	
  hackers	
  will	
  try	
  to	
  score	
  a	
  free	
  vacaIon	
  by	
  looking	
  for	
  bugs	
  
in	
  the	
  checkout	
  process	
  
Favored	
  or	
  Disfavored	
  
For	
  MyFakeVaca2on.info;	
  which	
  stakeholders	
  are	
  Favored	
  and	
  which	
  are	
  Disfavored?	
  
Favored Disfavored
1.  Purchaser	
  of	
  a	
  vaca2on	
  
2.  Travelocity	
  
3.  Our	
  photography	
  partner	
  
4.  M4dd06h4x0r	
  (a	
  hacker)	
  
Oqen	
  ForgoMen	
  Role	
  
You	
  Won’t	
  Support	
  Every	
  Stakeholder,	
  
But	
  Look	
  for	
  Key	
  Roles	
  Beyond	
  The	
  Obvious	
  Users.	
  
Certain	
  roles	
  are	
  easy	
  to	
  forget	
  because	
  they’re	
  oqen	
  
not	
  everyday	
  users	
  of	
  the	
  system,	
  but	
  they	
  an	
  
important	
  impact	
  on	
  the	
  acceptability	
  of	
  the	
  system	
  
as	
  a	
  whole:	
  
•  Administrators	
  
•  Operators	
  
•  Supervisors	
  
•  ExecuIves	
  
•  Auditors	
  
•  Hackers	
  and	
  other	
  disfavored	
  users	
  
Dig	
  Deeper	
  
Deeper	
  Knowledge	
  about	
  Users	
  Can	
  Suggest	
  
Useful	
  Dis2nc2ons	
  in	
  Roles.	
  
Understanding	
  these	
  characterisIcs	
  will	
  be	
  especially	
  helpful	
  in	
  designing	
  the	
  interface.
For	
  the	
  people	
  in	
  the	
  roles	
  you	
  iden2fy:	
  
•  What	
  are	
  their	
  goals?	
  
•  What	
  is	
  their	
  domain	
  exper2se?	
  
•  What	
  is	
  their	
  technology	
  exper2se?	
  
•  How	
  oTen	
  will	
  they	
  use	
  the	
  system?	
  
•  What	
  else	
  is	
  important	
  about	
  them?	
  
How	
  to	
  Start?	
  
Refine,	
  Revise,	
  
Redistribute	
  
Review	
  with	
  
Project	
  Community	
  
DraT	
  Stories	
  
Use	
  in	
  Planning	
  
Suppose	
  you’re	
  just	
  star2ng	
  to	
  write	
  
stories.	
  How	
  and	
  where	
  do	
  you	
  start?	
  
The	
  following	
  process	
  is	
  oTen	
  useful:	
  
	
  
Does	
  this	
  look	
  familiar?	
  
It’s	
  a	
  straighoorward	
  interpreta2on	
  of	
  
a	
  standard	
  Agile	
  approach:	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
So	
  get	
  a	
  pen,	
  a	
  bunch	
  of	
  3”	
  x	
  5”	
  
index	
  cards	
  or	
  a	
  whiteboard,	
  
and	
  start	
  wri2ng!	
  	
  
Start	
  small	
  and	
  
g	
  r	
  a	
  d	
  u	
  a	
  l	
  l	
  y	
  
improve	
  your	
  
work.	
  
This	
  Sequence	
  of	
  Steps	
  Can	
  Help	
  You	
  Focus	
  Your	
  Story	
  Wri2ng.	
  
A	
  Procedure	
  for	
  Story	
  Telling	
  
1. Pick	
  any	
  area	
  of	
  the	
  product,	
  or	
  any	
  idea	
  from	
  your	
  charter.	
  
2. Iden-fy	
  the	
  main	
  actor	
  (role),	
  or	
  some	
  leading	
  actor	
  
•  What	
  would	
  this	
  person	
  do?	
  
•  What	
  does	
  this	
  person	
  care	
  about?	
  
•  Ignoring	
  the	
  users	
  interface,	
  what	
  does	
  this	
  person	
  try	
  to	
  achieve?	
  
Turn	
  the	
  answers	
  into	
  stories:	
  Role,	
  Ac2on,	
  Context	
  
3.  Does	
  a	
  story	
  depend	
  on	
  another,	
  unwriLen	
  story?	
  
Write	
  that	
  story.	
  (We	
  prefer	
  independent	
  stories,	
  but	
  not	
  at	
  the	
  cost	
  
of	
  missing	
  stories)	
  
4.  Is	
  there	
  some	
  overlap	
  between	
  stories?	
  
No	
  worries.	
  Ideally,	
  you	
  can	
  redistribute	
  their	
  purpose	
  
(to	
  make	
  them	
  independent);	
  if	
  not,	
  keep	
  them	
  as	
  is.	
  
Being	
  Adventurous	
  
Gather	
  a	
  group	
  of	
  people	
  and	
  brainstorm.	
  What	
  do	
  you	
  absolutely	
  have	
  to	
  do	
  to	
  
accomplish	
  the	
  project’s	
  mission?	
  (psst:	
  Try	
  this	
  without	
  the	
  developers	
  in	
  the	
  room,	
  
to	
  increase	
  the	
  focus	
  on	
  the	
  business	
  need)	
  
Something	
  doesn’t	
  feel	
  right?	
  Tear	
  up	
  some	
  cards	
  for	
  good	
  measure	
  
If	
  you	
  write	
  a	
  “wishful	
  thinking”	
  story:	
  What	
  would	
  the	
  soqware	
  have	
  to	
  support	
  
before	
  that	
  story	
  could	
  ever	
  be	
  considered?	
  
That’s	
  another	
  set	
  of	
  stories	
  
Ignore	
  the	
  plan,	
  write	
  everything	
  down	
  
Browse	
  the	
  table	
  of	
  contents	
  or	
  top-­‐level	
  headings	
  of	
  an	
  exisIng	
  spec,	
  recasIng	
  the	
  
funcIonality	
  as	
  stories	
  
Tips	
  
•  Review	
  your	
  charter	
  and/or	
  mission;	
  have	
  you	
  missed	
  anything	
  needed	
  to	
  support	
  it?	
  
•  Consider	
  the	
  project	
  community	
  –	
  users	
  and	
  stakeholders;	
  are	
  there	
  users	
  or	
  needs	
  
you	
  haven’t	
  addressed?	
  
•  Review	
  what	
  you’ve	
  done	
  with	
  someone	
  else	
  
•  Look	
  at	
  your	
  domain	
  vocabulary.	
  Stories	
  you’ve	
  already	
  wriMen	
  will	
  have	
  people	
  
(roles),	
  acIons,	
  and	
  objects.	
  Are	
  there	
  combinaIons	
  that	
  suggest	
  a	
  new	
  story	
  
you	
  need?	
  
•  Shuffle	
  your	
  stories	
  in	
  various	
  ways:	
  By	
  role,	
  by	
  when	
  it	
  happens,	
  by	
  priority,	
  by	
  
esImate.	
  Does	
  this	
  suggest	
  any	
  stories?	
  
•  Move	
  on.	
  If	
  you’re	
  not	
  used	
  to	
  wriIng	
  stories,	
  you	
  may	
  be	
  surprised	
  by	
  how	
  few	
  high-­‐
level	
  stories	
  you	
  need.	
  Maybe	
  it’s	
  Ime	
  to	
  move	
  on	
  to	
  stories	
  that	
  will	
  be	
  implemented	
  
soon,	
  working	
  out	
  details	
  such	
  as	
  business	
  rules	
  or	
  tests	
  
If	
  You	
  Get	
  Stuck	
  While	
  Wri2ng	
  Stories,	
  Try	
  These	
  Ideas:	
  
Access	
  Your	
  SoluIon	
  
•  Did	
  you	
  cover	
  the	
  most	
  important	
  interac2ons?	
  
•  Is	
  each	
  user-­‐triggered	
  story	
  an	
  end-­‐to-­‐end,	
  user-­‐level	
  task?	
  (This	
  is	
  someImes	
  known	
  
as	
  the	
  “Coffee	
  Break	
  Rule”:	
  Would	
  the	
  user	
  feel	
  like	
  it’s	
  a	
  good	
  Ime	
  to	
  take	
  a	
  coffee	
  
break	
  aqer	
  compleIng	
  this	
  task?)	
  
•  Do	
  your	
  story	
  headings	
  follow	
  the	
  Role–Ac2on–Context	
  format?	
  
•  Are	
  your	
  headings	
  short	
  (typically	
  five	
  or	
  fewer	
  words,	
  rarely	
  if	
  ever	
  ten	
  words)?	
  
•  Are	
  your	
  headings	
  technology-­‐	
  and	
  [user]	
  interface-­‐independent?	
  
•  Are	
  you	
  seeing	
  a	
  domain-­‐level	
  vocabulary	
  emerge?	
  
Summary	
  
•  There	
  are	
  a	
  variety	
  of	
  ways	
  to	
  organize	
  your	
  story	
  wri2ng.	
  
Think	
  about	
  your	
  charter,	
  about	
  product	
  areas,	
  about	
  roles,	
  
acIons,	
  and	
  contexts	
  
•  You’ve	
  pracIced	
  wriIng	
  stories	
  in	
  the	
  Role–Ac2on–Context	
  format	
  
•  You	
  can	
  use	
  the	
  self-­‐assessment	
  quesIons	
  to	
  help	
  you	
  asses	
  stories	
  
in	
  live	
  projects	
  
SECOND	
  BATCH	
  (REST	
  27	
  SLIDES)	
  
System	
  and	
  Boundary	
  
Consider	
  the	
  soTware	
  owned	
  and	
  run	
  by	
  a	
  small	
  doctor’s	
  office	
  to	
  manage	
  its	
  
appointments,	
  medical	
  records,	
  and	
  insurance	
  claims.	
  
Which	
  of	
  the	
  following	
  are	
  Inside	
  the	
  system	
  boundary	
  and	
  which	
  are	
  Outside?	
  
Inside	
   Outside	
  
1.  Recep2onist	
  (who	
  schedules	
  appointments)	
  
2.  Database	
  (on	
  which	
  appointments	
  and	
  
medical	
  records	
  are	
  stored)	
  
3.  Insurance	
  Claims	
  System	
  (to	
  which	
  our	
  system	
  transmits	
  
claims	
  via	
  a	
  standard	
  protocol)	
  
4.  The	
  Internet	
  (over	
  which	
  encrypted	
  informa2on	
  is	
  sent)	
  
CCL	
  –	
  Pillar,	
  System	
  and	
  Boundary	
  
Requirements	
  Always	
  Emerge	
  
It	
  is	
  impossible	
  to	
  know	
  all	
  requirements	
  in	
  advance	
  
“Thinking	
  harder”	
  and	
  “thinking	
  longer”	
  can	
  uncover	
  some	
  requirements,	
  but	
  
Emergent	
  requirements	
  are	
  those	
  are	
  users	
  cannot	
  iden2fy	
  in	
  advance	
  
Every	
  project	
  has	
  some	
  emergent	
  requirements	
  
So	
  What	
  Do	
  We	
  Do?	
  
•  We	
  Talk	
  More,	
  Write	
  Less	
  
–  But	
  write	
  some	
  if	
  you	
  need	
  to	
  
•  Show	
  SoTware	
  to	
  Users	
  
•  Acknowledge	
  that	
  Requirements	
  Emerge	
  
–  And	
  all	
  that	
  this	
  implies	
  
•  Progressively	
  Refine	
  Our	
  Understanding	
  of	
  the	
  Product	
  
–  And	
  express	
  this	
  progressive	
  refinement	
  in	
  the	
  product	
  backlog	
  
Stories	
  Make	
  Great	
  Backlog	
  Items	
  
Card	
  
•  Stories	
  are	
  tradiIonally	
  wriMen	
  
on	
  note	
  cards	
  
•  May	
  be	
  annotated	
  with	
  notes,	
  
esImates,	
  etc.	
  
Conversa2on	
  
•  Details	
  behind	
  the	
  story	
  come	
  
out	
  during	
  conversaIons	
  with	
  
product	
  owner	
  
Confirma2on	
  
•  Acceptance	
  tests	
  confirm	
  the	
  
story	
  was	
  coded	
  correctly	
  
Beat	
  the	
  System	
  
There’s	
  usually	
  a	
  beLer	
  role	
  name	
  than	
  “The	
  System.”	
  
You	
  may	
  be	
  tempted	
  to	
  have	
  a	
  role	
  “The	
  
System,”	
  e.g.,	
  System	
  Generates	
  Daily	
  Summary	
  
Report	
  
Instead,	
  try	
  describing	
  the	
  human	
  who	
  makes	
  
use	
  of	
  what	
  the	
  system	
  does:	
  Supervisor	
  Selects	
  
Daily	
  Summary	
  Report.	
  It’s	
  even	
  beMer	
  if	
  you	
  can	
  
idenIfy	
  what	
  the	
  human	
  is	
  going	
  to	
  do	
  with	
  the	
  
result:	
  Supervisor	
  Adjusts	
  Schedule	
  
Moving	
  from	
  the	
  domain	
  of	
  informaIon	
  
processed	
  in	
  the	
  user’s	
  head	
  back	
  to	
  user	
  acIons	
  
can	
  help	
  us	
  focus	
  beMer	
  on	
  the	
  user’s	
  true	
  needs	
  
(Don’t	
  force	
  it,	
  though	
  –	
  “The	
  System”	
  may	
  be	
  
the	
  most	
  expressive	
  name)	
  
Humans	
  Only	
  !!!	
  
A	
  role	
  can	
  correspond	
  to	
  a	
  human	
  or	
  an	
  automated	
  system.	
  
Should	
  roles	
  be	
  filled	
  only	
  by	
  humans,	
  or	
  can	
  we	
  name	
  
automated	
  systems?	
  
Roles	
  can	
  be	
  either:	
  
•  We	
  like	
  the	
  role	
  to	
  menIon	
  the	
  human	
  when	
  the	
  human	
  feels	
  
like	
  they’re	
  interacIng	
  with	
  the	
  system	
  (even	
  if	
  that	
  interacIon	
  
is	
  through	
  another	
  system	
  such	
  as	
  a	
  web	
  browser)	
  
•  But	
  consider	
  the	
  system	
  boundary	
  (context	
  diagram);	
  if	
  an	
  
automated	
  system	
  connects	
  to	
  our	
  system,	
  it’s	
  fine	
  to	
  name	
  that	
  
system	
  as	
  the	
  role	
  
•  For	
  example,	
  out	
  pet	
  sales	
  system	
  “talks”	
  to	
  the	
  bank’s	
  
automated	
  credit	
  card	
  processing	
  system,	
  so	
  Credit	
  Card	
  
Processor	
  would	
  be	
  a	
  fine	
  role	
  name	
  
Summary	
  
•  Roles	
  iden2fy	
  paLerns	
  of	
  usage;	
  different	
  roles	
  interact	
  
differently	
  with	
  the	
  system	
  
•  Don’t	
  forget	
  important	
  roles	
  such	
  as	
  operators,	
  
administrators,	
  and	
  auditors	
  
•  Deepen	
  your	
  understanding	
  of	
  the	
  user	
  by	
  considering	
  
their	
  goals,	
  domain	
  and	
  technology	
  experIse,	
  and	
  
frequency	
  of	
  use	
  
•  Use	
  adjec2ves	
  to	
  succinctly	
  idenIfy	
  roles	
  
(Go	
  beyond	
  User)	
  
•  Rather	
  than	
  using	
  System	
  as	
  a	
  role,	
  try	
  to	
  iden2fy	
  who	
  acts	
  
and	
  who	
  benefits	
  
Where	
  are	
  the	
  Details	
  
Process	
  mapping,	
  sketching,	
  and	
  storytes-ng	
  help	
  define	
  a	
  story’s	
  details.	
  
The	
  heart	
  of	
  a	
  story	
  is	
  the	
  high-­‐level	
  funcIonality	
  captured	
  in	
  the	
  
headline,	
  but	
  that	
  doesn’t	
  define	
  funcIonality	
  enough	
  to	
  just	
  go	
  
implement	
  it	
  
Implementa2on	
  requires	
  detailed	
  decisions	
  about	
  how	
  the	
  feature	
  
will	
  work,	
  and	
  how	
  we’ll	
  know	
  it’s	
  done	
  
User	
  stories	
  don’t	
  come	
  with	
  a	
  built-­‐in	
  method	
  for	
  these	
  decisions:	
  
Every	
  team	
  is	
  different,	
  and	
  there	
  are	
  many	
  approaches	
  
We’ll	
  briefly	
  explore	
  three	
  techniques	
  that	
  many	
  teams	
  have	
  found	
  
helpful:	
  Process	
  Mapping,	
  Sketching,	
  and	
  Storytes2ng	
  
Process	
  Mapping:	
  Follow	
  the	
  Object	
  
•  Triggers,	
  pulses,	
  and	
  audio	
  are	
  the	
  key	
  objects	
  
•  This	
  map	
  shows	
  how	
  a	
  trigger	
  goes	
  to	
  a	
  sound	
  generator,	
  and	
  its	
  audio	
  goes	
  to	
  a	
  mixer;	
  the	
  drum	
  
clock	
  generates	
  a	
  pulse	
  that	
  goes	
  through	
  a	
  paMern	
  sequencer	
  that	
  drives	
  drum	
  audio,	
  which	
  
goes	
  to	
  its	
  own	
  volume	
  control	
  and	
  the	
  mixer;	
  then	
  all	
  audio	
  goes	
  to	
  a	
  master	
  volume	
  control	
  
and	
  out	
  to	
  a	
  speaker	
  
•  One	
  way	
  to	
  figure	
  out	
  should	
  happen	
  is	
  to	
  follow	
  the	
  
object;	
  track	
  an	
  object	
  as	
  it	
  moves	
  through	
  –	
  and	
  is	
  
transformed	
  by	
  –	
  the	
  system	
  
•  Consider	
  an	
  electronic	
  keyboard	
  with	
  a	
  built-­‐in	
  rhythm	
  
secIon	
  where	
  you	
  can	
  set	
  the	
  drummer	
  up	
  with	
  a	
  loud	
  
bossa	
  nova,	
  then	
  play	
  your	
  tune	
  on	
  the	
  keyboard	
  
What	
  do	
  we	
  find	
  when	
  we	
  map	
  
the	
  objects?	
  
Triggers,	
  pulses,	
  and	
  audio	
  are	
  the	
  key	
  objects	
  
This	
  map	
  shows	
  how	
  a	
  trigger	
  goes	
  to	
  a	
  sound	
  generator,	
  and	
  its	
  audio	
  goes	
  to	
  a	
  mixer;	
  the	
  drum	
  
clock	
  generates	
  a	
  pulse	
  that	
  goes	
  through	
  a	
  paMern	
  sequencer	
  that	
  drives	
  drum	
  audio,	
  which	
  goes	
  
to	
  its	
  own	
  volume	
  control	
  and	
  the	
  mixer;	
  then	
  all	
  audio	
  goes	
  to	
  a	
  master	
  volume	
  control	
  and	
  out	
  to	
  
a	
  speaker	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
Modern	
  keyboards	
  work	
  more	
  in	
  the	
  digital	
  domain,	
  but	
  that’s	
  irrelevant	
  to	
  the	
  main	
  point;	
  in	
  
process	
  mapping	
  we	
  idenIfy	
  (and	
  devise)	
  the	
  moIon	
  and	
  transformaIon	
  of	
  objects	
  in	
  the	
  system	
  
Follow	
  an	
  objet	
  to	
  find	
  its	
  movement	
  through	
  &	
  transforma2on	
  by	
  the	
  system.	
  
Keyboard	
  
Sound	
  Generator	
  
Clock	
  
Drum	
  Sound	
  Generator	
  
PaLern	
  Sequencer	
  
Rhythm	
  Volume	
  
Mixer	
  
Overall	
  Volume	
  
Trigger	
  
Audio	
  
Pulse	
  
Audio	
  
Trigger	
  
Audio	
  
Audio	
  
Audio	
  
Speaker	
  (Audible	
  Sound)	
  
Watch	
  the	
  People	
  
Watching	
  people	
  gives	
  a	
  different	
  perspec2ve	
  on	
  the	
  
value	
  stream	
  (compared	
  to	
  focusing	
  on	
  key	
  objects	
  such	
  
as	
  transacIons).	
  
Focusing	
  on	
  people	
  lets	
  you	
  ask	
  them	
  several	
  key	
  quesIons:	
  
1.  What	
  do	
  you	
  do	
  in	
  the	
  normal	
  case?	
  (This	
  may	
  reveal	
  places	
  
the	
  system	
  can	
  ease	
  or	
  eliminate	
  work)	
  
2.  Are	
  these	
  special	
  cases	
  or	
  excep2ons	
  that	
  are	
  handled	
  
differently?	
  How	
  do	
  they	
  work?	
  (This	
  may	
  reveal	
  process	
  
flows	
  you	
  didn’t	
  know	
  about)	
  
3.  	
  What	
  else	
  do	
  you	
  do?	
  (This	
  may	
  reveal	
  key	
  objects	
  and	
  
opportuniIes	
  you	
  weren’t	
  aware	
  of)	
  
Objects	
  usually	
  carry	
  the	
  value,	
  
but	
  people	
  give	
  you	
  key	
  insights.	
  
A	
  map	
  of	
  the	
  flow	
  of	
  items	
  and	
  the	
  processes	
  that	
  work	
  with	
  
them	
  can	
  be	
  a	
  very	
  useful	
  tool.	
  
Remembrance	
  of	
  Things	
  Past	
  
Data-­‐intensive	
  systems	
  require	
  details	
  about	
  where	
  to	
  find	
  and	
  store	
  data.	
  
•  Objects	
  and	
  people	
  are	
  interesIng,	
  but	
  we	
  oqen	
  also	
  
need	
  to	
  map	
  the	
  data	
  that’s	
  been	
  remembered	
  by	
  
the	
  system	
  
•  For	
  data-­‐intensive	
  systems,	
  working	
  out	
  where	
  to	
  
find	
  data	
  is	
  a	
  key	
  challenge	
  
•  Some	
  feeds,	
  databases,	
  and	
  so	
  on	
  are	
  outside	
  and	
  
others	
  inside	
  the	
  system	
  boundary.	
  As	
  usual,	
  our	
  
context	
  maMers	
  
•  The	
  level	
  of	
  detail	
  depends	
  on	
  the	
  stage	
  
•  In	
  early	
  planning,	
  it’s	
  enough	
  to	
  know	
  “We	
  can	
  get	
  
that	
  data	
  somewhere.”	
  For	
  implementaIon,	
  we	
  
need	
  details	
  about	
  where	
  the	
  data	
  is	
  and	
  the	
  
transformaIons	
  it	
  needs	
  
StorytesIng	
  
Storytests	
  help	
  create	
  the	
  meaning	
  of	
  a	
  story.	
  
Storytests	
  are	
  tests	
  in	
  the	
  language	
  of	
  the	
  domain,	
  wriMen	
  to	
  
clarify	
  a	
  story	
  
They	
  aren’t	
  meant	
  to	
  be	
  exhausIve	
  but	
  to	
  communicate	
  a	
  
story’s	
  essence	
  
ImplementaIon	
  requires	
  details,	
  but	
  less	
  is	
  needed	
  to	
  
understand	
  and	
  esImate	
  stories	
  
Tests	
  are	
  not	
  ripe	
  apples	
  on	
  a	
  tree,	
  waiIng	
  to	
  be	
  plucked	
  
and	
  used;	
  rather,	
  creaIng	
  tests	
  helps	
  create	
  the	
  meaning	
  of	
  
the	
  story	
  
What	
  do	
  we	
  do	
  with	
  storytests?	
  Concrete	
  examples	
  are	
  
great	
  for	
  helping	
  discuss	
  stories,	
  and	
  are	
  prime	
  candidates	
  
for	
  automaIon	
  
Best	
  Ideas	
  
Where	
  do	
  you	
  get	
  your	
  best	
  ideas	
  for	
  func2onality?	
  
(Your	
  opinion;	
  there’s	
  no	
  single	
  right	
  answer)	
  
Building	
  models	
  of	
  users	
  and/or	
  ac2vi2es	
  
Watching	
  users	
  in	
  ac2on	
  (doing	
  their	
  work)	
  
Brainstorming,	
  alone	
  or	
  with	
  others	
  
Listening	
  to	
  what	
  users	
  tell	
  us	
  they	
  need	
  
Layout	
  Overall	
  System	
  
As	
  you	
  proceed,	
  your	
  pile	
  of	
  stories	
  will	
  grow	
  and	
  
you’ll	
  rip	
  up	
  some	
  stories	
  
It	
  helps	
  to	
  organize	
  the	
  cards	
  according	
  to	
  some	
  
criterion	
  
•  Theme	
  
•  Category	
  
•  Flow	
  
•  NavigaIon	
  
•  EvoluIonary	
  Path	
  
•  Release	
  or	
  IteraIon	
  
WriIng	
  headings	
  according	
  to	
  the	
  Role-­‐Ac2on-­‐
Context	
  formula	
  helps	
  a	
  lot	
  here	
  
You	
  can	
  also	
  use	
  paper	
  mockups	
  of	
  screens	
  and	
  flow	
  
Organize	
  your	
  stories	
  to	
  
reveal	
  the	
  big	
  picture	
  
The	
  example	
  on	
  the	
  right	
  shows	
  how	
  a	
  user	
  would	
  
navigate	
  in	
  the	
  new	
  applicaIon	
  
Priori2zing	
  the	
  
Product	
  Backlog	
  
The	
  Product	
  Backlog	
  Iceberg	
  
A	
  descripIon	
  of	
  desired	
  
funcIonality	
  told	
  from	
  the	
  
perspecIve	
  of	
  the	
  user	
  or	
  
customer	
  
User	
  Story	
  
A	
  large	
  user	
  story	
  
Epic	
  
A	
  collecIon	
  of	
  related	
  
user	
  stories	
  
Theme	
  
How	
  Much	
  Detail?	
  
Process	
  
Fixed	
  
Input	
  
Must	
  be	
  described	
  in	
  just	
  
enough	
  detail	
  to	
  be	
  turned	
  into	
  
the	
  output	
  by	
  the	
  process	
  
Output	
  
Fixed	
  
Just-­‐in-­‐2me	
  
just-­‐enough	
  
What	
  Makes	
  a	
  Good	
  Story?	
  
Independent	
  I	
  
Negotiable	
  N	
  
Valuable	
  V	
  
Estimatable	
  E	
  
Sized Appropriately	
  S	
  
Testable	
  T	
  
•  Dependencies	
  lead	
  to	
  problems	
  esImaIng	
  and	
  prioriIzing	
  
•  Can	
  ideally	
  select	
  a	
  story	
  to	
  work	
  on	
  without	
  pulling	
  in	
  18	
  other	
  stories	
  
Independent	
  
•  Stories	
  are	
  not	
  contracts	
  
•  Leave	
  or	
  imply	
  some	
  flexibility	
  
Nego2able	
  
•  To	
  users	
  or	
  customers,	
  not	
  developers	
  
•  Rewrite	
  developer	
  stories	
  to	
  reflect	
  value	
  to	
  users	
  or	
  customers	
  
Valuable	
  
•  Because	
  plans	
  are	
  based	
  on	
  user	
  stories,	
  we	
  need	
  to	
  be	
  able	
  to	
  esImate	
  them	
  
Es2matable	
  
•  Small	
  enough	
  to	
  complete	
  in	
  one	
  sprint	
  if	
  you’re	
  about	
  to	
  work	
  on	
  it	
  
•  Bigger	
  if	
  further	
  off	
  on	
  the	
  horizon	
  
Sized	
  Appropriately	
  
•  Testable	
  so	
  that	
  you	
  have	
  a	
  easy,	
  binary	
  way	
  of	
  knowing	
  whether	
  a	
  story	
  is	
  finished	
  
•  Done	
  or	
  not	
  done;	
  no	
  “parIally	
  finished”	
  or	
  “done	
  except”	
  
Testable	
  
I	
  
N	
  
V	
  
E	
  
S	
  
T	
  
PrioriIzing	
  the	
  Product	
  Backlog	
  
Three	
  Steps	
  
Organize	
  
Needs	
  into	
  
Themes	
  
Priori2ze	
  
Themes	
  
Assess	
  
Importance	
  of	
  
Each	
  Theme	
  
1	
  
2	
   3	
  
Why	
  Themes?	
  
OTen	
  Individual	
  Stories	
  Cannot	
  be	
  Priori2zed	
  Against	
  Each	
  Other	
  
•  The	
  ‘A’	
  key	
  or	
  the	
  ‘E’	
  key?	
  
•  Tables	
  or	
  Undo?	
  
•  The	
  leq	
  front	
  wheel	
  or	
  the	
  right	
  front	
  wheel?	
  
•  Increased	
  leg	
  room	
  or	
  a	
  larger	
  engine?	
  
What’s	
  More	
  Important	
  
in	
  a	
  Word	
  Processor?	
  
What’s	
  More	
  Important	
  
on	
  a	
  Car?	
  
1	
   2	
  
Eliminate	
  redundant	
  stories	
  
Write	
  each	
  story	
  on	
  its	
  own	
  
note	
  card	
  or	
  post-­‐it	
  
Label	
  each	
  group	
  with	
  a	
  theme	
  name	
  
Group	
  similar	
  stories	
  
Review	
  the	
  results	
  
If	
  you	
  have	
  a	
  lot	
  of	
  themes	
  or	
  
have	
  small	
  themes,	
  consider	
  making	
  
themes	
  of	
  themes	
  
Steps	
  for	
  Organizing	
  into	
  Themes	
  
If	
  you	
  started	
  with	
  a	
  story-­‐wri2ng	
  workshop,	
  you	
  may	
  already	
  have	
  themes.	
  
Affinity	
  Grouping	
  
Distribute	
  cards	
  equally	
  to	
  all	
  par2cipants	
  
•  No	
  parIcular	
  paMern	
  to	
  how	
  you	
  do	
  this	
  
Someone	
  reads	
  a	
  card	
  and	
  places	
  in	
  on	
  wall	
  /	
  table	
  
•  Others	
  look	
  for	
  similar	
  cards	
  and	
  add	
  them	
  to	
  it	
  
Next	
  person	
  reads	
  a	
  card,	
  places	
  it,	
  and	
  others	
  place	
  similar	
  cards	
  with	
  it	
  
Con2nue	
  repea2ng	
  un2l	
  out	
  of	
  cards	
  
User	
  Story	
  Template	
  –	
  1	
  
As	
  a	
  [user	
  role]	
  I	
  want	
  to	
  [goal]	
  	
  
•  So	
  I	
  can	
  [reason]	
  
•  As	
  a	
  [type	
  of	
  user]	
  I	
  want	
  to	
  [perform	
  some	
  task]	
  
so	
  that	
  I	
  can	
  [reach	
  some	
  goal]	
  
Example:	
  	
  
•  As	
  a	
  registered	
  user	
  I	
  want	
  to	
  log	
  in	
  
•  So	
  I	
  can	
  access	
  subscriber-­‐only	
  content	
  
User	
  Story	
  Template	
  –	
  2	
  
•  Who	
  (user	
  role)	
  	
  
•  What	
  (goal)	
  
•  Why	
  (reason)	
  
– Gives	
  clarity	
  as	
  to	
  why	
  a	
  feature	
  is	
  useful	
  
– Can	
  influence	
  how	
  a	
  feature	
  should	
  funcIon	
  
– Can	
  give	
  you	
  ideas	
  for	
  other	
  useful	
  features	
  	
  
– That	
  support	
  the	
  user's	
  goals	
  
THANK	
  YOU!	
  

Contenu connexe

Tendances

How to Break the Requirements into User Stories
How to Break the Requirements into User StoriesHow to Break the Requirements into User Stories
How to Break the Requirements into User StoriesShriKant Vashishtha
 
Agile User Stories
Agile User StoriesAgile User Stories
Agile User Storieskahgeh75
 
Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Easy Agile
 
Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)one80
 
Introducing Agile User Stories
Introducing Agile User StoriesIntroducing Agile User Stories
Introducing Agile User StoriesRam Srivastava
 
Strategies to split user stories
Strategies to split user storiesStrategies to split user stories
Strategies to split user storiescpolc
 
User Stories for Agile Requirements
User Stories for Agile RequirementsUser Stories for Agile Requirements
User Stories for Agile RequirementsMike Cohn
 
How do you get more out of your User Stories?
How do you get more out of your User Stories?How do you get more out of your User Stories?
How do you get more out of your User Stories?Thoughtworks
 
Introduction To User Stories For Agile Product Development
Introduction To User Stories For Agile Product DevelopmentIntroduction To User Stories For Agile Product Development
Introduction To User Stories For Agile Product Developmentzenpdm
 
"How to write better User Stories" por @jrhuerta
"How to write better User Stories" por @jrhuerta"How to write better User Stories" por @jrhuerta
"How to write better User Stories" por @jrhuertawebcat
 
Guide to User Story Creation
Guide to User Story CreationGuide to User Story Creation
Guide to User Story CreationJoshua Render
 
How To Know Your Stories Are At The Right Level Of Detail
How To Know Your Stories Are At The Right Level Of DetailHow To Know Your Stories Are At The Right Level Of Detail
How To Know Your Stories Are At The Right Level Of DetailRussell Pannone
 
User story mapping workshop slideshare
User story mapping workshop slideshareUser story mapping workshop slideshare
User story mapping workshop slidesharePankaj Kanchankar
 

Tendances (20)

User stories in agile software development
User stories in agile software developmentUser stories in agile software development
User stories in agile software development
 
How to Break the Requirements into User Stories
How to Break the Requirements into User StoriesHow to Break the Requirements into User Stories
How to Break the Requirements into User Stories
 
User Story
User StoryUser Story
User Story
 
Agile User Stories
Agile User StoriesAgile User Stories
Agile User Stories
 
Epics and User Stories
Epics and User StoriesEpics and User Stories
Epics and User Stories
 
Effective user stories for your agile or Scrum team
Effective user stories for your agile or Scrum teamEffective user stories for your agile or Scrum team
Effective user stories for your agile or Scrum team
 
Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Workshop - Writing Good User Stories
Workshop - Writing Good User Stories
 
Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)
 
Introducing Agile User Stories
Introducing Agile User StoriesIntroducing Agile User Stories
Introducing Agile User Stories
 
Strategies to split user stories
Strategies to split user storiesStrategies to split user stories
Strategies to split user stories
 
User Stories
User StoriesUser Stories
User Stories
 
User Stories for Agile Requirements
User Stories for Agile RequirementsUser Stories for Agile Requirements
User Stories for Agile Requirements
 
User Stories
User StoriesUser Stories
User Stories
 
User stories
User storiesUser stories
User stories
 
How do you get more out of your User Stories?
How do you get more out of your User Stories?How do you get more out of your User Stories?
How do you get more out of your User Stories?
 
Introduction To User Stories For Agile Product Development
Introduction To User Stories For Agile Product DevelopmentIntroduction To User Stories For Agile Product Development
Introduction To User Stories For Agile Product Development
 
"How to write better User Stories" por @jrhuerta
"How to write better User Stories" por @jrhuerta"How to write better User Stories" por @jrhuerta
"How to write better User Stories" por @jrhuerta
 
Guide to User Story Creation
Guide to User Story CreationGuide to User Story Creation
Guide to User Story Creation
 
How To Know Your Stories Are At The Right Level Of Detail
How To Know Your Stories Are At The Right Level Of DetailHow To Know Your Stories Are At The Right Level Of Detail
How To Know Your Stories Are At The Right Level Of Detail
 
User story mapping workshop slideshare
User story mapping workshop slideshareUser story mapping workshop slideshare
User story mapping workshop slideshare
 

En vedette

How To Write User Stories
How To Write User StoriesHow To Write User Stories
How To Write User StoriesAaron Corcoran
 
Crafting Great-User-Stories for CapitalCamp DC
Crafting Great-User-Stories for CapitalCamp DCCrafting Great-User-Stories for CapitalCamp DC
Crafting Great-User-Stories for CapitalCamp DCForum One
 
Organizational JAD Session Workshops - Agenda
Organizational JAD Session Workshops - AgendaOrganizational JAD Session Workshops - Agenda
Organizational JAD Session Workshops - AgendaGregory Weiss
 
Create User Stories that Don't Suck!
Create User Stories that Don't Suck!Create User Stories that Don't Suck!
Create User Stories that Don't Suck!David Hawks
 
User Story Mapping, Discover the whole story
User Story Mapping, Discover the whole storyUser Story Mapping, Discover the whole story
User Story Mapping, Discover the whole storyJeff Patton
 
Agile Development - Are you building the right thing ? (Follow the value)
Agile Development - Are you building the right thing ? (Follow the value)Agile Development - Are you building the right thing ? (Follow the value)
Agile Development - Are you building the right thing ? (Follow the value)Martin Nymann Vinther
 
Agile teams advocating quality when collaboration becomes groupthink qa&...
Agile teams  advocating quality when collaboration becomes groupthink qa&...Agile teams  advocating quality when collaboration becomes groupthink qa&...
Agile teams advocating quality when collaboration becomes groupthink qa&...GerieOwen
 
Using the Improvement Kata for retrospectives
Using the Improvement Kata for retrospectivesUsing the Improvement Kata for retrospectives
Using the Improvement Kata for retrospectivesNick Oostvogels
 
Prioritizing Your Product Backlog
Prioritizing Your Product BacklogPrioritizing Your Product Backlog
Prioritizing Your Product BacklogMike Cohn
 
THE GOLDEN CIRCLE OF AGILE {MINDSET}
THE GOLDEN CIRCLE OF AGILE {MINDSET}THE GOLDEN CIRCLE OF AGILE {MINDSET}
THE GOLDEN CIRCLE OF AGILE {MINDSET}nikos batsios
 
Business Agility20161124-v2
Business Agility20161124-v2Business Agility20161124-v2
Business Agility20161124-v2Franky Redant
 
Improv: The Funny Thing about Agile
Improv: The Funny Thing about AgileImprov: The Funny Thing about Agile
Improv: The Funny Thing about AgileAgileDenver
 
What is-agile henrik kniberg august 20 2013
What is-agile henrik kniberg august 20 2013What is-agile henrik kniberg august 20 2013
What is-agile henrik kniberg august 20 2013Richard P. Doerer
 
User Story Slicing - easy way to split user stories
User Story Slicing - easy way to split user stories  User Story Slicing - easy way to split user stories
User Story Slicing - easy way to split user stories Arto Eskelinen
 
As user, I hate user stories
As user, I hate user storiesAs user, I hate user stories
As user, I hate user storiesmatteo cavucci
 
Better User Stories by Matteo Cavucci
Better User Stories by Matteo CavucciBetter User Stories by Matteo Cavucci
Better User Stories by Matteo CavucciBosnia Agile
 
User Story Workshop
User Story WorkshopUser Story Workshop
User Story WorkshopPeter Antman
 
ERD Case scenario
ERD Case scenarioERD Case scenario
ERD Case scenariomarkthesuth
 
User Stories for your Product Backlog
User Stories for your Product BacklogUser Stories for your Product Backlog
User Stories for your Product Backlogrwirdemann
 
03. Business Information Requirements Template
03. Business Information Requirements Template03. Business Information Requirements Template
03. Business Information Requirements TemplateAlan D. Duncan
 

En vedette (20)

How To Write User Stories
How To Write User StoriesHow To Write User Stories
How To Write User Stories
 
Crafting Great-User-Stories for CapitalCamp DC
Crafting Great-User-Stories for CapitalCamp DCCrafting Great-User-Stories for CapitalCamp DC
Crafting Great-User-Stories for CapitalCamp DC
 
Organizational JAD Session Workshops - Agenda
Organizational JAD Session Workshops - AgendaOrganizational JAD Session Workshops - Agenda
Organizational JAD Session Workshops - Agenda
 
Create User Stories that Don't Suck!
Create User Stories that Don't Suck!Create User Stories that Don't Suck!
Create User Stories that Don't Suck!
 
User Story Mapping, Discover the whole story
User Story Mapping, Discover the whole storyUser Story Mapping, Discover the whole story
User Story Mapping, Discover the whole story
 
Agile Development - Are you building the right thing ? (Follow the value)
Agile Development - Are you building the right thing ? (Follow the value)Agile Development - Are you building the right thing ? (Follow the value)
Agile Development - Are you building the right thing ? (Follow the value)
 
Agile teams advocating quality when collaboration becomes groupthink qa&...
Agile teams  advocating quality when collaboration becomes groupthink qa&...Agile teams  advocating quality when collaboration becomes groupthink qa&...
Agile teams advocating quality when collaboration becomes groupthink qa&...
 
Using the Improvement Kata for retrospectives
Using the Improvement Kata for retrospectivesUsing the Improvement Kata for retrospectives
Using the Improvement Kata for retrospectives
 
Prioritizing Your Product Backlog
Prioritizing Your Product BacklogPrioritizing Your Product Backlog
Prioritizing Your Product Backlog
 
THE GOLDEN CIRCLE OF AGILE {MINDSET}
THE GOLDEN CIRCLE OF AGILE {MINDSET}THE GOLDEN CIRCLE OF AGILE {MINDSET}
THE GOLDEN CIRCLE OF AGILE {MINDSET}
 
Business Agility20161124-v2
Business Agility20161124-v2Business Agility20161124-v2
Business Agility20161124-v2
 
Improv: The Funny Thing about Agile
Improv: The Funny Thing about AgileImprov: The Funny Thing about Agile
Improv: The Funny Thing about Agile
 
What is-agile henrik kniberg august 20 2013
What is-agile henrik kniberg august 20 2013What is-agile henrik kniberg august 20 2013
What is-agile henrik kniberg august 20 2013
 
User Story Slicing - easy way to split user stories
User Story Slicing - easy way to split user stories  User Story Slicing - easy way to split user stories
User Story Slicing - easy way to split user stories
 
As user, I hate user stories
As user, I hate user storiesAs user, I hate user stories
As user, I hate user stories
 
Better User Stories by Matteo Cavucci
Better User Stories by Matteo CavucciBetter User Stories by Matteo Cavucci
Better User Stories by Matteo Cavucci
 
User Story Workshop
User Story WorkshopUser Story Workshop
User Story Workshop
 
ERD Case scenario
ERD Case scenarioERD Case scenario
ERD Case scenario
 
User Stories for your Product Backlog
User Stories for your Product BacklogUser Stories for your Product Backlog
User Stories for your Product Backlog
 
03. Business Information Requirements Template
03. Business Information Requirements Template03. Business Information Requirements Template
03. Business Information Requirements Template
 

Similaire à Composing User Stories - Beginners Guide

User-Story_Primer_Agile_Methodology_.pdf
User-Story_Primer_Agile_Methodology_.pdfUser-Story_Primer_Agile_Methodology_.pdf
User-Story_Primer_Agile_Methodology_.pdfSLowe7
 
The Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringThe Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringVanessa Turke
 
Scrum - Requirements and User Stories
Scrum - Requirements and User StoriesScrum - Requirements and User Stories
Scrum - Requirements and User StoriesUpekha Vandebona
 
User-Story-Primer.pdf
User-Story-Primer.pdfUser-Story-Primer.pdf
User-Story-Primer.pdfAnurag Behera
 
7-Epic, Story and Bug Reporting(updated).pptx
7-Epic, Story and Bug Reporting(updated).pptx7-Epic, Story and Bug Reporting(updated).pptx
7-Epic, Story and Bug Reporting(updated).pptxBishalKarki33
 
User stories — how to cook a cat?
User stories — how to cook a cat?User stories — how to cook a cat?
User stories — how to cook a cat?Vladimir Tarasov
 
Achieving better requirements in agile
Achieving better requirements in agileAchieving better requirements in agile
Achieving better requirements in agileCherifa Mansoura
 
Short Descriptions Shouldn't Be a Tall Order: Writing Effective Short Descrip...
Short Descriptions Shouldn't Be a Tall Order: Writing Effective Short Descrip...Short Descriptions Shouldn't Be a Tall Order: Writing Effective Short Descrip...
Short Descriptions Shouldn't Be a Tall Order: Writing Effective Short Descrip...IXIASOFT
 
Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...Ravi Tadwalkar
 
Agile Network India | Effective User story writing and story mapping approach
Agile Network India | Effective User story writing and story mapping approachAgile Network India | Effective User story writing and story mapping approach
Agile Network India | Effective User story writing and story mapping approachAgileNetwork
 
Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...AgileNetwork
 
Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...AgileNetwork
 

Similaire à Composing User Stories - Beginners Guide (20)

Project scope preparation
Project scope preparationProject scope preparation
Project scope preparation
 
User-Story_Primer_Agile_Methodology_.pdf
User-Story_Primer_Agile_Methodology_.pdfUser-Story_Primer_Agile_Methodology_.pdf
User-Story_Primer_Agile_Methodology_.pdf
 
Story of user story
Story of user storyStory of user story
Story of user story
 
The Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringThe Art and Science of Requirements Gathering
The Art and Science of Requirements Gathering
 
Story Cards
Story CardsStory Cards
Story Cards
 
All about User story
All about User storyAll about User story
All about User story
 
Scrum - Requirements and User Stories
Scrum - Requirements and User StoriesScrum - Requirements and User Stories
Scrum - Requirements and User Stories
 
User Stories Training
User Stories TrainingUser Stories Training
User Stories Training
 
User-Story-Primer.pdf
User-Story-Primer.pdfUser-Story-Primer.pdf
User-Story-Primer.pdf
 
7-Epic, Story and Bug Reporting(updated).pptx
7-Epic, Story and Bug Reporting(updated).pptx7-Epic, Story and Bug Reporting(updated).pptx
7-Epic, Story and Bug Reporting(updated).pptx
 
Gateway to Agile: Agile Requirements
Gateway to Agile: Agile Requirements Gateway to Agile: Agile Requirements
Gateway to Agile: Agile Requirements
 
User stories — how to cook a cat?
User stories — how to cook a cat?User stories — how to cook a cat?
User stories — how to cook a cat?
 
Achieving better requirements in agile
Achieving better requirements in agileAchieving better requirements in agile
Achieving better requirements in agile
 
Agile Story Writing
Agile Story WritingAgile Story Writing
Agile Story Writing
 
Short Descriptions Shouldn't Be a Tall Order: Writing Effective Short Descrip...
Short Descriptions Shouldn't Be a Tall Order: Writing Effective Short Descrip...Short Descriptions Shouldn't Be a Tall Order: Writing Effective Short Descrip...
Short Descriptions Shouldn't Be a Tall Order: Writing Effective Short Descrip...
 
Agile Story Writing
Agile Story WritingAgile Story Writing
Agile Story Writing
 
Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...
 
Agile Network India | Effective User story writing and story mapping approach
Agile Network India | Effective User story writing and story mapping approachAgile Network India | Effective User story writing and story mapping approach
Agile Network India | Effective User story writing and story mapping approach
 
Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...
 
Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...
 

Plus de Raja Soundaramourty

Plus de Raja Soundaramourty (11)

Load balancer
Load balancerLoad balancer
Load balancer
 
Continuous Build To Continuous Release - Experience
Continuous Build To Continuous Release - ExperienceContinuous Build To Continuous Release - Experience
Continuous Build To Continuous Release - Experience
 
Try docker
Try dockerTry docker
Try docker
 
Zone of Innovation
Zone of InnovationZone of Innovation
Zone of Innovation
 
Product Ecosystem Of Cloud Native Applications
Product Ecosystem Of Cloud Native ApplicationsProduct Ecosystem Of Cloud Native Applications
Product Ecosystem Of Cloud Native Applications
 
Sprint bootstrap 1.0
Sprint bootstrap 1.0Sprint bootstrap 1.0
Sprint bootstrap 1.0
 
Being vs Doing agile
Being vs Doing agileBeing vs Doing agile
Being vs Doing agile
 
Professional Networking overview
Professional Networking overviewProfessional Networking overview
Professional Networking overview
 
Git Concepts, Commands and Connectivity
Git Concepts, Commands and ConnectivityGit Concepts, Commands and Connectivity
Git Concepts, Commands and Connectivity
 
Knowledge library
Knowledge libraryKnowledge library
Knowledge library
 
Agile Metrics Driven Management
Agile Metrics Driven ManagementAgile Metrics Driven Management
Agile Metrics Driven Management
 

Dernier

Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGSIVASHANKAR N
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 

Dernier (20)

Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 

Composing User Stories - Beginners Guide

  • 1. Composing  User  Stories   Raja  .  S   July  2014  
  • 2. We  Are  Here  !!!   Implementa2on   Story  Refinement   Coding   Tes2ng   Planning   Storytelling   Chartering   Project  happen  in  a  context,  created  by  their  charter   Once  you  have  some  stories,  you  can  plan   with  them   Storytelling,  the  art  of  composing  user  stories,  is  the   focus  of  this  album   Implementa2on  involves  some  story-­‐related  acIviIes  in   refinement  and  tes2ng.  We’ll  touch   on  them  slightly,  but  they’re  mostly  out  of  scope   for  this  album   This  drawing  is  linear,  but  real  projects  move  more  freely   among  these  acIviIes  
  • 3. What  is  in  a  ChaMer  ?   A  Project’s  Charter  Drives  the  Stories  You  will  Create.   Whether  formal  or  informal,  a  charter  establishes  clear  expecta2ons  between  a   sponsor  and  a  team   The  charter  answers  key  quesIons  that  set  the  context:   •  Vision:  The  ulImate  end-­‐state  that  will  saIsfy  the  sponsor   •  Mission:  The  way  in  which  we  propose  to  accomplish  the  vision   •  Principles:  What  values  guide  the  team’s  behavior?   •  Objec2ves:  What  are  the  measurable  ,  external  outcomes  for  which  the   sponsor  is  funding  the  project.  What  tests  will  tell  us  if  those  objecIves  were   met?   •  Boundaries:  What  is  the  project  responsible  for?  What  comes  in  or  goes  out?   What  are  the  key  events?   •  CommiLed  Resources:  What  resources  will  be  made  available  to   the  team?   •  Authorizing  Players:  Who  is  sponsoring  the  work?  Who  will  judge  it?  
  • 4. Telling  Stories   with  the   Product  Backlog  
  • 5. Requirements  =  CommunicaIon  Tool   •  Can  be  well  thought  through,  reviewed  and  edited   •  Provide  a  permanent  record   •  Are  easily  shared  with  groups  of  people   •  Time  consuming  to  produce     •  May  be  less  relevant  or  superseded  over  Ime   •  Can  be  easily  misinterpreted   WriLen  Requirements     •  Instantaneous  feedback  and  clarificaIon   •  InformaIon-­‐packed  exchange   •  Easier  to  clarify  and  gain  common  understanding   •  Easily  adapted  to  any  new  informaIon  known  at  the  Ime   •  Can  spark  ideas  about  problems  and  opportuniIes   Verbal  Requirements  
  • 6. User  Stories   Seek  to  Combine  the  Strengths  of  WriLen  and  Verbal  Communica2on,   Where  Possible  Supported  by  a  Picture.   *  Kent  Beck  Coined  the  Term  User  Stories  in  Extreme  Programming  Explained  1st  EdiIon,  1999.  
  • 7. What  is  a  User  Story?   A  concise,  wriLen  descrip2on  of  a  piece  of  func2onality  that  will  be  valuable  to  a   user  (or  owner)  of  the  soTware   Stories  are:   •  User’s  needs   •  Product  descripIons   •  Planning  items   •  Tokens  for  a  conversaIon   •  Mechanisms  for  deferring  conversaIon  
  • 8. User  Story  –  Ambiguity   Yes,  it  is.  You’ll  hear  “User  Story”  (or  “story”)  used  to  talk  about  at  least  three  things:   •  The  feature  itself  (whether  implemented  yet  or  not)   •  The  “headline”  wriMen  on  a  card   •  The  headline,  details,  discussions,  and  key  tests  that  together  describe  a  feature   The  context  will  tell  you  which  meaning  of  story  is  in  play.   Isn’t  the  Term   “User  Story”   Ambiguous?  
  • 9. A  user  story  describes  a  s2mulus;  the  system  produces  results  in  response  to  that  s2mulus   •  All  stories  have  the  same  basic  structure:  Heading  (Itle)  and  details   User  Story  –  Basic  Structure   Heading   Details   User Logs in with Expired License Take user to home page Disable all links and buttons Add prominent renewal link that takes user to the Store – Ask for exact text and location
  • 10. The  Heading:  Role–Ac2on–Context   The  “Role–Ac2on–Context”  formula  works  very  well  for  wri2ng  story  headings  that  reflect  events   and  responses:                   The  words  in  the  heading  create  and  reflect  a  domain  vocabulary:   •  The  people  using  our  system   •  How  they  can  act   •  What  they  can  act  upon   Heading  –  RAC  Style   Someone  or  something   that  sends  a  s2mulus   into  a  system  boundary   How  the  role  triggers  the   s2mulus.  Usually  as  simple   as  verb  +  object   Op2onal:  Where  or  when   the  ac2on  applies   Role   User Logs in with Expired License Ac2on   Context  
  • 11. Good  Headings   Which  are  Good  Headings?   Which  of  the  following  fit  the  Role–Ac2on–Context  formula  (Good)  and  which  Do  Not?   Good   Bad   1.  “The  system  shall  process  Visa™  cards.”   2.  ATM  Customer:  Iden2fies  self   System:  Presents  op2ons  for  deposit,  withdrawal,  or  fast  cash   ATM  Customer:  Selects  fast  cash   etc.   3.  “Student  Schedules  a  Course”   4.  “Grading”  
  • 12. As  a  type-­‐of-­‐user,  I  want  to  ac-on  so  that  business-­‐goal   DescripIon  –  Connextra  Style   User  stories  replace  detailed  requirements  and  specificaIons  with  just  enough   detail.  Just  enough  for  what?  For  esImaIng,  planning,  understanding,  discovering,   and  evolving  the  system,  and  basically,  moving  forward   The  details  elaborate  on  the  heading.  They  describe  the  sImulus,  the  response,   and  any  specifics  that  maMer  to  the  customer.  The  details  shouldn’t  be  technical,   nor  should  they  spell  out  development  tasks  or  guide  implementaIon   The  Details  Elaborate  on  the  Heading   You  can  use  any  simple  means  to  write  the  details,  as  long  as  you  get  your   point  across:   •  A  few  phrases   •  Bullet  points   •  Diagrams   •  Hand-­‐drawn  pictures   “Wri2ng  the  Stories  is  Not  the  Point,  Communica2ng  is  the  Point”   –  Kent  Beck  and  Mar-n  Fowler  
  • 13. When  Do  We  Get  the  Details   •  During  planning  sessions   •  Even  deeper  conversaIons  about  other  details  as  they  begin  to   implement  the  story   •  Decisions,  details,  and  specificaIons  can  be  captured  in  automated   tests,  as  a  picture,  on  a  whiteboard,  or  by  any  other  useful  means   •  Key  Principle:  "Defer  decisions  unIl  the  last  responsible  moment.”  
  • 14. Pre-­‐requisites   Some  details  are   clearly  needed   earlier  than  others.  
  • 15. Summary   User  Stories  Provide  a  Lightweight  Way  to  Manage  Requirements.   •  “A  user  story  is  a  chunk  of  funcIonality  (some  people  use  the  word   feature)  that  is  of  value  to  the  customer.”   •  A  story  card  consists  of  a  heading  (Itle)  and  details   •  The  formula  Role–AcIon–Context  can  help  you  write  effecIve   story  headings   •  A  story  is  useful  even  before  we  work  out  its  details:  “A  user  story  is   a  promissory  note  for  a  conversaIon.”  (Cockburn)   •  “CCC:  Card,  ConversaIon,  ConfirmaIon”  (Jeffries)  
  • 16. What  Makes  a  User  Story  Good   A  Story  Should  be   •  Understandable  to  customers  and  developers   •  Testable   •  Valuable  to  the  customer   •  Small  enough  so  that  the  programmers  can  build  half  a  dozen  in   an  iteraIon   –  Kent  Beck  and  Mar-n  Fowler  
  • 17. INVEST  –  Acronym   Bill  Wake  devised  the  acronym  INVEST  as  a  reminder  of  the  properIes  of  good  stories   Independent   Nego2able  (and  Nego2ated)   Valuable   Es2matable   Small   Testable   Stories  ideally  describe  non-­‐overlapping  bits  of  funcIonality,  possible  to  implement  in  any  order   The  customer,  developers,  and  testers  can  agree  on  what  the  story  means  precisely  enough  that  tests  can  be  created   Stories  have  flexibility;  there’s  room  for  a  collaboraIve  definiIon  of  success   Stories’  value  makes  sense  from  a  customer  or  end  user’s  perspecIve.  They’re  not  described  in  terms  of  a  developer’s  tasks   The  team  can  esImate  the  difficulty  of  the  story  (at  least  to  a  rough  level)   The  story  is  small  enough  for  its  purpose.  For  implementaIon,  it  can  be  completed  in  less  than  an  iteraIon.   For  longer  term  planning,  the  story  is  larger  
  • 18. What  Characterizes  Great  User  Story   Essen2al   The  user  story  describes  something  that  helps  achieve  essenIal  management  objecIves   External   The  user  story  perspecIve  views  the  system  as  a  black  box,  describing  what  is  to  happen,   not  how  it  happens   Instantaneous   The  user  story  happens  at  an  instant  in  Ime  rather  than  over  a  duraIon  of  Ime   Detectable   The  user  story  has  an  explicit  sImulus  (acIon-­‐  or  Ime-­‐based)  
  • 19. EssenIal  Stories   •  Essen2al  user  stories  provide  value  to  sponsors   •  What  provides  value?  SoTware  that  helps  achieve  a  project  charter's  vision,  mission,   or  key  objec2ves   •  Sponsors  ul2mately  care  about  effects,  the  changes  in  the  outside  world  resul2ng  from   the  system   •  Here  is  the  vision  statement  project  charter:   §  Rapidly  spawned,  knowledge  workers,  skilled  in  the  fundamentals  of  collaboraIve  learning   §  User  stories  that  contribute  to  achieving  this  vision  are  essenIal.  Thus,  knowledge  workers   adds  eIqueMes  of  collaboraIon  in  enterprise  to  his  learning  plan  is  essenIal  because  it  lets   Knowledge  workers  teach  themselves     §  The  story  knowledge  workers  adds  eIqueMes  of  poetry  learning  to  his  learning  plan  is  not   essenIal  to  the  vision.  In  other  words,  it  is  not  currently  something  valued  by  sponsors  
  • 20. External  Stories   •  User  stories  that  are  external  to  a  system  boundary  focus  on  organiza2onal  and  business   concerns  rather  than  technical  ones   •  The  user  story  perspec2ve  views  the  system  as  a  black  box,  describing  what  is  to  happen,  not   how  it  happens  within  the  black  box   •  The  external,  organiza2onally-­‐focused  language  of  user  stories  survives  changes  in  technology;   how  a  user  story  gets  implemented  is  up  to  the  programmers   •  A  given  user  story  might  have  hundreds  of  ways  it  could  be  implemented   •  When  wri2ng  User  Stories,  don't  include  any  technological  assump2ons  about  how  the  story   "should"  be  implemented   •  User  stories  reflect  end-­‐to-­‐end  func2onality  
  • 21. Instantaneous  Stories   A  Great  Story  Describes  an  Instantaneous  Event.   The  story’s  ac2on  or  event,  happens  at  an  instant  in  2me  rather  than  over  a   dura-on  of  2me   The  phrase  “Clock  hands  move  around  clock  face”  fails  this  criterion  because  there   is  no  single  instant  in  2me  during  which  that  happens   The  clock’s  hands  reaching  a  certain  posi2on  or  2me  would  be  an  instantaneous   event   These  stories  headings  are  examples  of  instantaneous  events   •  System  sends  daily  summary  email   •  Customer  selects  report  
  • 22. User  stories  are  triggered  by  something  –  and  that  trigger  must  be  detectable  by   the  system     Ed  Yourdon  (author  of  the  classic,  modern  structured  analysis)   describes  three  types  of  event  triggers:   •  Flow-­‐oriented  Events:  Triggered  by  data  arriving;  the  most  common  sort   Example:  Customer  cancels  order.   •  Temporal  Events:  Triggered  by  a  point  in  Ime.   Example:  System  processes  credit  cards  at  9:00PM   •  Control  Events:  Triggered  by  external  sImulus;  common  in  real-­‐Ime  systems   Example:  Alarm  sensor  signals  door  open   Detectable  Stories  
  • 23. Quiz   External  Stories  Quiz   Please  drag  the  boxes  to  re-­‐order  them  from  best  to  worst,  in  terms  of  their  taking  an  external  perspecIve  of  the  system.   Place  these  in  the  correct  order:   Student  Reveals  Answers   Student  Reveals  Answers  via  JavaScript   Student  Clicks  “Show  Answers”   Student  Reveals  Answers  by  Joining  Quiz  Answer  Column  in  Quiz  Table  with  Quiz  QuesIon  Table   Instantaneous  Stories  Quiz   For  each  item,  tell  whether  it  takes  place  at  an  Instant  or  over  a  Dura2on  of  Ime.   We  prefer  stories  with  s2muli  that  are  instantaneous,  rather  than  occurring  over  a  period  of  2me.   1.  Taxpayer  Submits  Tax  Form   2.  Admin  Reads  Report   3.  Device  Monitors  Blood  Pressure   4.  User  Selects  Context-­‐SensiIve  Help   Instant   Dura2on   Can  You  Hear  Me  Now?   Which  events  are  detectable?  For  each  event,  please  tell  whether  it  is  Detectable  or  Not.   1.  System  is  to  send  a  warning  noIce  3  days  before  library  book  is  due   2.  User  presses  keyboard  key(s)  to  capture  contents  of  the  screen   3.  Elevator  passenger  imagines  going  to  the  12th  floor   4.  The  developer  runs  into  the  project  manager  in  the  hallway  and  tells  her  that  the  task  is  completed   5.  The  government’s  tax  department  has  flagged  your  tax  return  and  is  considering  whether  to  audit  you.          (This  is  from  the  perspecIve  of  the  taxpayer,  not  the  government)   Detectable   Not  
  • 24. •  First,  the  mere  existence  of  the  story  implies  that  the  project  community  considers  it  important.   Stories  that  actually  get  implemented  are  (hopefully)  essen2al.  If  you  don’t  need  the  story,  get   rid  of  it.  (If  you  track  stories  on  cards,  you’ll  get  a  saIsfying  feeling  when  you  r-­‐r-­‐rip  it  up)   •  If  you  model  the  system’s  interacIons  properly,  the  role  is  usually  an  external  enIty  (user,   accountant,  another  system)  sending  a  sImulus  into  the  system   •  Instantaneous  events  manifest  themselves  in  the  acIon,  usually  through  the  choice  of  the  verb   •  When  the  means  of  interacIng  with  the  system  are  clear,  such  as  a  buMon-­‐click  or  API  call,  the   acIon  describes  a  detectable  event   •  A  proper  context  helps  to  pinpoint  all  the  criteria,  and  helps  us  to  write  beMer  stories   Four  Criteria's  and  RCA  Format   I’m  not  sure  I  understand  how   these  four  criteria  relate  to  the   Role–Ac2on–Context  structure  
  • 25. Summary     The  Four  Criteria:  Essen2al,  External,  Instantaneous,  and  Detectable   Can  Help  Keep  Your  Stories  on  Track   1   Essen2al:  Valuable  to  sponsors  (as  part  of  the  charter)   2   External:  Takes  an  outside-­‐the-­‐system  perspecIve   3   Instantaneous:  Happens  at  a  moment  in  Ime,  not  over  an  interval  of  Ime   4   Detectable:  The  system  has  a  way  to  tell  that  the  story  is  triggered  
  • 26. What  are  Roles   When  we  say  User,  we’re  usually  talking  about  an  individual,  a  person   A  role  is  an  abstracIon:  A  name  for  how  a  parIcular  group  of  people   use  the  system   The  name  “role”  comes  from  theater:  An  actor  plays  a  role  by  acIng   like  someone,  but  they  don’t  really  become  that  person   Even  more  common,  a  single  role  can  be  filled  by  different  people:  Many  people   are  Shoppers   A  system  may  enforce  roles  (eg.,  only  Administrators  can  install  soqware),  but  we  don’t  require  that   Roles  need  not  be  explicit  in  the  system:  We  can  be  a  Browser  and  a  Shopper,   without  any  need  for  the  system  to  keep  track  of  which  role  we’re  playing   One  person  can  have  mul2ple  roles:  A  person  may  be  acIng  like  a  Browser  and  a  Shopper  at   different  Imes  in  a  single  session   Roles  Iden2fy  PaLerns  of  Using  the  System  
  • 27. Search  Widely  for  Roles   Roles  help  us  create  higher-­‐value  systems  by  focusing  on   the  needs  of  par2cular  groups  of  users   A  brainstorming  and  refinement  process  can   help  us  iden2fy  roles  (from  So6ware  for  Use   by  Constan2ne  and  Lockwood):   •  Compile  –  Brainstorm  or  otherwise  generate  as  many   candidates  as  possible   •  Organize  –  Review  and  sort  them;  understand  their   relaIonships;  consolidate  them   •  Detail  –  Fill  in  any  missing  data   •  Refine  –  Improve  and  complete  the  model   Develop  an  Ini2al  Model  of  Roles  and  Their  Rela2onships.  
  • 28. Characters  of  Users   Knowledge  about  users  can  help  iden2fy  missing  roles  and  guide  us  in  how  we  use  roles   Categories  of  users  can  suggest  missing  roles,  and  guide  us  in  how  we  treat  roles  we   know  about   Roles   Characteris2cs   Primary   or   Secondary   Do  we  need  to  address  this  user’s  needs  sooner  or  can  we  wait  Ill  later?   Example:  Customer  is  a  primary  role  for  the  vacaIon  site;  customers  bring  in  money  so   we  want  to  support  them  early   Favored   or   Disfavored   Are  we  trying  to  help  this  user  or  avoid  helping  them?   Example:  A  compeItor  is  a  disfavored  user;  we  might  add  watermarks  to  our  pictures  t   make  it  harder  for  compeItors  to  steal  them   Direct   or   Indirect   Does  this  user  operate  they  system  themselves  or  does  somebody  else  use  the  system   on  their  behalf?   Example:  Customer  is  a  direct  user,  while  a  Giq  Recipient  is  an  indirect  user  
  • 29. Primary  or  Secondary   Think  about  MyFakeVaca2on.info;  which  roles  are  Primary  and  which  are  Secondary?   Primary Secondary 1.  Marke2ng  Manager:  All  the  markeIng  manager  wants  is  that  within  six  months  of   iniIal  release,  markeIng  starts  receiving  reports  monthly  reports  on  the   effecIveness  of  adverIsing  campaigns   2.  Vaca2on  Creator:  A  member  of  the  markeIng  department  who  creates  a  vacaIon   by  uploading  a  set  of  compaIble  photographs   3.  Hacker:  On  Day  1,  some  hackers  will  try  to  score  a  free  vacaIon  by  looking  for  bugs   in  the  checkout  process  
  • 30. Favored  or  Disfavored   For  MyFakeVaca2on.info;  which  stakeholders  are  Favored  and  which  are  Disfavored?   Favored Disfavored 1.  Purchaser  of  a  vaca2on   2.  Travelocity   3.  Our  photography  partner   4.  M4dd06h4x0r  (a  hacker)  
  • 31. Oqen  ForgoMen  Role   You  Won’t  Support  Every  Stakeholder,   But  Look  for  Key  Roles  Beyond  The  Obvious  Users.   Certain  roles  are  easy  to  forget  because  they’re  oqen   not  everyday  users  of  the  system,  but  they  an   important  impact  on  the  acceptability  of  the  system   as  a  whole:   •  Administrators   •  Operators   •  Supervisors   •  ExecuIves   •  Auditors   •  Hackers  and  other  disfavored  users  
  • 32. Dig  Deeper   Deeper  Knowledge  about  Users  Can  Suggest   Useful  Dis2nc2ons  in  Roles.   Understanding  these  characterisIcs  will  be  especially  helpful  in  designing  the  interface. For  the  people  in  the  roles  you  iden2fy:   •  What  are  their  goals?   •  What  is  their  domain  exper2se?   •  What  is  their  technology  exper2se?   •  How  oTen  will  they  use  the  system?   •  What  else  is  important  about  them?  
  • 33. How  to  Start?   Refine,  Revise,   Redistribute   Review  with   Project  Community   DraT  Stories   Use  in  Planning   Suppose  you’re  just  star2ng  to  write   stories.  How  and  where  do  you  start?   The  following  process  is  oTen  useful:     Does  this  look  familiar?   It’s  a  straighoorward  interpreta2on  of   a  standard  Agile  approach:                 So  get  a  pen,  a  bunch  of  3”  x  5”   index  cards  or  a  whiteboard,   and  start  wri2ng!     Start  small  and   g  r  a  d  u  a  l  l  y   improve  your   work.  
  • 34. This  Sequence  of  Steps  Can  Help  You  Focus  Your  Story  Wri2ng.   A  Procedure  for  Story  Telling   1. Pick  any  area  of  the  product,  or  any  idea  from  your  charter.   2. Iden-fy  the  main  actor  (role),  or  some  leading  actor   •  What  would  this  person  do?   •  What  does  this  person  care  about?   •  Ignoring  the  users  interface,  what  does  this  person  try  to  achieve?   Turn  the  answers  into  stories:  Role,  Ac2on,  Context   3.  Does  a  story  depend  on  another,  unwriLen  story?   Write  that  story.  (We  prefer  independent  stories,  but  not  at  the  cost   of  missing  stories)   4.  Is  there  some  overlap  between  stories?   No  worries.  Ideally,  you  can  redistribute  their  purpose   (to  make  them  independent);  if  not,  keep  them  as  is.  
  • 35. Being  Adventurous   Gather  a  group  of  people  and  brainstorm.  What  do  you  absolutely  have  to  do  to   accomplish  the  project’s  mission?  (psst:  Try  this  without  the  developers  in  the  room,   to  increase  the  focus  on  the  business  need)   Something  doesn’t  feel  right?  Tear  up  some  cards  for  good  measure   If  you  write  a  “wishful  thinking”  story:  What  would  the  soqware  have  to  support   before  that  story  could  ever  be  considered?   That’s  another  set  of  stories   Ignore  the  plan,  write  everything  down   Browse  the  table  of  contents  or  top-­‐level  headings  of  an  exisIng  spec,  recasIng  the   funcIonality  as  stories  
  • 36. Tips   •  Review  your  charter  and/or  mission;  have  you  missed  anything  needed  to  support  it?   •  Consider  the  project  community  –  users  and  stakeholders;  are  there  users  or  needs   you  haven’t  addressed?   •  Review  what  you’ve  done  with  someone  else   •  Look  at  your  domain  vocabulary.  Stories  you’ve  already  wriMen  will  have  people   (roles),  acIons,  and  objects.  Are  there  combinaIons  that  suggest  a  new  story   you  need?   •  Shuffle  your  stories  in  various  ways:  By  role,  by  when  it  happens,  by  priority,  by   esImate.  Does  this  suggest  any  stories?   •  Move  on.  If  you’re  not  used  to  wriIng  stories,  you  may  be  surprised  by  how  few  high-­‐ level  stories  you  need.  Maybe  it’s  Ime  to  move  on  to  stories  that  will  be  implemented   soon,  working  out  details  such  as  business  rules  or  tests   If  You  Get  Stuck  While  Wri2ng  Stories,  Try  These  Ideas:  
  • 37. Access  Your  SoluIon   •  Did  you  cover  the  most  important  interac2ons?   •  Is  each  user-­‐triggered  story  an  end-­‐to-­‐end,  user-­‐level  task?  (This  is  someImes  known   as  the  “Coffee  Break  Rule”:  Would  the  user  feel  like  it’s  a  good  Ime  to  take  a  coffee   break  aqer  compleIng  this  task?)   •  Do  your  story  headings  follow  the  Role–Ac2on–Context  format?   •  Are  your  headings  short  (typically  five  or  fewer  words,  rarely  if  ever  ten  words)?   •  Are  your  headings  technology-­‐  and  [user]  interface-­‐independent?   •  Are  you  seeing  a  domain-­‐level  vocabulary  emerge?  
  • 38. Summary   •  There  are  a  variety  of  ways  to  organize  your  story  wri2ng.   Think  about  your  charter,  about  product  areas,  about  roles,   acIons,  and  contexts   •  You’ve  pracIced  wriIng  stories  in  the  Role–Ac2on–Context  format   •  You  can  use  the  self-­‐assessment  quesIons  to  help  you  asses  stories   in  live  projects  
  • 39. SECOND  BATCH  (REST  27  SLIDES)  
  • 40. System  and  Boundary   Consider  the  soTware  owned  and  run  by  a  small  doctor’s  office  to  manage  its   appointments,  medical  records,  and  insurance  claims.   Which  of  the  following  are  Inside  the  system  boundary  and  which  are  Outside?   Inside   Outside   1.  Recep2onist  (who  schedules  appointments)   2.  Database  (on  which  appointments  and   medical  records  are  stored)   3.  Insurance  Claims  System  (to  which  our  system  transmits   claims  via  a  standard  protocol)   4.  The  Internet  (over  which  encrypted  informa2on  is  sent)  
  • 41. CCL  –  Pillar,  System  and  Boundary  
  • 42. Requirements  Always  Emerge   It  is  impossible  to  know  all  requirements  in  advance   “Thinking  harder”  and  “thinking  longer”  can  uncover  some  requirements,  but   Emergent  requirements  are  those  are  users  cannot  iden2fy  in  advance   Every  project  has  some  emergent  requirements  
  • 43. So  What  Do  We  Do?   •  We  Talk  More,  Write  Less   –  But  write  some  if  you  need  to   •  Show  SoTware  to  Users   •  Acknowledge  that  Requirements  Emerge   –  And  all  that  this  implies   •  Progressively  Refine  Our  Understanding  of  the  Product   –  And  express  this  progressive  refinement  in  the  product  backlog  
  • 44. Stories  Make  Great  Backlog  Items   Card   •  Stories  are  tradiIonally  wriMen   on  note  cards   •  May  be  annotated  with  notes,   esImates,  etc.   Conversa2on   •  Details  behind  the  story  come   out  during  conversaIons  with   product  owner   Confirma2on   •  Acceptance  tests  confirm  the   story  was  coded  correctly  
  • 45. Beat  the  System   There’s  usually  a  beLer  role  name  than  “The  System.”   You  may  be  tempted  to  have  a  role  “The   System,”  e.g.,  System  Generates  Daily  Summary   Report   Instead,  try  describing  the  human  who  makes   use  of  what  the  system  does:  Supervisor  Selects   Daily  Summary  Report.  It’s  even  beMer  if  you  can   idenIfy  what  the  human  is  going  to  do  with  the   result:  Supervisor  Adjusts  Schedule   Moving  from  the  domain  of  informaIon   processed  in  the  user’s  head  back  to  user  acIons   can  help  us  focus  beMer  on  the  user’s  true  needs   (Don’t  force  it,  though  –  “The  System”  may  be   the  most  expressive  name)  
  • 46. Humans  Only  !!!   A  role  can  correspond  to  a  human  or  an  automated  system.   Should  roles  be  filled  only  by  humans,  or  can  we  name   automated  systems?   Roles  can  be  either:   •  We  like  the  role  to  menIon  the  human  when  the  human  feels   like  they’re  interacIng  with  the  system  (even  if  that  interacIon   is  through  another  system  such  as  a  web  browser)   •  But  consider  the  system  boundary  (context  diagram);  if  an   automated  system  connects  to  our  system,  it’s  fine  to  name  that   system  as  the  role   •  For  example,  out  pet  sales  system  “talks”  to  the  bank’s   automated  credit  card  processing  system,  so  Credit  Card   Processor  would  be  a  fine  role  name  
  • 47. Summary   •  Roles  iden2fy  paLerns  of  usage;  different  roles  interact   differently  with  the  system   •  Don’t  forget  important  roles  such  as  operators,   administrators,  and  auditors   •  Deepen  your  understanding  of  the  user  by  considering   their  goals,  domain  and  technology  experIse,  and   frequency  of  use   •  Use  adjec2ves  to  succinctly  idenIfy  roles   (Go  beyond  User)   •  Rather  than  using  System  as  a  role,  try  to  iden2fy  who  acts   and  who  benefits  
  • 48. Where  are  the  Details   Process  mapping,  sketching,  and  storytes-ng  help  define  a  story’s  details.   The  heart  of  a  story  is  the  high-­‐level  funcIonality  captured  in  the   headline,  but  that  doesn’t  define  funcIonality  enough  to  just  go   implement  it   Implementa2on  requires  detailed  decisions  about  how  the  feature   will  work,  and  how  we’ll  know  it’s  done   User  stories  don’t  come  with  a  built-­‐in  method  for  these  decisions:   Every  team  is  different,  and  there  are  many  approaches   We’ll  briefly  explore  three  techniques  that  many  teams  have  found   helpful:  Process  Mapping,  Sketching,  and  Storytes2ng  
  • 49. Process  Mapping:  Follow  the  Object   •  Triggers,  pulses,  and  audio  are  the  key  objects   •  This  map  shows  how  a  trigger  goes  to  a  sound  generator,  and  its  audio  goes  to  a  mixer;  the  drum   clock  generates  a  pulse  that  goes  through  a  paMern  sequencer  that  drives  drum  audio,  which   goes  to  its  own  volume  control  and  the  mixer;  then  all  audio  goes  to  a  master  volume  control   and  out  to  a  speaker   •  One  way  to  figure  out  should  happen  is  to  follow  the   object;  track  an  object  as  it  moves  through  –  and  is   transformed  by  –  the  system   •  Consider  an  electronic  keyboard  with  a  built-­‐in  rhythm   secIon  where  you  can  set  the  drummer  up  with  a  loud   bossa  nova,  then  play  your  tune  on  the  keyboard   What  do  we  find  when  we  map   the  objects?  
  • 50. Triggers,  pulses,  and  audio  are  the  key  objects   This  map  shows  how  a  trigger  goes  to  a  sound  generator,  and  its  audio  goes  to  a  mixer;  the  drum   clock  generates  a  pulse  that  goes  through  a  paMern  sequencer  that  drives  drum  audio,  which  goes   to  its  own  volume  control  and  the  mixer;  then  all  audio  goes  to  a  master  volume  control  and  out  to   a  speaker                   Modern  keyboards  work  more  in  the  digital  domain,  but  that’s  irrelevant  to  the  main  point;  in   process  mapping  we  idenIfy  (and  devise)  the  moIon  and  transformaIon  of  objects  in  the  system   Follow  an  objet  to  find  its  movement  through  &  transforma2on  by  the  system.   Keyboard   Sound  Generator   Clock   Drum  Sound  Generator   PaLern  Sequencer   Rhythm  Volume   Mixer   Overall  Volume   Trigger   Audio   Pulse   Audio   Trigger   Audio   Audio   Audio   Speaker  (Audible  Sound)  
  • 51. Watch  the  People   Watching  people  gives  a  different  perspec2ve  on  the   value  stream  (compared  to  focusing  on  key  objects  such   as  transacIons).   Focusing  on  people  lets  you  ask  them  several  key  quesIons:   1.  What  do  you  do  in  the  normal  case?  (This  may  reveal  places   the  system  can  ease  or  eliminate  work)   2.  Are  these  special  cases  or  excep2ons  that  are  handled   differently?  How  do  they  work?  (This  may  reveal  process   flows  you  didn’t  know  about)   3.   What  else  do  you  do?  (This  may  reveal  key  objects  and   opportuniIes  you  weren’t  aware  of)   Objects  usually  carry  the  value,   but  people  give  you  key  insights.   A  map  of  the  flow  of  items  and  the  processes  that  work  with   them  can  be  a  very  useful  tool.  
  • 52. Remembrance  of  Things  Past   Data-­‐intensive  systems  require  details  about  where  to  find  and  store  data.   •  Objects  and  people  are  interesIng,  but  we  oqen  also   need  to  map  the  data  that’s  been  remembered  by   the  system   •  For  data-­‐intensive  systems,  working  out  where  to   find  data  is  a  key  challenge   •  Some  feeds,  databases,  and  so  on  are  outside  and   others  inside  the  system  boundary.  As  usual,  our   context  maMers   •  The  level  of  detail  depends  on  the  stage   •  In  early  planning,  it’s  enough  to  know  “We  can  get   that  data  somewhere.”  For  implementaIon,  we   need  details  about  where  the  data  is  and  the   transformaIons  it  needs  
  • 53. StorytesIng   Storytests  help  create  the  meaning  of  a  story.   Storytests  are  tests  in  the  language  of  the  domain,  wriMen  to   clarify  a  story   They  aren’t  meant  to  be  exhausIve  but  to  communicate  a   story’s  essence   ImplementaIon  requires  details,  but  less  is  needed  to   understand  and  esImate  stories   Tests  are  not  ripe  apples  on  a  tree,  waiIng  to  be  plucked   and  used;  rather,  creaIng  tests  helps  create  the  meaning  of   the  story   What  do  we  do  with  storytests?  Concrete  examples  are   great  for  helping  discuss  stories,  and  are  prime  candidates   for  automaIon  
  • 54. Best  Ideas   Where  do  you  get  your  best  ideas  for  func2onality?   (Your  opinion;  there’s  no  single  right  answer)   Building  models  of  users  and/or  ac2vi2es   Watching  users  in  ac2on  (doing  their  work)   Brainstorming,  alone  or  with  others   Listening  to  what  users  tell  us  they  need  
  • 55. Layout  Overall  System   As  you  proceed,  your  pile  of  stories  will  grow  and   you’ll  rip  up  some  stories   It  helps  to  organize  the  cards  according  to  some   criterion   •  Theme   •  Category   •  Flow   •  NavigaIon   •  EvoluIonary  Path   •  Release  or  IteraIon   WriIng  headings  according  to  the  Role-­‐Ac2on-­‐ Context  formula  helps  a  lot  here   You  can  also  use  paper  mockups  of  screens  and  flow   Organize  your  stories  to   reveal  the  big  picture   The  example  on  the  right  shows  how  a  user  would   navigate  in  the  new  applicaIon  
  • 57. The  Product  Backlog  Iceberg   A  descripIon  of  desired   funcIonality  told  from  the   perspecIve  of  the  user  or   customer   User  Story   A  large  user  story   Epic   A  collecIon  of  related   user  stories   Theme  
  • 58. How  Much  Detail?   Process   Fixed   Input   Must  be  described  in  just   enough  detail  to  be  turned  into   the  output  by  the  process   Output   Fixed   Just-­‐in-­‐2me   just-­‐enough  
  • 59. What  Makes  a  Good  Story?   Independent  I   Negotiable  N   Valuable  V   Estimatable  E   Sized Appropriately  S   Testable  T  
  • 60. •  Dependencies  lead  to  problems  esImaIng  and  prioriIzing   •  Can  ideally  select  a  story  to  work  on  without  pulling  in  18  other  stories   Independent   •  Stories  are  not  contracts   •  Leave  or  imply  some  flexibility   Nego2able   •  To  users  or  customers,  not  developers   •  Rewrite  developer  stories  to  reflect  value  to  users  or  customers   Valuable   •  Because  plans  are  based  on  user  stories,  we  need  to  be  able  to  esImate  them   Es2matable   •  Small  enough  to  complete  in  one  sprint  if  you’re  about  to  work  on  it   •  Bigger  if  further  off  on  the  horizon   Sized  Appropriately   •  Testable  so  that  you  have  a  easy,  binary  way  of  knowing  whether  a  story  is  finished   •  Done  or  not  done;  no  “parIally  finished”  or  “done  except”   Testable   I   N   V   E   S   T  
  • 61. PrioriIzing  the  Product  Backlog   Three  Steps   Organize   Needs  into   Themes   Priori2ze   Themes   Assess   Importance  of   Each  Theme   1   2   3  
  • 62. Why  Themes?   OTen  Individual  Stories  Cannot  be  Priori2zed  Against  Each  Other   •  The  ‘A’  key  or  the  ‘E’  key?   •  Tables  or  Undo?   •  The  leq  front  wheel  or  the  right  front  wheel?   •  Increased  leg  room  or  a  larger  engine?   What’s  More  Important   in  a  Word  Processor?   What’s  More  Important   on  a  Car?   1   2  
  • 63. Eliminate  redundant  stories   Write  each  story  on  its  own   note  card  or  post-­‐it   Label  each  group  with  a  theme  name   Group  similar  stories   Review  the  results   If  you  have  a  lot  of  themes  or   have  small  themes,  consider  making   themes  of  themes   Steps  for  Organizing  into  Themes   If  you  started  with  a  story-­‐wri2ng  workshop,  you  may  already  have  themes.  
  • 64. Affinity  Grouping   Distribute  cards  equally  to  all  par2cipants   •  No  parIcular  paMern  to  how  you  do  this   Someone  reads  a  card  and  places  in  on  wall  /  table   •  Others  look  for  similar  cards  and  add  them  to  it   Next  person  reads  a  card,  places  it,  and  others  place  similar  cards  with  it   Con2nue  repea2ng  un2l  out  of  cards  
  • 65. User  Story  Template  –  1   As  a  [user  role]  I  want  to  [goal]     •  So  I  can  [reason]   •  As  a  [type  of  user]  I  want  to  [perform  some  task]   so  that  I  can  [reach  some  goal]   Example:     •  As  a  registered  user  I  want  to  log  in   •  So  I  can  access  subscriber-­‐only  content  
  • 66. User  Story  Template  –  2   •  Who  (user  role)     •  What  (goal)   •  Why  (reason)   – Gives  clarity  as  to  why  a  feature  is  useful   – Can  influence  how  a  feature  should  funcIon   – Can  give  you  ideas  for  other  useful  features     – That  support  the  user's  goals