SlideShare une entreprise Scribd logo
1  sur  19
NANO INCREMENTAL
DEVELOPMENT
AKA ELEPHANT CARPACCIO
WHAT HAVE WE GOTTEN
OURSELVES INTO?
• Elephant Carpaccio
is an exercise
invented by Alistair
Cockburn to help
people practice
breaking user
stories and their
related tasks into
really thin vertical
slices.
WHAT’S A STORY
ANYWAY?
• As a <type of user, "Actor">, I want <some
action> so that <some goal/achievement>.
• As Alex, I want to be able to filter my dash
dashboard by list so that I can isolate data to a
specific list.
• As a Developer I can select from configuration
options, press a button and have a VM in less
than 10 minutes.
“INVEST”
• Independent, demo-able,
potentially release-able
• Negotiable
• Valuable (Customer,
knowledge)
• Estimatable
• Sized Right
• Testable (Has i/o)
User
GUI
Client
Back
End
HOW BIG CAN STORIES
BE?
Months Weeks Days Hours Minutes
WHAT WE WILL DO TODAY
• Build a simple application
• 5 iterations of 10 minutes
each
• Instead of 3-5 slices,
we’re aiming for 15-20
WHY SMALLER STORIES?
• Learn faster w less risk
• Better product earlier
• More business options
• Less time “underwater”
• Deliver value more
often
• Happier stakeholders
• Happier users
CumulativeValueDelivered
Time
Small stories
Medium stories
Big stories
THE PRODUCT:
DISCOUNT CALCULATOR
Three Inputs:
• Quantity
• Unit price
• 2-letter state code
One Output:
• Total price (discounted
price plus sales tax)
SPRINT 0:
CREATE THE BACKLOG
• Demo-able
• Implementable within
sprint time box
• Noticeably different from
other “slices”
• Adds value
HOW WILL YOU BUILD?
• What is your first
slice?
• Can you slice things
even thinner?
• Risk reduction
• Value = customer
value + knowledge
value
• Walking skeleton….
SPRINT 1…
• Write code
• Tests (TDD, red/green, NFT?)
• Pair?
• Shout “slice” whenever you finish
one
• Go!
• Demo / Acceptance test…
SPRINT 2…
• Shout “slice” whenever
you finish one
• Demo / Acceptance
test…
SPRINT 3…
• Shout “slice” whenever
you finish one
• Demo / Acceptance
test…
SPRINT 4…
• Shout “slice” whenever
you finish one
• Demo / Acceptance
test…
SPRINT 5…
• Shout “slice” whenever
you finish one
• Demo / Acceptance
test…
COMMON SPLITTING
TECHNIQUES
• Defer complexity
• Zero, then one, then
many (e.g, states
codes)
• Hard coding values
• Defer validation
• Simple interface (GUI
last)
RETROSPECTIVE
• How far did you get?
• How was your code
quality?
• How many and what kind
of slices?
• What did you learn?
BUT WE CAN’T SHIP
THAT STORY…
• Independent: demo-able, potentially release-able
• A Minimal Viable Product or Minimal Viable
Feature consists of one or more stories that have
been put together to provide enough value to
warrant it being put into production.
• The Product Owner decides when enough value
has accrued to meet the “let’s ship it” threshold
www.andycleff.com
“Type a quote here.”

Contenu connexe

Tendances

Writing Effective User Stories
Writing Effective User StoriesWriting Effective User Stories
Writing Effective User Stories
Janeve George
 
story points v2
story points v2story points v2
story points v2
Jane Yip
 

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
 
Agile Metrics...That Matter
Agile Metrics...That MatterAgile Metrics...That Matter
Agile Metrics...That Matter
 
User Story Mapping in Practice
User Story Mapping in PracticeUser Story Mapping in Practice
User Story Mapping in Practice
 
User Story Mapping Workshop
User Story Mapping WorkshopUser Story Mapping Workshop
User Story Mapping Workshop
 
User Story Splitting
User Story SplittingUser Story Splitting
User Story Splitting
 
[HCM Scrum Breakfast] Agile estimation - Story points
[HCM Scrum Breakfast] Agile estimation - Story points[HCM Scrum Breakfast] Agile estimation - Story points
[HCM Scrum Breakfast] Agile estimation - Story points
 
How to estimate in scrum
How to estimate in scrumHow to estimate in scrum
How to estimate in scrum
 
Agile estimation
Agile estimationAgile estimation
Agile estimation
 
Agile Estimation Techniques
Agile Estimation TechniquesAgile Estimation Techniques
Agile Estimation Techniques
 
Writing Effective User Stories
Writing Effective User StoriesWriting Effective User Stories
Writing Effective User Stories
 
Effective User Stories
Effective User StoriesEffective User Stories
Effective User Stories
 
User Story Mapping (2008)
User Story Mapping (2008)User Story Mapping (2008)
User Story Mapping (2008)
 
story points v2
story points v2story points v2
story points v2
 
User Stories
User StoriesUser Stories
User Stories
 
Strategies to split user stories
Strategies to split user storiesStrategies to split user stories
Strategies to split user stories
 
