Out of Maintenance Mode

- 11 mins

A few months ago I announced an idea I’m now quite proud of: our community needed some time in Maintenance Mode. How did we know we needed it? To review our challenges that lead us here, we had:

So we said we are in “maintenance mode” and we had to slow down on code reviews and new features until we got through it. The idea of taking a break in order to move forward came from a maintainer who had the foresight to see how slowing down for a moment will let us speed up in the long run. And they were right: it’s months later and we now have 4 active communication platforms, a dozen empowered maintainers and a set of practices that we can be proud of.

h/t to Scott Simmerman, “The Square Wheels Guy”### Beginning with the User

Community building without consulting a community is a recipe for disaster. I spent a month doing regular interviews, asking each person these same questions (that I list here in case you want to do the same for your community):

The only thing as consistent as people’s love for Sensu was their struggle to “get involved” in the community. The challenge makes sense in the project’s history: the Sensu Community has been a self-organizing entity for 6 years now. That’s a long time in the dog years of IT, so it makes sense that clusters of people have organized on their preferred places to communicate (which differ from other clusters on their preferred places).

I am a huge fan of self-organizing systems when they work, but — more often than we like to admit in community jobs— explicit leadership makes everyone happier.

The impact of self-organization was most apparent when we took an audit of channels. Some use Gitter while others were on IRC. Some participated in the mailing list, while others preached everything in GitHub. GitHub had activity, but it’s not a place where people were “hanging out.” The conclusion was clear: We needed to focus on curating a single place to be our home.

Landing on our Platforms

Communities need places to gather. A healthy community needs space, and I’m a firm believe that these come in four forms:

  1. synchronous communication
  2. asynchronous communication
  3. face-to-face (f2f)
  4. news Sync gives room for the casual conversation, async is for definitive answers, f2f builds that formidable bond between members of a community, and news keeps people informed and empowered. I’ve spoken about these before and will elaborate on this theory in another post, but for now you’ll have to trust that each has a distinct need and each is required to get out of Maintenance Mode.

The sausage making of these decisions include everything you’d imagine: sharing, disagreeing, trying, failing, retrying. For the sake of brevity, I want to share just two stories on our decision making.

Choosing Slack

The largest communication gap we had came in the form of synchronous. That may have been a surprise at the time, given Sensu had an IRC channel that consistently had 150 users in it and an average of 10 messages daily. I mean, that looks solid for a day-to-day number. But the raw numbers don’t tell a meaningful story.

What I found through IRC logs is that less than 10 users interacted on any day and about 10x that number of users would login, ask something, and logout before getting an answer to their question. Each one might get an answer a little while later, but IRC won’t notify them after logging off (without additional tooling). That left both the regular users and the question askers frustrated.

Slack, on the other hand, requires account creation to participate. This simple requirement effectively addresses the disappearing user pattern. Between that benefit and the configuration of multiple feature-specific channels, the platform change has helped us steadily grow to over 500 in about 4 months of advertising it (3.5x growth). On a weekly basis we see over 100 active users posting over 50 messages (not including bots, 500% growth). And we’re just getting started — I know we have more room to grow before it reflects our active user base.

Weekly active users over the holidays of 2017. The participation has been incredible.#### Remote face-to-face is a perfect oxymoron

One more story: our decision to start a remote face-to-face platform started from our inaugural in-person event. We ran the first Sensu Summit with 75 attendees this year. What was immediately apparent was how we all enjoyed being around each other. No matter how interconnected we are over text-based mediums, nothing replaces the sense of belonging we get from seeing, and being seen by, others.

One of the working group discussions from the Sensu Summit Community day

No matter how interconnected we are over text-based mediums, nothing replaces the sense of belonging we get from seeing, and being seen by, others.To keep that momentum going, now-maintainer Chris Chandler suggested we hold a video chat, which begun what I call the Sensu Community Chats. These have resulted in dozens of attendees and (most surprisingly to be honest) hundreds of views on YouTube by the community.

A few of us getting f2f time on the Sensu Community Chat### Making Contribution Easy

Contribution begins with clear leadership. The rich history of Sensu is paved by hundreds of contributors whose involvement has ranged from one-time commits to sustained contribution spanning multiple years. While the informal nature of these roles has worked in many occasions, user interviews told me that it wasn’t providing the clarity we needed to continue to scale. We needed a shift in philosophy that is intentional, thoughtful and transparent.

The solution began by letting people know about the opportunity. After doing so through established channels like our GitHub repository, it opened up the floodgates of community involvement. We now have empowered lead maintainers for each of the major parts of the Sensu ecosystem while many more regularly participate.

A growing number of areas are covered by semi-autonomous leads empowered to make decisions. This is tracked as part of the Community Repository.Our ability to scale up contribution beyond maintainers is due to a massive effort to refine little, seemingly-invisible parts of the process. It means standardizing and configuring GitHub labels in the first place, then taking the time to curate issues that actively need help or are great for first-time contributors, which we have labeled as Help Wanted. It’s consistently and constantly pointing people to the same location until that place becomes habit. It’s spending time planning and curating intentional Slack channels so it’s an effective platform. It’s distributing decision making efficiently enough that no one person is a bottleneck for the breadth of our ecosystem and global network of contributors.

It’s hard to make things easier. It’s hard and you’re never quite done doing it, but the results show.

One example of how we’ve began to crack the code on how to do this in the Sensu world is with the Community repository mentioned above. This strategy of having a “meta” or “mono” repository where bigger-than-one-repo work is tracked is a useful strategy in larger projects and one I’ve used before. What made it work, however, was that we did it the right way for our community. It began by updating an existing “feature request” repository, gradually improving it, then revising its scope to reflect the improvements. Said another way: we started by doing the work. Now it’s a place people can rely on.

This is also a good time to state why we didn’t choose some platforms that seem like a good idea. I explicitly asked community members whether they’d like us to be active on Stackoverflow. This was met with complete and total rejection, which surprised me since almost 500 questions mentioning Sensu are on there.

Whether I like the platform or not, it’s not something the community leadership wanted to jump onto today. Maybe someday, but not today. It reminds me how all improvements have to be anchored in the community’s history to take effect, not in an ideal state I might be trying to point us toward.

Where we are and what’s next

Based on existing work and stories like those above, we made an informed decision to land on:

These platforms are not permanent, but these four pillars of communication in the Sensu Community are here to stay.We’ve progressed to the point where we have a dozen regular maintainers, dozens more contributors, hundreds of Slack participants, thousands of GitHub followers and a tens of thousands of users (10k downloads a week by Sean’s count).

Those top-level metrics are exciting, but our progress is measured in reducing the friction of contribution.

We have reliable platforms where people gather for all types of communication. We have practices of being a maintainer for everything from onboarding to default replies to labeling conventions. We have all the public conversation complemented by the right set of private space on Slack & GitHub to continue to refine our processes. Our friction is dropping exponentially, and that’s what will lead us to a growing, healthy community.

I have to say that having someone in your community wise enough to suggest maintenance mode in the first place and the leadership to help it happen is such a blessing. I was right when I said in my first post that this community is special.

We know we’re not done, but I am proud to say where we are. That’s why I can proudly say we’re out of Maintenance Mode.

If you’re a fellow community builder, I urge you to start by:

This article was originally published on Medium

rss facebook twitter github youtube mail spotify instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora