ELEPHANT CARPACCIO



CREDS



Henrik Kniberg & Alistair Cockburn
2013-07-11



Why split stories?


Story = vertical, testable, user-valuable. 
Cuts across multiple architectural layers.

WHY SPLIT STORIES?





Story slicing = making thinner stories (but still vertical)

How big are your stories ?

WHY SPLIT STORIES?


Learn faster.
Deliver more often.
Happier stakeholders.
More in-sync with other people & teams.
Better prioritizations.
Better product earlier.
More business options.
Less risk (less time “underwater”).
Sense of velocity.
Easier planning.

WHY SPLIT STORIES?


WHY SPLIT STORIES?


Decision of “how small” should not be limited by “we can’t split this story”. 

In this workshop we will practice by exaggerating. 

We will make stories so tiny that anything you do today seems big in comparison.

WHAT WE WILL DO


Build a simple application in 40 minutes, divided into 5 iterations x 8 minutes.

Most people would build this app in 2-3 slices, we will do it in 15-20.


WHAT WE WILL DO


Elephant carpaccio = very thin slices, each one still elephant-shaped. Together they form the whole elephant.


THE PRODUCT:

SALES CALCULATOR

Accept 3 inputs from the user:
  • How many items

  • Price per item

  • 2-letter state code

Output the total price. Give a discount based on the total price, add state tax based on the state and the discounted price.


Priorities

Target is 5 discounts, 5 states.


A slice is only valid if it has a UI, input & output, and is visibly different from last slice.

PRIORITIES



I want 5 states before doing anything with discounts. 

Why? (so we can deploy! State tax is a legal requirement, discount is not)

PRIORITIES

Validation & fancy GUI comes after 5 states & 5 discounts. Don’t spend any time on that before!


No embellishing! Practice on building the highest-value thing first, all the time. 
For example, before you have 5 states, don’t waste a single keystroke on discount-related code!
I don’t care how far you get on this curve.  The important thing is that you practice microslicing. 
If you get all the way to the end with only 3 slices, you’ve wasted your time and missed the point of this exercise.

AGENDA

  • Break into teams of 2-3 people, one computer per team.
  • Preparation - Each team writes down on paper the 10-20 demo-able user stories ("slices") they will develop and possibly demo. Each should be doable in 3-8 minutes. No slice is just mockup of UI, creation of a data table or data structure. All demos show real input & output (not test harness).
  • Discussion - what is and isn't acceptable, solicits ways to slice finer.
  • Development - A fixed time-box of X minutes, five X-minute development sprints, clock does not stop. At the end of each sprint, each team shows its product to another team.
  • Debrief

TEAM DECISIONS


  1. Choose your language/platform/tool
  2. Pick a style:
  • TDD
  • Red/Green
  • Some Tests
  • NFT

BUILD YOUR BACKLOG

  • Write your backlog on paper (laptops still closed).
  • Write 10-20 demo-able user stories (“slices”) that will take you from nothing to 5 states & 5 discounts.
  • Each should be implementable (including user interface) in 2-6 minutes.
  • All demos show real input & output, and are noticeably different from last slice. No slice is just a mockup or UI, a data structure, or test case.
  • What is your first slice?


X minutes !

YOUR BACKLOG

Somewhere along the way you should reach the “order value” milestone - where you have 2 inputs (“# of items” &  “price per item”) and multiply them. No discounts/states.


QUESTIONS ?

DEBRIEF

How far did you get ?

How many slices ?

DEBRIEF


ACCEPTANCE TEST:

I am in Utah
I’m buying 978 items
each item costs $270.99

What's the total ?

DEBRIEF


  • Round-robin:
  • What was it like?
  • How is your code quality, how proud are you of your code? (1-5 fingers).
  • What did you learn? What will you do? Name one take-away insight from today, and one thing you will do differently in the future.
  • Any other questions or reflections?

  • YOU ARE AWESOME !!


    ELEPHANT CARPACC

    By maderskog

    ELEPHANT CARPACC

    • 859