Agile effort estimation
Agile effort estimation Agile effort estimation
Agile effort estimation
 
How to write good user stories
How to write good user storiesHow to write good user stories
How to write good user stories
 
Agile Scrum Estimation
Agile   Scrum EstimationAgile   Scrum Estimation
Agile Scrum Estimation
 
Practical Guide to Scrum
Practical Guide to ScrumPractical Guide to Scrum
Practical Guide to Scrum
 
User Story Mapping
User Story MappingUser Story Mapping
User Story Mapping
 

Similaire à Scrum Learning Game: Elephant Carpaccio

Lotuscript for large systems
Lotuscript for large systemsLotuscript for large systems
Lotuscript for large systems
Bill Buchan
 
How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....
Mike Harris
 
Emperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakkEmperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakk
kevinjohngallagher
 

Similaire à Scrum Learning Game: Elephant Carpaccio (20)

Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)
 
Morph your mindset for Continuous Delivery, Agile Roots 2014
Morph your mindset for Continuous Delivery,  Agile Roots 2014Morph your mindset for Continuous Delivery,  Agile Roots 2014
Morph your mindset for Continuous Delivery, Agile Roots 2014
 
Scaling
ScalingScaling
Scaling
 
DevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable ProductsDevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable Products
 
AgileCamp 2014 Track 5: The Seven Wastes - Can You Get Leaner
AgileCamp 2014 Track 5: The Seven Wastes - Can You Get LeanerAgileCamp 2014 Track 5: The Seven Wastes - Can You Get Leaner
AgileCamp 2014 Track 5: The Seven Wastes - Can You Get Leaner
 
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
 
Bug Hunting Safari
Bug Hunting SafariBug Hunting Safari
Bug Hunting Safari
 
Lotuscript for large systems
Lotuscript for large systemsLotuscript for large systems
Lotuscript for large systems
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
Lean canvas validation_board_21_nov
Lean canvas validation_board_21_novLean canvas validation_board_21_nov
Lean canvas validation_board_21_nov
 
Software testing and quality assurance
Software testing and quality assuranceSoftware testing and quality assurance
Software testing and quality assurance
 
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelaz
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelazXp 2016 superchargeyourproductbacklogwithuserstories-suzannelaz
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelaz
 
Effectively Using UI Automation
Effectively Using UI AutomationEffectively Using UI Automation
Effectively Using UI Automation
 
Low Cost Assistive Technology Solutions
Low Cost Assistive Technology SolutionsLow Cost Assistive Technology Solutions
Low Cost Assistive Technology Solutions
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
Icinga Camp San Diego 2016 - Icinga Director
Icinga Camp San Diego 2016 - Icinga DirectorIcinga Camp San Diego 2016 - Icinga Director
Icinga Camp San Diego 2016 - Icinga Director
 
How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....
 
Distributed teams - it takes two to tango
Distributed teams - it takes two to tangoDistributed teams - it takes two to tango
Distributed teams - it takes two to tango
 
Emperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakkEmperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakk
 

Dernier

Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
Kamal Acharya
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 

Dernier (20)

AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic Marks
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Introduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdfIntroduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdf
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 

Scrum Learning Game: Elephant Carpaccio

  • 2. WHAT HAVE WE GOTTEN OURSELVES INTO? • Elephant Carpaccio is an exercise invented by Alistair Cockburn to help people practice breaking user stories and their related tasks into really thin vertical slices.
  • 3. WHAT’S A STORY ANYWAY? • As a <type of user, "Actor">, I want <some action> so that <some goal/achievement>. • As Alex, I want to be able to filter my dash dashboard by list so that I can isolate data to a specific list. • As a Developer I can select from configuration options, press a button and have a VM in less than 10 minutes.
  • 4. “INVEST” • Independent, demo-able, potentially release-able • Negotiable • Valuable (Customer, knowledge) • Estimatable • Sized Right • Testable (Has i/o) User GUI Client Back End
  • 5. HOW BIG CAN STORIES BE? Months Weeks Days Hours Minutes
  • 6. WHAT WE WILL DO TODAY • Build a simple application • 5 iterations of 10 minutes each • Instead of 3-5 slices, we’re aiming for 15-20
  • 7. WHY SMALLER STORIES? • Learn faster w less risk • Better product earlier • More business options • Less time “underwater” • Deliver value more often • Happier stakeholders • Happier users CumulativeValueDelivered Time Small stories Medium stories Big stories
  • 8. THE PRODUCT: DISCOUNT CALCULATOR Three Inputs: • Quantity • Unit price • 2-letter state code One Output: • Total price (discounted price plus sales tax)
  • 9. SPRINT 0: CREATE THE BACKLOG • Demo-able • Implementable within sprint time box • Noticeably different from other “slices” • Adds value
  • 10. HOW WILL YOU BUILD? • What is your first slice? • Can you slice things even thinner? • Risk reduction • Value = customer value + knowledge value • Walking skeleton….
  • 11. SPRINT 1… • Write code • Tests (TDD, red/green, NFT?) • Pair? • Shout “slice” whenever you finish one • Go! • Demo / Acceptance test…
  • 12. SPRINT 2… • Shout “slice” whenever you finish one • Demo / Acceptance test…
  • 13. SPRINT 3… • Shout “slice” whenever you finish one • Demo / Acceptance test…
  • 14. SPRINT 4… • Shout “slice” whenever you finish one • Demo / Acceptance test…
  • 15. SPRINT 5… • Shout “slice” whenever you finish one • Demo / Acceptance test…
  • 16. COMMON SPLITTING TECHNIQUES • Defer complexity • Zero, then one, then many (e.g, states codes) • Hard coding values • Defer validation • Simple interface (GUI last)
  • 17. RETROSPECTIVE • How far did you get? • How was your code quality? • How many and what kind of slices? • What did you learn?
  • 18. BUT WE CAN’T SHIP THAT STORY… • Independent: demo-able, potentially release-able • A Minimal Viable Product or Minimal Viable Feature consists of one or more stories that have been put together to provide enough value to warrant it being put into production. • The Product Owner decides when enough value has accrued to meet the “let’s ship it” threshold

