community
community copied to clipboard
Sustainable process for community support
I'm starting to understand that this repository is about process, how we encourage or steer desired behaviors that result in community success. One thing I noticed yesterday (my time) was that no one answered questions on the collector slack. I pinged my colleagues and of course folks pitched in, but I got the impression that while we raise issues about how to not confuse users, how to define vocabulary etc, maybe we haven't focused on the critical support aspect?
Close this out if I just missed something, but I suspect there's a way of incentivizing community support in ways that show up very loudly as much as or even more than things like PR stats or comment counts in devstats. In my history of OSS, slack support is a very large part of community success and I'd love to see folks who do well on this, either individually, as friends or even as companies become better incentivised and recognized for this.
cc @open-telemetry/sig-end-user-approvers
A few unsorted thoughts:
- with OTel Community Day happening this week and a major US holiday coming up many people are traveling/out of office, I think that some questions remain un-answered because people are not around. This is happening from time to time, e.g. you see the same around KubeCons and end of (fiscal) years. This is not something we can change.
- we have too many places where people can ask questions: Slack, StackOverflow, Github Discussions, GitHub Issues, LinkedIn Community and all other social places. I am not sure how other communities solve this, but this is not something anyone can easily monitor. Also on slack we have currently 100++ #otel- channels, making this even harder
- people might have no answer: there are lots of questions flowing in and while many people try to provide answers, some of them are very complex and some of them are not easy to answer
- question of priority: many maintainers/approvers have their priorities in the community somwhere else, from writing the code, reviewing the code to making sure that our docs are good (and not confuse users and use the right words). People decided at some point that those are the things they care about and focus on them.
- more people = more community support: this is semi-related to the "question of priority", but what I see is that (like in many other OSS projects) people are stretched thin with all the things that need to be done. That's also why we need to look into contributor experience, to make sure how we can make sure that people that come to the community, stay in the community. And yes, getting good answers to your questions might be a starting point, but it's a chicken-egg-problem...
I suspect there's a way of incentivizing community support in ways that show up very loudly as much as or even more than things like PR stats or comment counts in devstats. In my history of OSS, slack support is a very large part of community success and I'd love to see folks who do well on this, either individually, as friends or even as companies become better incentivised and recognized for this.
💯 -- This is probably a point where End User Experience and Contributor Experience come together. I also agree that this is a question of incentives. And that's where it gets complicated, because (a) do we know what the right incentives are? and (b) are we even able to provide them?
A few ideas on those incentives:
- We recently learned that via CNCF we can leverage Credly to provide badges similar to those you get when you speak at KubeCon or are a member of the Program Committee. Linkerd is using this: https://www.credly.com/org/the-linux-foundation/badge/linkerd-ambassador so we could get in touch and learn how successful this is
- @mx-psi made the great suggestion for Contributor Experience SIG to have blog posts to look "under the hood" (original comment), we could do similar for featuring individuals who are especially helpful
- Awareness & Enabelement: a lot of community support is happening because people are hanging out in slack and see questions they have answers for, these people are often maintainers or other well-established community members. Other members might either not be aware that they can help with that or they might feel to not be in the position of providing an answer ("I might say something wrong!"-Problem). So there is a need of constant re-assurance that people should interact and provide answers and that they should take a look into those channels from time to time to provide answers.
- A group of people I would love seeing more engaged in those conversations, are individuals who are doing this in their day-to-day jobs already, for example Sales Engineers, Consultants, Support Engineers, etc. In that case the company would need to set the incentives, which might not be easy to do, since they often have their own community/support platforms where they want to engage with individuals
- Localized support: a lot of help is often happening through meetups, communities and local groups. We only see the surface of that. These people that talk and educate about opentelemetry "offline" are also part of the community and we might want to find ways to recognize them.
A few more unsorted thoughts in response to Severin's thoughts:
-
We can bring in multiple channels, aggregate, tag, and reroute to some sort of output (maybe a central OTel channel) through a tool like Common Room. I am happy to sponsor doing that through Honeycomb's Common Room and do the work to set it up. There might also be open source tools like Savannah CRM which could belong to the project which I would prefer; and I know Linux Foundation recently acquired crowd.dev which I think does something along these lines. This would require more investigation.
-
Right now there is no path for contributions in the form of answering questions to be "measured" and "count" so they become invisible labor that doesn't really help your profile within the project. For example, I probably could not exhibit twenty Slack threads answering questions in my application for project membership and receive membership. They don't show up in devstats, this sort of thing. This seems to me to be the most urgent aspect to fix if we want people to have the same incentives as other types of contributions do.
-
There is a non-code contributions group that meets through the CNCF contributor experience SIG which might have resources. The guy who runs it, Noah, has been a very dedicated Kubernetes contributor over the years and I like him a lot. It's too early for me in Pacific Time but maybe someone wants to check it out.
-
Following on my second point above, there are definitely established ways to "count" questions that are answered and offer incentives and recognition if we limit where the project offers "official" support, which I think is probably a more reasonable goal than answering anything anyone asks anywhere on the Internet. For example, Wordpress or Dreamwidth have very good systems working in their forums that show pretty straightforwardly who is answering there, and they have approval systems for correct answers too so some contributors mostly review answers from other contributors. There are obviously systems to count on GitHub and StackOverflow too, and we could build one for Slack using a bot. It would be interesting to know what other CNCF projects are doing for support so we can understand the norms and expectations.
Considering the conversations above, I think it's probably worth splitting this issue into two main concerns:
- How we simplify support/communication channels to ensure people end up in the place that will give them the highest chances of getting a response.
- How we promote and recognise this type of work carried out by OpenTelemetry contributors.
On 1, I think there are tangible things we can do. For instance, we have already switched off GitHub Discussions (as we know they were not getting traction) and we also have the #otel-stackoverflow channel to promote cross-platform engagement (although only one direction). However, I think there's more we can do to publicise that Slack is our preferred way to get advice, as most end-users will not know this is even an option. For instance, do we think there's something we can add to the website that drives people towards Slack? We have it at the moment in https://opentelemetry.io/community but it doesn't indicate "Looking for advice or support, go here!".
Within Slack, I think it's good that we have many channels as this simplifies the work of people answering questions (closer to their area of expertise). However, I think we should ensure that folks follow a No Wrong Door (NWD) policy and strive to guide people to the channel they can use to get their questions answered. This is mostly the case already, but could think of ways to automate this process (e.g. bot-style).
Not everyone can use Slack (e.g. highly regulated environments) so it's also important to keep other channels where people can ask questions. However, stating our preference as Slack is totally doable.
On 2, using Slack has its limitations for this purpose. Although we could potentially get analytics per user, they'd only go as far as showing number of messages, messages in channel, days active, etc. Channel analytics are even more general AFIK, however if we could get a top-contributors per channel that'd be a start (similar to a GitHub contributor per repo). If we wanted to based recognition on number of questions answered we'd be looking at implementing on Slack what's already been implemented as part of purpose-built solutions.
Regarding 2) above, which I think requires attention before we simplify/consolidate/advertise support channels. @LisaHJung, as part of the End-User SIG, recently did some analysis on different tools that can be used for the purpose of recognising and celebrating our highest contributors in terms of Slack participation (thank you!). It shows that there is some stuff out there (some SaaS, some self-hosted) that can gather those numbers, however it'd require approval from CNCF and Slack admins, and quite possibly be prohibitely expensive.
In any case, as @austinlparker mentioned in this comment, I'd also question the metrification of Slack contributions without an approved strategy.
In summary:
- Slack is great to connect communities (better than StackOverflow or GitHub issues).
- To benefit from this, it requires participation and engagement, which we have in SIG-work related discussions, but not always in end-user, or even external contributor related threads.
- People that answer questions and help others get "less recognised" than if they were doing the same work in GitHub (i.e. their contributions would go up with comments).
- We're all human and everyone enjoys recognition. Getting told "thanks" or "good job" after helping someone triggers that "nice feeling". Also, be it for personal reasons or for professional reasons (e.g. showing an employer those external contributions), it's important to be able to visualise those important contributions or recognition in a certain way.
The key question to solve would be: how do we recognise this type of work with an accurate signal, without meaningless metrification of Slack contributions? I think if we solve this we would encourage more people to support others.
Linking this with the SIG ContribEx issue on the same topic: https://github.com/open-telemetry/sig-contributor-experience/issues/10