Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s...

31
Start with Quality – an Agile Tester’s Case Study

Transcript of Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s...

Page 1: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Start with Quality – an Agile Tester’s Case Study

Page 2: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Increasing defect trend - 2013 critical bugs

Page 3: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Decreasing defect trend - 2014 critical bugs

Page 4: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Agile mindset

Before:

Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers, gut feel and stabs in the dark.

The only metrics measured where budgeted sales vs actual sales, and churn. Team was accountable for missing targets.

Missed release deadlines blamed for missed sales targets, and poor developer productivity blamed for missing delivery deadlines.

Development cycle of about 15 weeks of development, 3-5 weeks of testing and then a release.

Team took no responsibility because the team was held accountable to deadlines they didn’t agree to, and for solutions & features they weren’t consulted on.

What we saw often was short term solutions, ending up in long term problems.

Page 5: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Agile mindset

Now:

Autonomy and accountability. Manager’s role is to embrace collective responsibility and to help their team excel and develop into leaders.

Measure our economic progress: Understand what we value: customer growth, revenue growth, user engagement, higher employee retention.

Do a value proposition canvas and lean canvas business model for all new products and large features. Is this the right action at the right time?

Have a hypothesis for each new feature and compare progress metrics with actual outcomes. Have metrics indicating business health (LTV, CAC, LTV:CAC, MRR, Churn,

Customer Happiness Index).

Experiment with changes to the way we work then measure to test our hypothesis. Constraining the feature pipeline, ready criteria, done criteria, agile testing methodology, moved towards continuous

testing and deployment.

Limit work in progress: Agile testing, deployment to test servers every week, deployment to production every sprint (2 weeks).

Distributed leadership and responsibility where we help each other excel.

Digging deeper to find systematic causes, allowing us to come up with more permanent solutions.

Page 6: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Agile is a direction, not a place

The important thing isn’t how you work.

The important thing is how you improve the way you work!

Page 7: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8

Release

Test Fix %&@#!

Before:

Test at the end

Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8

ReleaseTried:

Test continuouslyTest Fix %&@#!

Test Fix Time

Saved

Page 8: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8

Release

What we do now

Release Release Release

Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8

ReleaseWhat we ended

up with

Test Fix %&@#!

Fix %&@#!

Test Fix Time

Saved

Page 9: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Building a product

Page 10: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Document Plan

Constrain Pipeline

Prioritise

Build MVP

Iterate to PMF

Optimise

Building a product

Is this the right action

at the right time?

Page 11: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

How do you ensure that your product works?

1.Understand the problem

2.Iterate until you’ve solved it

Who are the stakeholders?

How will we know when we’ve solved it?

What need do they have that we want to solve?

How will we know if we’re moving in the right direction?

Minimise the distance to MVP

Deliver, measure, adjust continuously

Henrik Kniberg

Page 12: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

How do you ensure that your product works?

1.Understand the problem

2.Iterate until you’ve solved it

Who are the stakeholders?

How will we know when we’ve solved it?

What need do they have that we want to solve?

How will we know if we’re moving in the right direction?

Minimise the distance to MVP

Deliver, measure, adjust continuously

Henrik Kniberg

Page 13: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

The Value Proposition CanvasDocument

Plan

Constrain

Pipeline

Prioritise

Build

MVP

Iterate to

PMF

Optimise

Page 14: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

How do you ensure that your product works?

1.Understand the problem

2.Iterate until you’ve solved it

Who are the stakeholders?

How will we know when we’ve solved it?

What need do they have that we want to solve?

How will we know if we’re moving in the right direction?

Minimise the distance to MVP

Deliver, measure, adjust continuously

Henrik Kniberg

Page 15: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

The Business Model CanvasDocument

Plan

Constrain

Pipeline

Prioritise

Build

MVP

Iterate to

PMF

Optimise

Page 16: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Constrain the Feature PipelineDocument

Plan

Constrain

Pipeline

Prioritise

Build

MVP

Iterate to

PMF

Optimise

Page 17: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

How do you ensure that your product works?

1.Understand the problem

2.Iterate until you’ve solved it

Who are the stakeholders?

How will we know when we’ve solved it?

What need do they have that we want to solve?