Notes de l'éditeur

  1. (Text on slide) After he named the exercise, he later realized that he got the language is backwards; we are not starting with an elephant and deconstructing it into slices. Having a pile of elephant slices does not produce an elephant. We are actually going in the other direction: starting from nothing and constructing the elephant. First an armature, then a walking skeleton, then a semblance of a moving elephant, and so on. So maybe Elephant lamination… not slicing - but Elephant Carpaccio is so much more catchy a name…
  2. So what’s a story? A Story typically follow a familiar format: As a <type of user, "Actor">, I want <some action> so that <some goal/achievement>.
  3. There’s quite a lot tucked into the simplicity of user/action/goal, and this mnemonic “Invest” helps breaks things out: Independent: story should be self-contained, w no dependency on another user story. It is demo-able for feedback and potentially releasable Negotiable: User stories, up until they are part of a sprint, can always be changed, refined, split and rewritten. Valuable: A user story must deliver value to the end user. (Where the actor is an external customer they can do something; for an internal user the value in a story might be knowledge). Value should be noticeably different from any other story. Estimatable: Clear DoD: so the team will be able to estimate the effort to complete it Sized right: typically this means that it can be completed within a single iteration with some level of certainty; Testable: Usually some sort of input/output and it has clear acceptance criteria. Also, typically spans multiple architectural layers: UI, client, and a backend. Nobody has figured out how to work that into the mnemonic though…
  4. How big can stories be? The “sized right” criteria is a little fuzzy. “Fits into an iteration” - which could be anywhere from a week to a month. Really big stories are typically called epics - which might then span more than one iteration. Anyway we keep our stories down in size to prob days. Today, we’re gonna play a bit and see what happens when we go to minutes… while we still keep them vertical
  5. Plan on use any programming language you want. Interface could be console, command line, mobile, web, gui, whatever.
  6. Why? Conceptually there are a lot of benefits to thin slicing Allows for quicker feedback cycles Makes it easier to verify things since there’s just a small increment of functionality Provides much more flexibility - for example dropping a story without the burden of the sunk cost Helps prevent assumptions which can lead to bloated stories Over time the area under the value curve - the cumulative value delivered is greater - which leads to much higher customer satisfaction And we’ll see what comes out of today’s experiment
  7. We will build a retail discount calculator: a runnable application with a UI taking 3 inputs and producing 1 output. (Write discount levels and sales tax on a whiteboard) Start w the first 3 Discount Levels  (change mid project to 5) • 1,000 3% • 3,000 5% • 5,000 7% • 10,000 10% <- add mid project • 50,000 15% <- add mid project 5 states sales tax (any other produces error message) • UT 4.7% • CA 7.5% • NV 6.85% • PA 6% • NJ 7% Set let’s break up into teams…. grabs some post its, and then we’ll talk about sprint 0…
  8. Plan on use any programming language you want. Interface could be console, command line, web, gui, whatever. Decide how will you write & test your code? Make a decision & stick with it. TDD. By-the-book TDD. Red Green Refactor. Red-green. Same as above, but refactoring is optional. Some tests. For some but not for all slices, and not necessarily test-first. NFT (no f*ing tests). Close laps tops. Grab post-its and pens. Create your backlogs
  9. Anybody need another sprint 0????
  10. Oh, legal just called. They said we can’t ship this thing unless we compute sales tax…
  11. Sales just called, they have a couple of whales on the hook, and we need two more discount levels * 10,000 10% * 50,000 15%
  12. How did you sprint? First - just a simple hello-world / echo-input-to-output Order value. 2 inputs (quantity and price), hard coded state? or enter sales tax, and 1 output. How did you handle sales tax? Sales tax directly? Simpler code, no data structure to map state to tax rate? State look ups, discount look ups GUI, etc…
  13. Name some take-away insights from today, Anything you might do differently in the future.
  14. Why would you want to build a story that isn't shippable? The answer is that some aspects of a feature might not be production worthy if you look at them in isolation.  An feature can consists of 1 or more stories, and an MVP of one or more features. The Product Owner then decides when there’s enough accrued value in individual stories to ship something.
  15. You can find me at http://www.andycleff.com