Using flow approaches to effectively manage agile testing at the enterprise level

49
Testing Flow Using flow approaches to effectively manage agile testing at the enterpri se level Yuval Yeret – anban Lead - AgileSparks #LSSC1 1 /CC @yuval yer et

description

Slides from my upcoming LSSC11 talk:More and more organizations want to become more agile these days. When the theory hits the shores of reality, few organizations can get to an idealistic agile feature team that does all testing within sprints, has no need for release-level processes, and where everything is fully automated continuous deployment style. Usually the testing organization is in the eye of the storm when talking about Big Batches, Wastes, ineffective handoffs and mountains of rework, as well as high transaction costs. I’ve recently been using Lean/Kanban flow based approaches to provide a way to evolve testing organizations to a more effective way of working, so that they can better support earlier feedback and higher flexibility. I will present this work as well as case studies from enterprise-level product development companies that are starting to use these approaches. We will deal with the following challenges:* Complex environments when it is not realistic to finish all required work within a sprint * How to visualize and reduce testing batch sizes within sprints/releases using CFD * How to deal with the testing bottleneck so common in product development organizations – practical suggestions and how to deal with the mindset issues * How to run stabilization/hardening periods using Flow-based thinkinghttp://lssc11.crowdvine.com/talks/18074

Transcript of Using flow approaches to effectively manage agile testing at the enterprise level

Page 1: Using flow approaches to effectively manage agile testing at the enterprise level

Testing FlowUsing flow approaches to effectively

manage agile testing at the enterprise

levelYuval Yeret – Kanban Lead - AgileSparks

#LSSC11 /CC

@yuvalyeret

Page 2: Using flow approaches to effectively manage agile testing at the enterprise level

Repeat after me:VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE-VALUE

UE-VAL == YUVAL

Page 3: Using flow approaches to effectively manage agile testing at the enterprise level
Page 4: Using flow approaches to effectively manage agile testing at the enterprise level

What we covered TestingElasticity

Why Flow for Testing

Test-specificChallenges

To Flow

Issues at Scale

Page 5: Using flow approaches to effectively manage agile testing at the enterprise level

Distress call!

“We need to release much more frequently”“the business cannot live with months of

hardening”

We want Agile to save us!

Page 6: Using flow approaches to effectively manage agile testing at the enterprise level

Sufficient?

Not for Enterprise

scale

Necessary?

Not all of it

Pragmatic?

So so

So why not just do Scrum+XP?

Page 7: Using flow approaches to effectively manage agile testing at the enterprise level

DONE DONE – The Enterprise Testing Challenge

“We are doing agile iterations for development and testing and it is going quite well. One of our greatest challenges is dealing with the stuff we cannot finish within the iteration – currently its one big pile at the end”

R&D GMLarge Enterprise

Software Group

Page 8: Using flow approaches to effectively manage agile testing at the enterprise level

Longer Sprints

SprintSynchronize

dHandoffs

Flow-based Handoffs

What are the alternatives?

Page 9: Using flow approaches to effectively manage agile testing at the enterprise level

DONEDONE DONE

READY

Flowing all the way to DONE DONE

9

Page 10: Using flow approaches to effectively manage agile testing at the enterprise level

ComplementSolutions

FocusPragmati

c Pace

Page 11: Using flow approaches to effectively manage agile testing at the enterprise level

So... We started to use a recipe based on Flow

Page 12: Using flow approaches to effectively manage agile testing at the enterprise level

Current Reality Tree

• Let’s dive into why this is a problem

LOW PREDICTABILITY

QUALITY @ THE

END

LATE FEEDBACK

HIGH STABILIZATION COSTS

HEAVY MANUAL TESTING

BIG BATCHES

BIG FEATURES

LONG CYCLE TIMES

LARGE WIP

FEATURE PER

PERSON

SPECIALIZAT-ION

LONE WOLFS

LIMIT OPEN

DEFECTS

SMALLER FEATURES

AUTOMATE AS PART OF

DONE

CONTINUOUS INTEGRATION

DONE DONE

LIMIT FEATURES IN PROGRESS

COLLECTIVE OWNERSHIP

FIX M/L DEFECTS?

NOT EFFECTIVE

FEATURE FREEZE

POLICY TOO STRICT

LOSE SIGHT OF THE BIG PICTURE

LARGE OVERHEAD

HIGH COST

OUR BUILD IS

NOT STABLE

EXISTING GAP IS TOO

BIG

IMPROVEMENT BACKLOG

TRANSITION BASED ON NECESSITY

EFFECTIVE SLICING

WHOLE TEAM

AUTOMATION PYRAMID

INVEST IN REMOVING INSTABILITY

PRAGMATIC RISK

PROFILING

START AS IS, SHORTEN

WHEN PREDICTABLE

http://www.flickr.com/photos/librarygoblin/4307610546/lightbox/

http://blog.crisp.se/henrikkniberg

LIMIT AT THE FEATURE

LEVEL

[email protected]

Page 13: Using flow approaches to effectively manage agile testing at the enterprise level

Is this Evolution or Revolution? k/K?

Perfo

rman

ce

Time

Distress Calls + Israeli Impatience?

Evolution

This is what we see in Israel...

Page 14: Using flow approaches to effectively manage agile testing at the enterprise level

Lets see how it looks like in practice

Page 15: Using flow approaches to effectively manage agile testing at the enterprise level

“What is the gap between dev and test? What are we doing to close it?”

Page 16: Using flow approaches to effectively manage agile testing at the enterprise level