How will we know if we’re moving in the right direction?

Minimise the distance to MVP

Deliver, measure, adjust continuously

Henrik Kniberg

Page 18: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Build MVP and Verify

Problem InterviewFormulate Testable

Hypotheses

Understand ProblemIs there a problem worth solving and

how do customers solve the problem

today?

Hypotheses Build Measure / Learn

Articulate Problem

Solution InterviewFormulate Testable

Hypotheses

Validate DemoDefine a possible solution using a

demo to help customer visualise?

Build Demo

MVP InterviewFormulate Testable

Hypotheses

Validate Solution

QualitativelyUse feedback from demo to distil

down to the products essence (MVP)

which we should then build.

Build Smallest

Solution (MVP)

Verify

Quantitatively

Validate Solution

QuantitativelyPositive qualitative signal from

customers grants us permission to

move forward.

Validated Learning Loop 1

Validated Learning Loop 2

Validated Learning Loop 3

Validated Learning Loop 4

Document

Plan

Constrain

Pipeline

Prioritise

Build

MVP

Iterate to

PMF

Optimise

Page 19: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Make sure the backlog items are testable & valuable

As a ConsultantI want to assign soil sample collection jobs to a userso that collectors know what jobs are assigned to them.

Prototype: How to demo/test done:1) Select one or more or jobs from

the unassigned jobs list.2) Click “assign jobs”3) Start typing a user’s name

and/or4) Select the user from the list of

users5) Click “Assign to selected user”

Page 20: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Team Layout

Developers

Testers

Product Managers

Designer

Page 21: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Team Layout

Black Team

Black TeamBlue Team

Floating

Developers

Testers

Product Managers

Designer

Blue Team

Page 22: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Continuous Delivery

Automatic

Manual

Feature Toggles

Henrik Kniberg

Page 23: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Henrik Kniberg

Page 24: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Test backlogStep 1: Decide what needs to be tested

● Add new sample job● Delete sampling job● Assign sample job to a user● Unassign sample job from a user● Mark a sample job as complete● Filter sample jobs● Sort sample jobs● Which jobs do I have to do?● Viewing a sample collection job● Editing a grid on a sample collection job

Page 25: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Step 2: Classify each test

Test Case Risk Manual Test

Cost

Automation

Cost

Add new sample job High 0.5 hrs low

Delete sampling job High 0.5 hrs low

Assign sample job to a user Med 2 hrs low

Unassign sample job from a user Med 0.5 hrs low

Mark a sample job as complete High 0.5 hrs low

Filter sample jobs Med 0.5 hrs high

Sort sample jobs Low 0.5 hrs low

Which jobs do I have to do? Med 2 hrs high

Viewing a sample collection job High 2 hrs low

Pay every

timePay once

Page 26: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Step 3: sort the list

Test Case Risk Manual Test

Cost

Automation

Cost

Viewing a sample collection job High 2 hrs low

Assign sample job to a user Med 2 hrs low

Mark a sample job as complete High 1 hr medium

Add new sample job High 0.5 hrs low

Delete sampling job High 0.5 hrs low

Unassign sample job from a user Med 0.5 hrs low

Sort sample jobs Low 0.5 hrs low

Filter sample jobs Med 0.5 hrs high

Which jobs do I have to do? Med 0.5 hrs high

Automate first!

Don’t bother

automating

Automate later!

Page 27: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Bug fixing process

Bug found!

Before

Log it

Release

test

Fix bugs

Bug found!

Now

Don’t log it.

Fix it NOW!

Page 28: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Top-down and bottom-up development

Page 29: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

MindsetQuality

AssuranceQuality

Assistance

Manual testAutomatic

test

Functional test

Exploratory test

RequirementsCustomer

needs

Late involvement

Early involvement

Long feedback loop

Short feedback loop

Find defectsPrevent defects

Henrik Kniberg

Page 30: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,

Metrics Before and After

• Defects

• Customer Satisfaction

• Employee Satisfaction

• Customer Retention

• Sales

• New Customers

• Less Work Better Results

Page 31: Start with Quality an Agile - MTUG...Agile mindset Before: Product changes based on internal SME’s knowing what changes needed to be made, which was usually based on noisy customers,