scrum + behavior driven development (bdd) - colombo
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 [email protected] 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 “[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
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
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. [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