Slide 1

Slide 1 text

DEFINING “DONE” aka Pre-Automation ATDD Friday, June 28, 13

Slide 2

Slide 2 text

2 WHERE ARE WE? Idea Measurable Business Goals User Research and Modeling User Stories UX Prototyping Story Map Product Release Plan START BUILDING Friday, June 28, 13

Slide 3

Slide 3 text

3 WHAT’S A STORY? Card Conversation Confirmation Friday, June 28, 13

Slide 4

Slide 4 text

4 STORY VS FEATURE As a I want to So that Friday, June 28, 13

Slide 5

Slide 5 text

5 INVEST  I - Independent N - Negotiable V - Valuable E - Estimable S - Small T - Testable Friday, June 28, 13

Slide 6

Slide 6 text

6 BAD BOOKCLUB STORIES monthly book-club order. If I log in, then click on book-club view, then click on my wish list, I want the wish list to be ordered such that books that are part of my book-club(s) are shown at the top, and each title has a and tag. If I click on Buy Now, the book becomes part of my Friday, June 28, 13

Slide 7

Slide 7 text

7 BAD BOOKCLUB STORIES We need a join table between users and addresses Friday, June 28, 13

Slide 8

Slide 8 text

8 BAD BOOKCLUB STORIES As a database admin I want to add a join table between users and addresses so that I can normalize the address table which is full of duplicates Friday, June 28, 13

Slide 9

Slide 9 text

9 BETTER BOOKCLUB STORIES As a book-club subscriber, I would like to see available book-club selections emphasized at the top of my wish-list. That way, I know I will get goodies for buying those now. Friday, June 28, 13

Slide 10

Slide 10 text

10 BETTER BOOKCLUB STORIES Book-club members who live together would like to have their shipments delivered together, to save shipping charges. To make this more user-friendly, they should be able to share their shipping addresses. Friday, June 28, 13

Slide 11

Slide 11 text

11 BAD BOOKCLUB STORIES Add book clubs Friday, June 28, 13

Slide 12

Slide 12 text

WHY SPLIT STORIES? 12 Friday, June 28, 13

Slide 13

Slide 13 text

WHY SPLIT STORIES? 12 Smaller is Better Friday, June 28, 13

Slide 14

Slide 14 text

WHY SPLIT STORIES? 12 Smaller is Better Defer functionality Friday, June 28, 13

Slide 15

Slide 15 text

BAD SPLITTING TECHNIQUES Splitting by Team Member Role  Design  Code  QA  Document Splitting by Code Responsibility  UI  Logic  Database  QA  Document 13 Friday, June 28, 13

Slide 16

Slide 16 text

14 ALMOST STORY SPLITTING Newsletter Subscription Splitting by Task Collect user info Integrate newsletter delivery system Notify user of subscription Notify organization of new subscription Friday, June 28, 13

Slide 17

Slide 17 text

STORY SPLITTING 15 INVEST Collect email and send newsletter Collect name, address, phone Notify both parties after registered Friday, June 28, 13

Slide 18

Slide 18 text

SPLITTING TECHNIQUES Workflow User Experience Add-Ons Happy-Path and Exceptions Task Alternatives 0, 1, Many (Simple/Complex) CRUD Performance Major Effort, Minor Enhancements Ancillary Details 16 Friday, June 28, 13

Slide 19

Slide 19 text

CLEVELAND MUSEUM PROJECT http://www.googleartproject.com Help Clevelanders and tourists find exhibits they want to see and share their enthusiasm about those works 17 Friday, June 28, 13

Slide 20

Slide 20 text

EXERCISE - SPLITTING 15 mins Select a card and split it into as many stories as you can. Remember INVEST Try to sort those split stories by size 18 Friday, June 28, 13

Slide 21

Slide 21 text

THREE AMIGOS 19 Knows what to build Knows how to build it Knows how to verify it Friday, June 28, 13

Slide 22

Slide 22 text

20 15 mins Select a story Make sure all members agree on the story’s purpose Create acceptance criteria for one user story (When is it done?) Use team roles for inspiration If it’s hard to come up with acceptance criteria, maybe your story needs to be split differently? Hints: EXERCISE - THREE AMIGOS Friday, June 28, 13

Slide 23

Slide 23 text

CUCUMBER 21 Feature: Getting directions to Ohio City Burrito As a hungry burrito lover I want to drive to OCB So I can get a Brother’s Burrito Scenario: Directions button should take us to Google Maps Given I'm hungry for some OCB When I touch the map icon Then Google maps should provide me with directions Friday, June 28, 13

Slide 24

Slide 24 text

22 Cukes are meant to be READ Short and Sweet No TECHNOBABBLE Don’t get hung up on application implementation details Given I have 15 mins to express the acceptance criteria When I write cucumber scenarios Then I know the card is done Hints: EXERCISE - CUCUMBER SCENARIO Given When Then And But Gherkin Keywords Friday, June 28, 13

Slide 25

Slide 25 text

ATDD 23 Define Fail Fail Refactor Pass Pass Acceptance Test Developer Test TDD Friday, June 28, 13

Slide 26

Slide 26 text

WHY ATDD? Constant Collaboration Improved Understanding Eliminates Waste Move Risk Forward Bake Quality In 24 Friday, June 28, 13

Slide 27

Slide 27 text

THANKS! Steve Jackson @stevejxsn [email protected] http://xp123.com/articles/invest-in-good-stories-and-smart-tasks/ http://www.leandog.com/what-we-do/training/ Friday, June 28, 13

Slide 28

Slide 28 text

26 As a picky art aficionado, I want to search for many art pieces, so that As an aspiring artist, I want to I can see what Cleveland has to offer. examine a piece in great detail, so that I can learn from the masters. As a bored tourist, I want to know where a piece is located, so that I can see it in person. As an interested historian, I want to know the history of an exhibit, so that I can enjoy it more. As a social butterfly, I want to share the pieces that I like and know what my friends think too. As an interested onlooker, I want to know if there are similar items nearby, so that I don’t miss them during my visit. Friday, June 28, 13

Slide 29

Slide 29 text

27 As a friendly person, I want to meet my friends at the museum, so that I As an amateur critic, I want to can share the experience with them. compare two pieces, so that I can examine the differences. As an aspiring artist, I want to add my own art, so that I can share my passion with the world. As a museum aficionado, I want to create my own gallery, so that I can look at my favorites later. As a parent, I want to make exhibits fun for my 5 year old, so that they learn to appreciate them. As a creative person, I want to create new artwork from existing art. Friday, June 28, 13