Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment...

45
PUBLIC Areti Panou, SAP October 3 rd 2019 Turning the Quality of Your Deployment Pipeline Into a Team Task

Transcript of Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment...

Page 1: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

PUBLIC

Areti Panou, SAP

October 3rd 2019

Turning the Quality of Your Deployment Pipeline Into a Team Task

Page 2: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

2PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Who is fixing the failing pipeline steps?

Security tests

API tests

Performance tests

build

unit tests

code checks

deploy smoke test

@unremarkableQA

Should I do

something?

Was it me?

I guess

somebody is

already working

on this

Page 3: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

3PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

The bystander effect

@unremarkableQA

Page 4: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

4PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

“The Somebody Else's Problem field... relies on people's natural predisposition not to see anything they don't want to, weren't expecting, or can't explain”

@unremarkableQA

Douglas Adams

Life, the Universe and Everything

Page 5: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

Addressing the “Somebody Else’s Problem” (SEP) field

How is the

field

activated?

How is the

field

deactivated?

How to keep

the field

inactive?

@unremarkableQA

Page 6: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

Addressing the “Somebody Else’s Problem” (SEP) field

How is the field

activated?

How is the

field

deactivated?

How to keep

the field

inactive?

@unremarkableQA

Page 7: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

7PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

QAs were the messengers making

any failure your problem

@unremarkableQA

Page 8: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

8PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

QAs didn’t trust developers to make

failures their problem

@unremarkableQA

Page 9: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

9PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Unless personally assigned,

developers believed that pipeline step

failures were somebody else’s

problem

@unremarkableQA

Page 10: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

Addressing the “Somebody Else’s Problem” (SEP) field

How is the

field

activated?

How is the field

deactivated?

How to keep

the field

inactive?

Page 11: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

How is the field deactivated?“Keep only those things that speak to the heart, and discard items that no longer spark joy.”

Marie Kondo

@unremarkableQA

Remove

things

you don’t

want to

see

Remove

things

you can’t

explain

Remove

things

you don’t

expect to

see

Page 12: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

How is the field deactivated?“Keep only those things that speak to the heart, and discard items that no longer spark joy.”

Marie Kondo

@unremarkableQA

Remove things

you don’t

want to see

Remove

things

you can’t

explain

Remove

things

you don’t

expect to

see

Page 13: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

13PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Complicated-to-fix stepsLong running stepsFlaky steps

Things you don’t want to see

@unremarkableQA

Page 14: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

14PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

“Place any non-deterministic test in a quarantined area. (But fix quarantined tests quickly.)”

Martin Fowler (@martinfowler)

Eradicating Non-Determinism in

Tests (2011)

@unremarkableQA

Page 15: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

15PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Complicated-to-fix stepsLong running stepsFlaky steps

Quarantine, stabilise or

remove

Things you don’t want to see

@unremarkableQA

Page 16: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

16PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Complicated-to-fix stepsLong running steps

Parallelise to save time

Flaky steps

Quarantine, stabilise or

remove

Things you don’t want to see

@unremarkableQA

Page 17: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

17PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

“A 30 minute code change took 2 weeks to get the acceptance tests working”

Sarah Wells (@sarahjwells)

Quality for ‘Cloud Natives’: what

changes when your systems are

complexed and distributed (2019)@unremarkableQA

Page 18: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

18PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

“Introduce synthetic monitoring. This replaced our acceptance tests”

Sarah Wells (@sarahjwells)

Quality for ‘Cloud Natives’: what

changes when your systems are

complexed and distributed (2019)@unremarkableQA

Page 19: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

19PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Complicated-to-fix steps

Simplify or replace

Long running steps

Parallelise to save time

Flaky steps

Quarantine, stabilise or

remove

Things you don’t want to see

@unremarkableQA

Page 20: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

How is the field deactivated?“Keep only those things that speak to the heart, and discard items that no longer spark joy.”

Marie Kondo

@unremarkableQA

Remove

things

you don’t

want to

see

Remove

things

you can’t

explain

Remove things

you don’t

expect to see

Page 21: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

21PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Being the n-th person

notified of the failed step

Unresponsive external

servicesNew unannounced steps

Things you don’t expect to see

@unremarkableQA

Page 22: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

22PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Being the n-th person

notified of the failed step

Unresponsive external

services

Ping external services before

starting the pipeline

New unannounced steps

Things you don’t expect to see

@unremarkableQA

Page 23: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

23PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Being the n-th person

notified of the failed step

Unresponsive external

services

Ping external services before

starting the pipeline

New unannounced steps

Establish a new steps ritual

Things you don’t expect to see

@unremarkableQA

Page 24: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

24PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Make transparent who is already working on a fix

[email protected]

Claim – Jenkins plugin

@unremarkableQA

Page 25: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

25PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Being the n-th person