Limit Defects in Process – Early Quality is Cheap Quality

BAD GOOD

Page 17: Using flow approaches to effectively manage agile testing at the enterprise level

“We used to feel comfortable to

release quarterly and anxious to

release every two weeks. “ “Now releasing

every two weeks is natural. We are anxious when we can’t do it [due to holiday freeze]”FiftyOne.com

Page 18: Using flow approaches to effectively manage agile testing at the enterprise level

Always go for Continuous Deployment???Not necessarily

Page 19: Using flow approaches to effectively manage agile testing at the enterprise level

What we covered TestingElasticity

Test-specificChallenges

To Flow

Page 20: Using flow approaches to effectively manage agile testing at the enterprise level

Hard

en

ing

Limiting WIP – pull according to the bottleneck

R D C TTime

R D C TR D C T

R D C TR D C T

R D CDONE

Page 21: Using flow approaches to effectively manage agile testing at the enterprise level
Page 22: Using flow approaches to effectively manage agile testing at the enterprise level

WIP Limits SLACK TIME ???* No coaches were idle due to the preparation of this presentation

Page 23: Using flow approaches to effectively manage agile testing at the enterprise level

Hard

en

ing

R D C TR D C T

R D C TR D C T

R D C TR D C T

DONECoding Done

Feature Freeze

Identify

Exploit

Subordinate

to

Elevate

Prevent

Inertia

Page 24: Using flow approaches to effectively manage agile testing at the enterprise level

What LIMITED WIP Does

DD

D

TT

T

3

How can we help current work?

Help us with

Blocker

Fix open defects

on current work

Help us automate tests for

current work

WIP Limit!Can’t start

new DEV work!

Page 25: Using flow approaches to effectively manage agile testing at the enterprise level

What LIMITED WIP Does

DD

D

TT

T

3

How can I help you be more

efficient?

Ways to share the test load –

e.g. automation/set

ups work

Automate Setups and Test DataHalf of our work

is not core test work. Maybe you can take some of it, or

help us reduce waste there

Identify

Exploit

Subordinate toElevate

Prevent Inertia

Improve quality you deliver to

QA!

Page 26: Using flow approaches to effectively manage agile testing at the enterprise level

Testers

DevelopersDevelopers

Where Kanban is used, Whole Team, ATDD and other Agile Testing approaches emerge MUCH faster

Page 27: Using flow approaches to effectively manage agile testing at the enterprise level

problem solved?

Page 28: Using flow approaches to effectively manage agile testing at the enterprise level

“Testing was always like a pillow – it took whatever space was left. We used to have a cap on testing because there was a deadline...

...Now with the new Flow mode the inmates are running the asylum [and we have no cap on how long testing takes]”

A worried Dev Manager

Page 29: Using flow approaches to effectively manage agile testing at the enterprise level

Testing/Verification is a highly

Elastic activity

Lets look at a few ways to cope ...

Page 30: Using flow approaches to effectively manage agile testing at the enterprise level

Cadence of

releases/drops, will

drive completion

Page 31: Using flow approaches to effectively manage agile testing at the enterprise level

Have an explicit policy regarding the desired/acceptable size of work

Page 32: Using flow approaches to effectively manage agile testing at the enterprise level

Care about Cycle Time & Done

TestingEnd to End

Page 33: Using flow approaches to effectively manage agile testing at the enterprise level

Due Dates can help(Especially if doable and agreed upon with delivery team)

http://yuvalyeret.com/2010/09/19/kanban-early-warning-using-a-predictive-variant-of-spc/

Page 34: Using flow approaches to effectively manage agile testing at the enterprise level

http://yuvalyeret.com/2010/09/19/kanban-early-warning-using-a-predictive-variant-of-spc/

No REAL external Due Date?try Internal Cycle Time Soft Goals based on learned capabilities

Avoid local due dates!

Page 35: Using flow approaches to effectively manage agile testing at the enterprise level

Try...

In-Flight

Control Chart

Page 36: Using flow approaches to effectively manage agile testing at the enterprise level

Can testing be

overdone?

Page 37: Using flow approaches to effectively manage agile testing at the enterprise level

Talk about what is Done

Establish Explicit Policies

Page 38: Using flow approaches to effectively manage agile testing at the enterprise level

Experiment with using an Explicit Policies board documenting your

process

Page 39: Using flow approaches to effectively manage agile testing at the enterprise level

Different work types / CoS can

have different

Done/Release Criteria

Page 40: Using flow approaches to effectively manage agile testing at the enterprise level

Goals+Visibility enhance Purpose

3

2

1

Page 41: Using flow approaches to effectively manage agile testing at the enterprise level

What we covered TestingElasticity

Issues at Scale

Page 42: Using flow approaches to effectively manage agile testing at the enterprise level

Will visualizing and managing flow in

each of those roads be enough?

Page 43: Using flow approaches to effectively manage agile testing at the enterprise level

Need to visualize and manage the global end to end flow across shared resources

Page 44: Using flow approaches to effectively manage agile testing at the enterprise level

Sharing

Page 45: Using flow approaches to effectively manage agile testing at the enterprise level

Manage flow at the level at which resources are shared

Page 46: Using flow approaches to effectively manage agile testing at the enterprise level

3

Page 47: Using flow approaches to effectively manage agile testing at the enterprise level

Example Policy - Classes of Service for Downstream Involvement

Risk Profiling Involvement mode of the shared resource

Classes of Treatment

Page 48: Using flow approaches to effectively manage agile testing at the enterprise level

What we covered TestingElasticity