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

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

Dec 13, 2014

Download

Technology

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.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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!