Slide 1

Slide 1 text

REfactoring a Community VP Community, Sensu Inc. Matt Broberg @mbbroberg REdeploy ‘18 Resiliency through Maintenance Mode

Slide 2

Slide 2 text

2011 @mbbroberg

Slide 3

Slide 3 text

@portertech eh on the wind. @mbbroberg

Slide 4

Slide 4 text

@mbbroberg

Slide 5

Slide 5 text

@mbbroberg

Slide 6

Slide 6 text

@mbbroberg 330 Reference: timqian.com/star-history/#sensu/sensu GitHub 07/10/2011

Slide 7

Slide 7 text

@mbbroberg Plugins

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

2015 @mbbroberg

Slide 10

Slide 10 text

100s of plugins @mbbroberg

Slide 11

Slide 11 text

<3 maintainers @mbbroberg

Slide 12

Slide 12 text

Monorepo => GitHub Org @mbbroberg

Slide 13

Slide 13 text

sensu/sensu -community -plugins @mbbroberg sensu-plugins/* =>

Slide 14

Slide 14 text

2017 @mbbroberg

Slide 15

Slide 15 text

@mbbroberg

Slide 16

Slide 16 text

@mbbroberg $ via tenor

Slide 17

Slide 17 text

@mbbroberg Participation Time

Slide 18

Slide 18 text

@mbbroberg ? Participation Time

Slide 19

Slide 19 text

@mbbroberg 2,857 Reference: github.com/sensu/sensu GitHub

Slide 20

Slide 20 text

@mbbroberg 18,170 Reference: github.com/prometheus/prometheus 2,857

Slide 21

Slide 21 text

@mbbroberg ebaumsworld.com/pictures/vintage-cartoon-characters-gifs/84267579/

Slide 22

Slide 22 text

@mbbroberg

Slide 23

Slide 23 text

“It does more than Nagios, and better.” @mbbroberg

Slide 24

Slide 24 text

“Like what?” @mbbroberg

Slide 25

Slide 25 text

“Everything” @mbbroberg

Slide 26

Slide 26 text

@mbbroberg

Slide 27

Slide 27 text

“It’s the first thing I setup at a new job.” @mbbroberg

Slide 28

Slide 28 text

@mbbroberg

Slide 29

Slide 29 text

Codified tribal knowledge @mbbroberg

Slide 30

Slide 30 text

Latent Resilience @mbbroberg

Slide 31

Slide 31 text

@mbbroberg Leadership Doing something you’re not sure you’re qualified to do Startup

Slide 32

Slide 32 text

@mbbroberg ? Participation Time

Slide 33

Slide 33 text

Community is a map of human intention @mbbroberg

Slide 34

Slide 34 text

Spreadsheet Science @mbbroberg

Slide 35

Slide 35 text

1. How are you involved in the community right now? 2. Are you looking to contribute more actively (or less)? 3. If more, what’s holding you back from doing so? 4. Where do you participate in the community (both online and offline)? 5. What’s your experience communicating with other Sensu users? 6. What’s the best part of the community? 7. What’s the worst part? 8. What’s one thing we can fix today to make it better? @mbbroberg

Slide 36

Slide 36 text

@mbbroberg Sensu Plugins Vision

Slide 37

Slide 37 text

Technical Debt @mbbroberg

Slide 38

Slide 38 text

Social Debt @mbbroberg

Slide 39

Slide 39 text

Social => Technical @mbbroberg

Slide 40

Slide 40 text

Exhibit A: IRC @mbbroberg

Slide 41

Slide 41 text

newbie_1 joined @mbbroberg

Slide 42

Slide 42 text

newbie_1 08:13:00 how do I verify sensu server is online? @mbbroberg

Slide 43

Slide 43 text

newbie_1 08:13:00 how do I verify sensu server is online? @mbbroberg maintainer_5 08:20:00 hey newbie_1, run `curl 127.0.0.1:4567` to confirm

Slide 44

Slide 44 text

newbie_1 quit @mbbroberg

Slide 45

Slide 45 text

newbie_1 is frustrated maintainer_5 is frustrated @mbbroberg

Slide 46

Slide 46 text

maintainer_5 12:12:45 Could someone review this PR? @mbbroberg

Slide 47

Slide 47 text

maintainer_5 12:12:45 Could someone review this PR? maintainer_5 14:30:00 Anyone? @mbbroberg

Slide 48

Slide 48 text

maintainer_5 12:12:45 Could someone review this PR? maintainer_5 14:30:00 Anyone? newcontrib_2 14:33:03 Anyone what? @mbbroberg

Slide 49

Slide 49 text

newcontrib_2 quit @mbbroberg

Slide 50

Slide 50 text

newcontrib_2 is frustrated maintainer_5 is frustrated @mbbroberg

Slide 51

Slide 51 text

@mbbroberg ebaumsworld.com/pictures/vintage-cartoon-characters-gifs/84267579/ it me

Slide 52

Slide 52 text

+1

Slide 53

Slide 53 text

Buried via tenor

Slide 54

Slide 54 text

who has the time to improve? @mbbroberg

Slide 55

Slide 55 text

“I wish we could go into maintenance mode” @mbbroberg

Slide 56

Slide 56 text

Maintenance Mode™ @mbbroberg

Slide 57

Slide 57 text

Why not? @mbbroberg

Slide 58

Slide 58 text

Sunk Cost Fallacy @mbbroberg The Misconception: You make rational decisions based on the future value of objects, investments and experiences. The Truth: Your decisions are tainted by the emotional investments you accumulate, and the more you invest in something the harder it becomes to abandon it. Quote from https://youarenotsosmart.com/2011/03/25/the-sunk-cost-fallacy/

Slide 59

Slide 59 text

Hindsight Bias @mbbroberg Inclination to believe events as predictable, despite there having been little or no objective basis for predicting it. Adaptation of https://en.wikipedia.org/wiki/Hindsight_bias

Slide 60

Slide 60 text

Why not? @mbbroberg

Slide 61

Slide 61 text

Narrative Bias @mbbroberg Refers to our tendency to make sense of the world through stories. Ref: https://moneymattersforglobetrotters.com/narrative-bias-how-to-make-it-work-for-your-advantage/

Slide 62

Slide 62 text

Framing Effect @mbbroberg The cognitive bias of reacting to a particular choice in different ways depending on how it is presented; e.g. as a loss or as a gain. https://en.wikipedia.org/wiki/Framing_effect_(psychology)

Slide 63

Slide 63 text

Stop @mbbroberg

Slide 64

Slide 64 text

Stop @mbbroberg

Slide 65

Slide 65 text

Pivot @mbbroberg

Slide 66

Slide 66 text

@mbbroberg The Plan 1. No PR merges 2. Default issue reply only 3. All options on the table

Slide 67

Slide 67 text

@mbbroberg Standardize practices across our 200+ Plugins Increase maintainers from 1-2 to 10 Standardize our communication channels for discussion and backlog Why?

Slide 68

Slide 68 text

Communication @mbbroberg

Slide 69

Slide 69 text

@mbbroberg F Sync For casual, high throughput discussion Async For a definitive, recorded answer News To stay informed and empowered F2F To build a formidable bond

Slide 70

Slide 70 text

@mbbroberg Async Sync F2F News User groups & Conferences

Slide 71

Slide 71 text

@mbbroberg Async Sync F2F News

Slide 72

Slide 72 text

6 months later @mbbroberg

Slide 73

Slide 73 text

@mbbroberg Async Sync F2F News

Slide 74

Slide 74 text

@mbbroberg

Slide 75

Slide 75 text

newbie_1 felt appreciated newcontrib_2 felt appreciated maintainer_5 felt appreciated @mbbroberg

Slide 76

Slide 76 text

Community Repo @mbbroberg

Slide 77

Slide 77 text

Monorepo @mbbroberg

Slide 78

Slide 78 text

@mbbroberg The perfect oxymoron

Slide 79

Slide 79 text

@mbbroberg

Slide 80

Slide 80 text

@mbbroberg 1000s > 100s

Slide 81

Slide 81 text

Done? LOL @mbbroberg

Slide 82

Slide 82 text

@mbbroberg Participation Time ?

Slide 83

Slide 83 text

better > perfect @mbbroberg

Slide 84

Slide 84 text

“It does more than Nagios, and better.” @mbbroberg

Slide 85

Slide 85 text

@mbbroberg Sensu backend (event pipeline) Event Filter Mutator Handler Event (Nagios PerfData) Filter (n/a) Mutator (PerfData => InfluxDB) Handler (InfluxDB) Event (HTTP 404!) Filter (only notify every 30m) Mutator (n/a) Handler (PagerDuty) Event (Host up!) Filter (only production) Mutator (n/a) Handler (CMDB registration) Event (Host down!) Filter (only production) Mutator (n/a) Handler (EC2 Verification) Event (Database replica lag!) Filter (only production) Mutator (n/a) Handler (In-house tooling)

Slide 86

Slide 86 text

@mbbroberg Sensu is a monitoring event pipeline.

Slide 87

Slide 87 text

better > perfect @mbbroberg

Slide 88

Slide 88 text

Permission @mbbroberg

Slide 89

Slide 89 text

Permission @mbbroberg to stop

Slide 90

Slide 90 text

Maintenance Mode™ @mbbroberg

Slide 91

Slide 91 text

1. Give it a name 2. Have a why 3. Permission to pivot @mbbroberg Essentials

Slide 92

Slide 92 text

Resiliency @mbbroberg in stopping

Slide 93

Slide 93 text

Software Communities Companies People @mbbroberg

Slide 94

Slide 94 text

Personal Note @mbbroberg

Slide 95

Slide 95 text

No content

Slide 96

Slide 96 text

PDX MSP @mbbroberg

Slide 97

Slide 97 text

@mbbroberg

Slide 98

Slide 98 text

@mbbroberg https://twitter.com/mbbroberg/status/1028349067255062531

Slide 99

Slide 99 text

Resiliency is not persistence, it’s the permission to pivot @mbbroberg

Slide 100

Slide 100 text

Thanks! VP Community, Sensu Inc. Matt Broberg @mbbroberg Maintainer Bits ● Learn GitHub (bitly.com/git-it) ● Readmes (awesome-readme) ● Advice for maintainers (thread) ● GitHub Maintainers program ● All Contributors project ● Sane GitHub Labels project Psychological Bits ● Buy the cognitive bias codex ● Ben Franklin Effect