scrum + behavior driven development (bdd) - colombo

36
SCRUM + BEHAVIOR DRIVEN DEVELOPMENT Naveen Kumar Singh @naveenhome

Upload: naveen-kumar-singh

Post on 14-Apr-2017

348 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Scrum + Behavior Driven Development (BDD) - Colombo

SCRUM + BEHAVIOR DRIVEN DEVELOPMENT

Naveen Kumar Singh@naveenhome

Page 2: Scrum + Behavior Driven Development (BDD) - Colombo

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 [email protected] me on +91 9810547500Ping me on Twitter @naveenhome

Page 3: Scrum + Behavior Driven Development (BDD) - Colombo

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

Requirement •Billing

Design •Billing

Development •Assumption

Testing •Bug report

Deploy •Blame game

Page 4: Scrum + Behavior Driven Development (BDD) - Colombo

IS THIS WORKING?

Specification

Coding

Test cases

Testing

Deploy

Rework

Page 5: Scrum + Behavior Driven Development (BDD) - Colombo

SO WHAT TO DO?

Max 2 suggestions per team 10

Mins

Page 6: Scrum + Behavior Driven Development (BDD) - Colombo

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

Page 7: Scrum + Behavior Driven Development (BDD) - Colombo

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

Page 8: Scrum + Behavior Driven Development (BDD) - Colombo

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?

Page 9: Scrum + Behavior Driven Development (BDD) - Colombo

GOAL

Let’s develop Car Pool Application

Registration Share Ride Book Ride Payment Review

Page 10: Scrum + Behavior Driven Development (BDD) - Colombo

CAN START DEVELOPMENT?

Too big to develop and requirement is not yet clear?

So what Next? Refinement

Registration Share Ride Book Ride Payment Review

Page 11: Scrum + Behavior Driven Development (BDD) - Colombo

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?

Page 12: Scrum + Behavior Driven Development (BDD) - Colombo

SOME SPLITTING TECHNIQUE

Split based on WORKFLOW

Registration Signup Verification Login

Login Manage Profile Logout

Page 13: Scrum + Behavior Driven Development (BDD) - Colombo

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

Page 14: Scrum + Behavior Driven Development (BDD) - Colombo

SOME SPLITTING TECHNIQUE

Split based on RULES

Signup No Rules Only 18+ Only IT People

Only Colombo People

Page 15: Scrum + Behavior Driven Development (BDD) - Colombo

SOME SPLITTING TECHNIQUE

Split based on DATA TYPE

Payment Return Favor Credit Card Cash Card

Account Transfer

Food Coupon

Page 16: Scrum + Behavior Driven Development (BDD) - Colombo

TRY SPLITTING 2 PER GROUP

Signup Verification Manage Profile

Publish New Ride

Book Ride Review Credit Card Search Ride

10 Mins

Page 17: Scrum + Behavior Driven Development (BDD) - Colombo

SO CAN WE START SPRINT?

We need acceptance criteria.

Not more than 3-4 criteria for a story.

Page 18: Scrum + Behavior Driven Development (BDD) - Colombo

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.

Page 19: Scrum + Behavior Driven Development (BDD) - Colombo

ACCEPTANCE CRITERIA – WHY?

Define boundaries

Provide values to feature

Shared understandin

g

Help in derive tests

Help in knowing

when to stop

Page 20: Scrum + Behavior Driven Development (BDD) - Colombo

ACCEPTANCE CRITERIA

Source:______________Destination:________________

Time:________________ #Seat available:_____________

Name:_______________Email:______________________

Phone:_______________Cancel Submit

Share Your Ride

Page 21: Scrum + Behavior Driven Development (BDD) - Colombo

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

Page 22: Scrum + Behavior Driven Development (BDD) - Colombo

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 &%$^&

Page 23: Scrum + Behavior Driven Development (BDD) - Colombo

COLLABORATION OF 3 AMIGOS

Technical Feasibility

Happy Path

Exceptions, Test Data, Boundary Conditions

Developer

Business Tester

Page 24: Scrum + Behavior Driven Development (BDD) - Colombo

BUILDING RIGHT OR RIGHT PRODUCT?

Business Failure

Useless Stuff

Business Success

Technical Debts

Specification By Example

Build it Right

Build the Right Things

Page 25: Scrum + Behavior Driven Development (BDD) - Colombo

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

Page 26: Scrum + Behavior Driven Development (BDD) - Colombo

SPECIFICATIONS BY COLLABORATION

Page 27: Scrum + Behavior Driven Development (BDD) - Colombo

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 “[email protected]” 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

Page 28: Scrum + Behavior Driven Development (BDD) - Colombo

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 “[email protected]” 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

Page 29: Scrum + Behavior Driven Development (BDD) - Colombo

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

Page 30: Scrum + Behavior Driven Development (BDD) - Colombo

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

Page 31: Scrum + Behavior Driven Development (BDD) - Colombo

TEST FIRST

Test

Code

Test Again

Refactor

Pass

Fail

Fail

Page 32: Scrum + Behavior Driven Development (BDD) - Colombo

BEHAVIOR DRIVEN DEVELOPMENT

BDD

Given Scenario

Then Expected Outcome

When Perform Action

Page 33: Scrum + Behavior Driven Development (BDD) - Colombo

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

Page 34: Scrum + Behavior Driven Development (BDD) - Colombo

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

Page 35: Scrum + Behavior Driven Development (BDD) - Colombo

BDD - LIFECYCLE

35

Your Project Features Scenarios Steps

Your System Automation Library Support Code Step

Definitions

Technology Facing

Business Facing

Page 36: Scrum + Behavior Driven Development (BDD) - Colombo

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

I Facilitate below workshop. [email protected] 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