notified of the failed step

Create public-awareness of

who is resolving the failure

Unresponsive external

services

Ping external services before

starting the pipeline

New unannounced steps

Establish a new steps ritual

Things you don’t expect to see

@unremarkableQA

Page 26: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

How is the field deactivated?“Keep only those things that speak to the heart, and discard items that no longer spark joy.”

Marie Kondo

@unremarkableQA

Remove

things

you don’t

want to

see

Remove things

you can’t

explain

Remove

things

you don’t

expect to

see

Page 27: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

27PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Steps with unclear fix

deadlines

Steps with unclear failure

implications

Steps with unclear purpose

Things you can’t explain

@unremarkableQA

Page 28: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

28PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

A good example of a bad step description

@unremarkableQA

Page 29: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

29PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Steps with unclear fix

deadlines

Steps with unclear failure

implications

Steps with unclear purpose

Make the value and

information of the step visible

Things you can’t explain

@unremarkableQA

Page 30: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

30PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Steps with unclear fix

deadlines

Steps with unclear failure

implications

Make the impact and the

reasons of the failure

transparent

Steps with unclear purpose

Make the value and

information of the step visible

Things you can’t explain

@unremarkableQA

Page 31: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

31PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Steps with unclear fix

deadlines

Set a time limit for the fixes

Steps with unclear failure

implications

Make the impact and the

reasons of the failure

transparent

Steps with unclear purpose

Make the value and

information of the step visible

Things you can’t explain

@unremarkableQA

Page 32: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

32PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Security_testsName

Checks that APIs are secure

Description

A better example of a step description

Sec_API_Perm_testsName

Checks that only roles with the right permissions can access the APIsDescription

On commitRuns

Super high – Legal problems if brokenSeverity

1 broken test = no deploymentThreshold

//acme/our-wiki/api-perm-testsWiki

[email protected] (CET)Contacts

@unremarkableQA

VS

Page 33: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

33PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Steps with unclear fix

deadlines

Set a time limit for the fixes

Steps with unclear failure

implications

Make the impact and the

reasons of the failure

transparent

Steps with unclear purpose

Make the value and

information of the step visible

Things you can’t explain

@unremarkableQA

Page 34: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

How is the field deactivated?“Keep only those things that speak to the heart, and discard items that no longer spark joy.”

Marie Kondo

@unremarkableQA

Remove

things

you don’t

want to

see

Remove

things

you can’t

explain

Remove

things

you don’t

expect to

see

Page 35: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

Addressing the “Somebody Else’s Problem” (SEP) field

How is the

field

activated?

How is the

field

deactivated?

How to keep the

field inactive?

Page 36: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

36PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Automatically assign someone as the

owner of a failed step using a

deterministic rule.

@unremarkableQA

Page 37: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

37PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

The owner of a failed step should be

responsible for the solution, not

necessarily the fix.

@unremarkableQA

Page 38: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

38PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Assign an owner of the quality of the

pipeline rather than the pipeline steps

@unremarkableQA

Page 39: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

39PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Educate and enable the whole team

to become owner of the quality of the

pipeline

@unremarkableQA

Page 40: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

40PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Be prepared for a rough start or

maybe not…

@unremarkableQA

Page 41: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

Addressing the “Somebody Else’s Problem” (SEP) field

How is the

field

activated?

How is the

field

deactivated?

How to keep

the field

inactive?

@unremarkableQA

Page 42: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

42PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

Turning the quality of your deployment pipeline into a team task

@unremarkableQA

Delays fixing failed pipeline steps

Improve quality of pipeline steps

Pipeline steps fixed always in acceptable time

Automatically assign owner of failed pipeline step solution

Monitor improvements

Assign pipeline quality owner

Enable everyone to become pipeline quality owner

Page 43: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

Thank you.

Contact information:

Areti Panou

Cloud Quality Coach

@unremarkableQA

unremarkabletester.com

[email protected]

Page 44: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

Appendix

Page 45: Turning the Quality of Your Deployment Pipeline Into a ...Turning the quality of your deployment pipeline into a team task @unremarkableQA Delays fixing failed pipeline steps Improve

45PUBLIC© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ

• https://yorkesoftware.com/2016/06/06/the-effect-of-bystander-syndrome-on-an-agile-team/

• https://en.wikipedia.org/wiki/Bystander_effect

• https://www.getdonedone.com/somebody-elses-problem/

• https://konmari.com/

• https://speakerdeck.com/sarahjwells/european-test-conference-2019-quality-for-cloud-natives-

what-changes-when-your-systems-are-complex-and-distributed

• https://plugins.jenkins.io/claim

• https://martinfowler.com/articles/nonDeterminism.html

• https://blog.liberationist.org/how-to-design-team-rituals-to-accelerate-change-4fc43a1acdc0

References