52
Devtest: using Lean and Devops practices to bring QA and coders together Laurent Bossavit Twitter:@Morendil http://institut-agile.fr/

Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Embed Size (px)

DESCRIPTION

Here is a real story, not a fairy tale, to shine a hopeful light for those walking the Lean path in software organizations. A story of developers and testers growing together as problem-solvers, through the catalyzing application of some Lean principles, a few key ideas and shiny new tools from the Devops movement, to the wisdom of the gemba.

Citation preview

Page 1: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Devtest: using Lean and Devops

practices to bring QA and coders together

Laurent Bossavit Twitter:@Morendil http://institut-agile.fr/

Page 2: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Devtest: a love story

Laurent Bossavit Twitter:@Morendil http://institut-agile.fr/

Page 3: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Once upon a time...

Page 4: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014
Page 5: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014
Page 6: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Who?

• ~ 2000 users, ~ 40000 transactions per day

• ~ 60 members on team, including

• ~ 30 developers

• ~ 10 testers (“qualifieurs”)

Page 7: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

What?

Page 8: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Iterations, task board...

Page 9: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Pair programming

Page 10: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Continuous integration

Page 11: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

But not all was well...

Page 12: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Kaizen spirit ?

Page 13: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

The actual process...

Page 14: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

“Why is everything taking so long?”

Page 15: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

CORE profile

REFACTORING, DATA UPDATES

REACT TO PRODUCTION ISSUES; ANALYSE DEFECTS; FIX DEFECTS

USER STORIES

Development

Based on the CORE profile tool, cf. http://www.slideshare.net/operaepartners/lean-it-strategy-lean-measurement-and-organizational-design

Value adding

Predictable

“Failure demand”: non-value adding, perturbs other work

Page 16: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

End user impact

• Constant background grumbling from end users, eroding confidence in product

• Flaring up into occasional crises on “MEP” days (deployments, roughly monthly)

• Substantial monetary impact: each failed order is re-processed manually

Page 17: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Why are defects slowing us so much?

Page 18: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

“Staple yourself to a bug”

Signalement via Océane

(Vendeur via chaîne support)

Qualif Soft

Catalogue Dév

(remontée de mocks)

(repro)

(defectfermé)

(analyse)

(defectréouvert)

Dév

(correction)

Defect #2875: Migrations Optimale -> Open Pro KO (aussi détecté par STELA début juin)

(ano QC)

• Total lead time: 6 weeks

Page 19: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Best repeatable performance?

90% > 1 day 75% > 3 days 65% > 5 days 50% > 8 days

Page 20: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Hidden costs of production defects

Page 21: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

“Passive cost windows”

• Bug introduced

• Bug shipped

• Bug detected

• Bug reported

• Bug fixed

• Fix shipped

} “Official” fix lead time }Actual

impact

Page 22: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Red bin system

Page 23: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Existing, but under-used...

Page 24: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

A delicate subject must now come up...

(Persons of a delicate disposition are advised

to cover their ears)

Page 25: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Bug reproduction!

"Calopteryx virgo paarung" by Holger Gröschl - http://www.naturspektrum.de/ns1.htm. Licensed under Creative Commons Attribution-Share Alike 2.0-de via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Calopteryx_virgo_paarung.jpg#mediaviewer/File:Calopteryx_virgo_paarung.jpg

Page 26: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

“Repro” the key to improving the process?

• Minimum time for a repro: 1/2 day...

• ...often stretching to a few days...

• ...sometimes up to several weeks!

Page 27: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Setting goals for “repro” lead time

Current: 1/2 day to

weeks

Target: 5 min

Page 28: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

What’s so hard about repro-ing defects?

Page 29: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Incomplete logging...

Page 30: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014
Page 31: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

What’s so hard about repro? Take 2...

Page 32: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Standardized work: software defects

• Repro needs inputs identical to production:

• same third-party inputs (web services)

• same path through application

• same configuration settings

• same database version

• same application version

Page 33: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

• After getting a good “repro” and only then:

• identify causes (debugger, static analysis)

• “necessary and sufficient conditions”

• capture as an automated test

Standardized work: software defects

Page 34: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

What’s so hard about repro? Take 3...

Page 35: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Bureaucracy...

Page 36: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Why are test environments a scarce resource ?

Page 37: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Devops to the rescue!

Page 38: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Infrastructure as Code

http://bit.ly/jedi_iac

Page 39: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Infrastructure?

• Physical servers

• Virtual machines

• Network links

• Operating systems

• Application dependencies

• Application containers (e.g. JonAS)

Page 40: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

“as code”?

• everything is a text file (no manual setup)

• under version control, with commit messages

• ideally with automated tests

Page 41: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Servers on demand

http://martinfowler.com/bliki/SnowflakeServer.html

http://martinfowler.com/bliki/PhoenixServer.html

Page 42: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

docker.io

Page 43: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

New tooling

Page 44: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Action...

Page 45: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

First results...

• Target of 5 minutes reached in “pilot” phase

• Remaining challenges (technical)

• bring more of the system configuration under version control

• closer integration of the tools involved

Page 46: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

First results...

• Remaining challenges (non-technical)

• reach 5 minutes consistently

• align process with reality: count “red bin” defects as official bugs, proactively

• apply “5 whys” to production bugs

Page 47: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Most importantly...

• Dev and QA really collaborating :)

Page 48: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

How do we streamline defect reproduction?

Page 49: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Sophisticated tooling

Visual Test

Page 50: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

How do we get everyone to care about production defects?

Page 51: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

How the story ends...

Page 52: Devtest: using Lean and Devops practices to bring QA and coders together by Laurent Bossavit, Lean IT Summit 2014

Merci!