scrum + behavior driven development (bdd) - colombo

Post on 14-Apr-2017

348 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SCRUM + BEHAVIOR DRIVEN DEVELOPMENT

Naveen Kumar Singh@naveenhome

ABOUT ME

20 Years of experience in Software Development. Scrum and XP coach. Love talking about scaling scrum and system thinking. PMI-ACP, PMP

Write to me at naveenhome@gmail.comCall me on +91 9810547500Ping me on Twitter @naveenhome

DON’T BLAME WATERFALL. WE HAVE NEVER PRACTICED IT PROPERLY.

Requirement •Billing

Design •Billing

Development •Assumption

Testing •Bug report

Deploy •Blame game

IS THIS WORKING?

Specification

Coding

Test cases

Testing

Deploy

Rework

SO WHAT TO DO?

Max 2 suggestions per team 10

Mins

WHAT WILL COVER HERE?

Impact Mapping Goal Impact

Story MappingDeliverables

User Activities

Features

Specification by Examples/BDD

User Stories

Acceptance Criteria

Examples

Test First Source Code

BUT OUR TOPIC SAY SCRUM + BDD SO WHERE IS SCRUM?

No changes to Sprint Goal, Quality or Duration

Daily Scrum Sprint Review

Sprint Retrospective

Sprint Planning Shippable Product Increment

Sprint Backlog

Product Backlog

Product Improvements

Process Improvements

Vision

Sprint Goal

DoneProduct Owner

Scrum Master

Up to 1 month

Team

WHAT’S NEEDED TO START SCRUM?

Problem Statement – Traffic jam in Colombo during pick hours

You as stakeholder - What can you do beside blaming government?

Simple solution - Are you Okay with Car Pooling?

What stopping you?

GOAL

Let’s develop Car Pool Application

Registration Share Ride Book Ride Payment Review

CAN START DEVELOPMENT?

Too big to develop and requirement is not yet clear?

So what Next? Refinement

Registration Share Ride Book Ride Payment Review

PRODUCT BACKLOG REFINEMENT

When we refine? Couple of time before 1st sprint and then continuous.

Who do that? Product Owner and Development Team

What we do? Understand, Split, Estimate and Order

How to spilt? Is INVEST enough?

SOME SPLITTING TECHNIQUE

Split based on WORKFLOW

Registration Signup Verification Login

Login Manage Profile Logout

SOME SPLITTING TECHNIQUE

Split based on OPERATION

Share Ride Publish New Ride

View and Confirm

Modify Ride

Search all My ride

Delete Ride View Only

SOME SPLITTING TECHNIQUE

Split based on RULES

Signup No Rules Only 18+ Only IT People

Only Colombo People

SOME SPLITTING TECHNIQUE

Split based on DATA TYPE

Payment Return Favor Credit Card Cash Card

Account Transfer

Food Coupon

TRY SPLITTING 2 PER GROUP

Signup Verification Manage Profile

Publish New Ride

Book Ride Review Credit Card Search Ride

10 Mins

SO CAN WE START SPRINT?

We need acceptance criteria.

Not more than 3-4 criteria for a story.

ACCEPTANCE CRITERIA

Feature: Quick Post

As a car owner I want to post my ride with minimum requirement so that anyone can register for it.

ACCEPTANCE CRITERIA – WHY?

Define boundaries

Provide values to feature

Shared understandin

g

Help in derive tests

Help in knowing

when to stop

ACCEPTANCE CRITERIA

Source:______________Destination:________________

Time:________________ #Seat available:_____________

Name:_______________Email:______________________

Phone:_______________Cancel Submit

Share Your Ride

ACCEPTANCE CRITERIA

Feature: Quick Post As a car owner I want to post my ride with minimum requirement so that anyone can register for it.

Data must be searchableEnsure only valid data getting savedCancel should clear data so user can add new rideSuccessful submission will redirect user on home page

DISCUSSION OF ACCEPTANCE CRITERIA

If(user==“new”{ object = user}Else error

We should encourage patient to update vitals

Login -> Click on “New” and enter test data and then Result &%$^&

COLLABORATION OF 3 AMIGOS

Technical Feasibility

Happy Path

Exceptions, Test Data, Boundary Conditions

Developer

Business Tester

BUILDING RIGHT OR RIGHT PRODUCT?

Business Failure

Useless Stuff

Business Success

Technical Debts

Specification By Example

Build it Right

Build the Right Things

WHAT ARE SPECIFICATIONS BY EXAMPLE

Thin Slices of System Behavior That Deliver Business Value Described as concrete examples That are potentially automatable To create executable specifications Captured in live documentation

SPECIFICATIONS BY COLLABORATION

WHAT ARE SPECIFICATIONS BY EXAMPLE

Given_________________When_________________Then__________________

Gherkin

Given “Naveen” enter source “Office” and destination “Airport” and time “5.30pm” with 2 seats availableAnd he provides his mail id “naveenhome@gmail.com” and phone number “9810547500”When Click on “Submit”Then Display message “Ride Share” with “OK” buttonAnd take “Naveen” to “home” page on click on “OK”And his ride should be shown on top

ACCEPTANCE CRITERIA

Feature: Quick PostSuccessful submission will redirect user on home page

Given “Naveen” enter source “Office” and destination “Airport” and time “5.30pm” with 2 seats availableAnd he provides his mail id “naveenhome@gmail.com” and phone number “9810547500”When Click on “Submit”Then Display message “Ride Share” with “OK” buttonAnd take “Naveen” to “home” page on click on “OK”And his ride should be shown on top

GHERKIN

Feature – Name of feature Scenario – Behavior to be developed Given – Pre-conditions When – Actions to be performed Then – Expected Result And – Use for multiple Given, When & Then But – Describe exception cases Scenario Outline – Define multiple scenarios Examples – Multiple Scenarios Background – Avoid repeated Given

CAN WE START SPRINT NOW?

Why not? We have testable specification so let’s start Let’s make a rule for team to have examples for every

specification If examples not available then specification will not get

picked up for sprint Convert examples in test is our first activity Write enough code to pass those tests

TEST FIRST

Test

Code

Test Again

Refactor

Pass

Fail

Fail

BEHAVIOR DRIVEN DEVELOPMENT

BDD

Given Scenario

Then Expected Outcome

When Perform Action

LET’S GET STARTED

Write Feature to describe scenario in Gherkin Eclipse, Java, Cucumber, Selenium, Junit Create Test Runner class file Generate Steps file Write code to pass test

BDD - CHARACTERISTICS

A testable story (it should be the smallest unit that fits in an iteration)

The title should describe an activity The narrative should include a role, a feature, and a benefit The scenario title should say what's different The scenario should be described in terms of Givens,

Events, and Outcomes The givens should define all of, and no more than, the

required context The event should describe the feature

BDD - LIFECYCLE

35

Your Project Features Scenarios Steps

Your System Automation Library Support Code Step

Definitions

Technology Facing

Business Facing

THANK YOU!Reach out to me if today session was helpful

I Facilitate below workshop. naveenhome@gmail.com Certified Scrum Developer (CSD) WorkshopProduct Discovery and Requirement AnalysisTest Driven Development (TDD)Behavior Driven Development (BDD)Agile Testing and Test AutomationAgile and Scrum FoundationDevOps FoundationAgile Coaching and Facilitation

top related