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

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.

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

More Decks by Matthew (Brender) Broberg

Other Decks in Technology


  1. REfactoring a Community VP Community, Sensu Inc. Matt Broberg @mbbroberg

    REdeploy ‘18 Resiliency through Maintenance Mode
  2. 2011 @mbbroberg

  3. @portertech eh on the wind. @mbbroberg

  4. @mbbroberg

  5. @mbbroberg

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

  7. @mbbroberg Plugins

  8. None
  9. 2015 @mbbroberg

  10. 100s of plugins @mbbroberg

  11. <3 maintainers @mbbroberg

  12. Monorepo => GitHub Org @mbbroberg

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

  14. 2017 @mbbroberg

  15. @mbbroberg

  16. @mbbroberg $ via tenor

  17. @mbbroberg Participation Time

  18. @mbbroberg ? Participation Time

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

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

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

  22. @mbbroberg

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

  24. “Like what?” @mbbroberg

  25. “Everything” @mbbroberg

  26. @mbbroberg

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

  28. @mbbroberg

  29. Codified tribal knowledge @mbbroberg

  30. Latent Resilience @mbbroberg

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

    do Startup
  32. @mbbroberg ? Participation Time

  33. Community is a map of human intention @mbbroberg

  34. Spreadsheet Science @mbbroberg

  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
  36. @mbbroberg Sensu Plugins Vision

  37. Technical Debt @mbbroberg

  38. Social Debt @mbbroberg

  39. Social => Technical @mbbroberg

  40. Exhibit A: IRC @mbbroberg

  41. newbie_1 joined @mbbroberg

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

  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` to confirm
  44. newbie_1 quit @mbbroberg

  45. newbie_1 is frustrated maintainer_5 is frustrated @mbbroberg

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

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

  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
  49. newcontrib_2 quit @mbbroberg

  50. newcontrib_2 is frustrated maintainer_5 is frustrated @mbbroberg

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

  52. +1

  53. Buried via tenor

  54. who has the time to improve? @mbbroberg

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

  56. Maintenance Mode™ @mbbroberg

  57. Why not? @mbbroberg

  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/
  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
  60. Why not? @mbbroberg

  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/
  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)
  63. Stop @mbbroberg

  64. Stop @mbbroberg

  65. Pivot @mbbroberg

  66. @mbbroberg The Plan 1. No PR merges 2. Default issue

    reply only 3. All options on the table
  67. @mbbroberg Standardize practices across our 200+ Plugins Increase maintainers from

    1-2 to 10 Standardize our communication channels for discussion and backlog Why?
  68. Communication @mbbroberg

  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
  70. @mbbroberg Async Sync F2F News User groups & Conferences

  71. @mbbroberg Async Sync F2F News

  72. 6 months later @mbbroberg

  73. @mbbroberg Async Sync F2F News

  74. @mbbroberg

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

  76. Community Repo @mbbroberg

  77. Monorepo @mbbroberg

  78. @mbbroberg The perfect oxymoron

  79. @mbbroberg

  80. @mbbroberg 1000s > 100s

  81. Done? LOL @mbbroberg

  82. @mbbroberg Participation Time ?

  83. better > perfect @mbbroberg

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

  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)
  86. @mbbroberg Sensu is a monitoring event pipeline.

  87. better > perfect @mbbroberg

  88. Permission @mbbroberg

  89. Permission @mbbroberg to stop

  90. Maintenance Mode™ @mbbroberg

  91. 1. Give it a name 2. Have a why 3.

    Permission to pivot @mbbroberg Essentials
  92. Resiliency @mbbroberg in stopping

  93. Software Communities Companies People @mbbroberg

  94. Personal Note @mbbroberg

  95. None
  96. PDX MSP @mbbroberg

  97. @mbbroberg

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

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

  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