Upgrade to Pro — share decks privately, control downloads, hide ads and more …

REfactoring a Community: Resiliency through Maintenance Mode

REfactoring a Community: Resiliency through Maintenance Mode

Summary:
Stopping work that doesn't serve your defined goals is a form of strength. Permission to do so is a learned skill. Find a metaphor that gives you permission to stop.

Abstract:
We are used to slowdowns before a big push forward: the code freeze before every software release and maintenance mode before a deployment. But what happens when you need to take a full step back and reevaluate the direction your initiative is heading in?

This is the story of Sensu — an Open Source project that was wildly successful without much structure, but then it hit a plateau. After several conversations with the top contributors, VP of Community, Matt Broberg took drastic measures and announced that the project was going on “Maintenance Mode,” giving all project participants the ability to rethink how they communicated. The Sensu community has since come out of Maintenance Mode with clearer contributor guidelines, better coding practices and a stronger communication structure. But that’s just one story.

This talk digs into why all companies benefit from a Maintenance Mode at times of significant change. It will provide a framework to identify contributor needs and give recommendations on how to set up your initiative for success. Whether you’re a lead of a community, or software stack of an entire freaking company, this intentional look at what you’re building and how people can communicate about it is relevant to you.

Matthew (Brender) Broberg

August 17, 2018
Tweet

More Decks by Matthew (Brender) Broberg

Other Decks in Technology

Transcript

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

    View Slide

  2. 2011
    @mbbroberg

    View Slide

  3. @portertech
    eh on the wind.
    @mbbroberg

    View Slide

  4. @mbbroberg

    View Slide

  5. @mbbroberg

    View Slide

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

    View Slide

  7. @mbbroberg
    Plugins

    View Slide

  8. View Slide

  9. 2015
    @mbbroberg

    View Slide

  10. 100s of plugins
    @mbbroberg

    View Slide

  11. <3 maintainers
    @mbbroberg

    View Slide

  12. Monorepo =>
    GitHub Org
    @mbbroberg

    View Slide

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

    View Slide

  14. 2017
    @mbbroberg

    View Slide

  15. @mbbroberg

    View Slide

  16. @mbbroberg
    $
    via tenor

    View Slide

  17. @mbbroberg
    Participation
    Time

    View Slide

  18. @mbbroberg
    ?
    Participation
    Time

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. @mbbroberg

    View Slide

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

    View Slide

  24. “Like what?”
    @mbbroberg

    View Slide

  25. “Everything”
    @mbbroberg

    View Slide

  26. @mbbroberg

    View Slide

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

    View Slide

  28. @mbbroberg

    View Slide

  29. Codified tribal knowledge
    @mbbroberg

    View Slide

  30. Latent Resilience
    @mbbroberg

    View Slide

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

    View Slide

  32. @mbbroberg
    ?
    Participation
    Time

    View Slide

  33. Community is a map
    of human intention
    @mbbroberg

    View Slide

  34. Spreadsheet
    Science
    @mbbroberg

    View Slide

  35. 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

    View Slide

  36. @mbbroberg
    Sensu
    Plugins
    Vision

    View Slide

  37. Technical Debt
    @mbbroberg

    View Slide

  38. Social Debt
    @mbbroberg

    View Slide

  39. Social => Technical
    @mbbroberg

    View Slide

  40. Exhibit A: IRC
    @mbbroberg

    View Slide

  41. newbie_1 joined
    @mbbroberg

    View Slide

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

    View Slide

  43. 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

    View Slide

  44. newbie_1 quit
    @mbbroberg

    View Slide

  45. newbie_1 is frustrated
    maintainer_5 is frustrated
    @mbbroberg

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  49. newcontrib_2 quit
    @mbbroberg

    View Slide

  50. newcontrib_2 is frustrated
    maintainer_5 is frustrated
    @mbbroberg

    View Slide

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

    View Slide

  52. +1

    View Slide

  53. Buried
    via tenor

    View Slide

  54. who has the time
    to improve?
    @mbbroberg

    View Slide

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

    View Slide

  56. Maintenance
    Mode™
    @mbbroberg

    View Slide

  57. Why not?
    @mbbroberg

    View Slide

  58. 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/

    View Slide

  59. 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

    View Slide

  60. Why not?
    @mbbroberg

    View Slide

  61. 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/

    View Slide

  62. 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)

    View Slide

  63. Stop
    @mbbroberg

    View Slide

  64. Stop
    @mbbroberg

    View Slide

  65. Pivot
    @mbbroberg

    View Slide

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

    View Slide

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

    View Slide

  68. Communication
    @mbbroberg

    View Slide

  69. @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

    View Slide

  70. @mbbroberg
    Async
    Sync
    F2F News
    User groups &
    Conferences

    View Slide

  71. @mbbroberg
    Async
    Sync
    F2F News

    View Slide

  72. 6 months later
    @mbbroberg

    View Slide

  73. @mbbroberg
    Async
    Sync
    F2F News

    View Slide

  74. @mbbroberg

    View Slide

  75. newbie_1 felt appreciated
    newcontrib_2 felt appreciated
    maintainer_5 felt appreciated
    @mbbroberg

    View Slide

  76. Community Repo
    @mbbroberg

    View Slide

  77. Monorepo
    @mbbroberg

    View Slide

  78. @mbbroberg
    The perfect oxymoron

    View Slide

  79. @mbbroberg

    View Slide

  80. @mbbroberg
    1000s > 100s

    View Slide

  81. Done? LOL
    @mbbroberg

    View Slide

  82. @mbbroberg
    Participation
    Time
    ?

    View Slide

  83. better > perfect
    @mbbroberg

    View Slide

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

    View Slide

  85. @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)

    View Slide

  86. @mbbroberg
    Sensu is a monitoring
    event pipeline.

    View Slide

  87. better > perfect
    @mbbroberg

    View Slide

  88. Permission
    @mbbroberg

    View Slide

  89. Permission
    @mbbroberg
    to stop

    View Slide

  90. Maintenance
    Mode™
    @mbbroberg

    View Slide

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

    View Slide

  92. Resiliency
    @mbbroberg
    in stopping

    View Slide

  93. Software
    Communities
    Companies
    People
    @mbbroberg

    View Slide

  94. Personal Note
    @mbbroberg

    View Slide

  95. View Slide

  96. PDX MSP
    @mbbroberg

    View Slide

  97. @mbbroberg

    View Slide

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

    View Slide

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

    View Slide

  100. 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

    View Slide