Pre-mortems Keeping your project off the autopsy slab Christopher - - PowerPoint PPT Presentation

pre mortems
SMART_READER_LITE
LIVE PREVIEW

Pre-mortems Keeping your project off the autopsy slab Christopher - - PowerPoint PPT Presentation

Pre-mortems Keeping your project off the autopsy slab Christopher Cowell SDET, HealthSparq 1. Pretend that your project has failed. 2. Ask why it failed. 3. Do something now to prevent that failure. 2 1. Why am I here? 2. Define terms 3.


slide-1
SLIDE 1

Pre-mortems

Keeping your project off the autopsy slab

Christopher Cowell SDET, HealthSparq

slide-2
SLIDE 2
  • 1. Pretend that your project has failed.
  • 2. Ask why it failed.
  • 3. Do something now to prevent that failure.

2

slide-3
SLIDE 3
  • 1. Why am I here?
  • 2. Define terms
  • 3. 11 steps
  • 4. Extra stuff
slide-4
SLIDE 4
  • 1. Why am I here?
  • 2. Define terms
  • 3. 11 steps
  • 4. Extra stuff
slide-5
SLIDE 5

5

slide-6
SLIDE 6

SDET at HealthSparq, Puppet, Jive, Oracle Lots of failed projects Didn’t invent pre-mortems Pre-mortems worked great for me Maybe useful for you too? Formal process >> casual banter

6

slide-7
SLIDE 7

christopher.w.cowell@gmail.com

7

slide-8
SLIDE 8

Projects fail due to forseeable problems. This happens all the time.

8

slide-9
SLIDE 9

9

slide-10
SLIDE 10

Vaccinate your project against failure.

10

slide-11
SLIDE 11
  • 1. Why am I here?
  • 2. Define terms
  • 3. 11 steps
  • 4. Extra stuff
slide-12
SLIDE 12

“It depends upon what the meaning of the word ‘is’ is.”

12

slide-13
SLIDE 13

Pre-mortem? Formal risk identification and mitigation process

13

slide-14
SLIDE 14

Pre-mortem? Formal risk identification and mitigation process

14

slide-15
SLIDE 15

Risk? Anything that might reduce a project’s success

15

slide-16
SLIDE 16

Risk? Anything that might reduce a project’s success

16

slide-17
SLIDE 17

Anything?

EVENT

  • Server catches on fire
  • Someone quits
  • Requirements change

17

slide-18
SLIDE 18

Anything?

PERSON

  • Incompetent
  • Stubborn
  • Negative

18

slide-19
SLIDE 19

Anything?

CULTURE

  • Competitive, not

collaborative

  • Skeptical
  • Fast and sloppy

19

slide-20
SLIDE 20

Anything?

CONSTRAINT

  • Not enough time
  • Not enough people
  • Technical decisions imposed

from outside

20

slide-21
SLIDE 21

Anything?

TECH

  • Buggy libraries
  • Friction between components
  • Services don’t do the needful

21

slide-22
SLIDE 22

SParse1 # handle numeric address spec R$* < @ [ $+ ] > $* $: $>98 $1 < @ [ $2 ] > $3 numeric internet spec R$* < @ [ $+ ] > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 still numeric: send # handle virtual users R$+ < @ $=w . > $: < $(virtuser $1 @ $2 $@ $1 $: @ $) > $1 < @ $2 . > R<@> $+ + $* < @ $* . > $: < $(virtuser $1 + * @ $3 $@ $1 $: @ $) > $1 + $2 < @ $3 . > R<@> $+ + $* < @ $* . > $: < $(virtuser $1 @ $3 $@ $1 $: @ $) > $1 + $2 < @ $3 . > R<@> $+ < @ $+ . > $: < $(virtuser @ $2 $@ $1 $: @ $) > $1 < @ $2 . > R<@> $+ $: $1 R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2 R< $+ > $+ < @ $+ > $: $>97 $1 R$=L < @ $=w . > $#local $: @ $1 special local names R$+ < @ $=w . > $#local $: $1 regular local name

22

slide-23
SLIDE 23

Anything?

LACK OF KNOWLEDGE

  • Known unknowns
  • Unknown unknowns

23

slide-24
SLIDE 24

Risk? Anything that might reduce a project’s success

24

slide-25
SLIDE 25

Reduce? Catastrophic failure is not the only kind of failure

25

slide-26
SLIDE 26

Pre-mortem? Formal risk identification and mitigation process

26

slide-27
SLIDE 27

Mitigation?

Small expense now prevents a big expense later

  • insurance
  • umbrella

Not free, but worth it

27

slide-28
SLIDE 28

“Mitigation” is a weird word.

28

  • reduction?
  • minimization?
  • lessening?
  • shrinking?
  • alleviation?

In conclusion: English is dumb.

slide-29
SLIDE 29

No really, English is dumb. Esperanto FTW.

29

  • Tomb = \toom\
  • Womb = \woom\
  • Bomb = \bawm\
  • Comb = \kōm\
slide-30
SLIDE 30
  • 1. Why am I here?
  • 2. Define terms
  • 3. 11 steps
  • 4. Extra stuff
slide-31
SLIDE 31
  • 1. Decide scope
  • Whole project?
  • One feature?
  • QA only?

31

slide-32
SLIDE 32
  • 2. Decide logistics
  • Who?
  • (A)synchronous?
  • Local vs. remote?

32

slide-33
SLIDE 33
  • 3. Send instructions
  • Explain process
  • Speeds things up
  • Increases buy-in

33

slide-34
SLIDE 34
  • 4. Imagine failure
  • What is failure?
  • Partial vs. complete
  • Minor vs. disaster

34

slide-35
SLIDE 35
  • 5. Brainstorm reasons for failure
  • One list per person
  • No peeking!
  • No filters
  • Meteor!

35

slide-36
SLIDE 36
  • 6. Make a master list
  • Consolidate into one list
  • De-duplicate
  • Clarify
  • Spur new risk ideas
  • Timebox

36

slide-37
SLIDE 37
  • 7. Filter
  • Low impact?
  • Unlikely?
  • Out of your control?
  • Too vague?
  • Prefer consensus

37

slide-38
SLIDE 38

“Reasons” → “Risks”

pretend backward-looking → real forward-looking

38

slide-39
SLIDE 39
  • 8. Vote
  • What do you think

are the top risks?

  • Define “top”

however you want

39

slide-40
SLIDE 40
  • 9. Reorder
  • Top vote-getters

move to the top

40

slide-41
SLIDE 41
  • 10. Action items

to mitigate top risks

  • How many?
  • Assign owners
  • Set due dates

41

slide-42
SLIDE 42

Action items are the whole point

42

slide-43
SLIDE 43

43

slide-44
SLIDE 44

44

slide-45
SLIDE 45

45

slide-46
SLIDE 46

46

slide-47
SLIDE 47

47

slide-48
SLIDE 48

48

slide-49
SLIDE 49

Action items are the whole point

49

slide-50
SLIDE 50

50

slide-51
SLIDE 51
  • Code arrived late so QA ran out of testing time

○ Erik assigned to HJ-464: create HipChat plugin to sends alerts for unreviewed PRs ○ Chris to add “QA tasks” agenda item to weekly grooming meeting, so the whole team understands how much time QA needs for testing

  • We hired lots of Devs but not enough QA, so QA became
  • verloaded

○ Phong to add discussion topic for 1:1 with Ryan

  • QA didn't apply 80/20 rule when deciding what to test, so tested

the wrong things ○ Chris assigned to HJ-451: propose process for assessing risk

  • f new stories

51

slide-52
SLIDE 52
  • 11. Track action items
  • Use any technique

you want

52

slide-53
SLIDE 53
  • 1. Decide scope
  • 2. Decide logistics
  • 3. Send instructions
  • 4. Imagine failure
  • 5. Brainstorm

reasons for failure

  • 6. Make a master list
  • 7. Filter
  • 8. Vote
  • 9. Reorder
  • 10. Make action items
  • 11. Track action items

53

slide-54
SLIDE 54
  • 1. Why am I here?
  • 2. Define terms
  • 3. 11 detailed steps
  • 4. Extra stuff
slide-55
SLIDE 55

Contraindications

  • Failure is an option
  • Success is hard to define
  • Familiar processes,

technology, and/or people

  • Huge team

55

slide-56
SLIDE 56

56

Pre-mortems just shift the odds.

slide-57
SLIDE 57

Pre-mortems get cheaper and better with practice.

57

slide-58
SLIDE 58

Pareto principle totally applies.

58

slide-59
SLIDE 59

Fringe benefits

  • Team bonding
  • Team learning
  • Schadenfreude
  • QA proves its worth

59

slide-60
SLIDE 60

Q&A and Discussion

christopher.w.cowell@gmail.com

60