As our open source community grew, we had a handle on the things that we could easily see. We knew who our PMC (Project Management Committee), our committers, and contributors were and how much they contributed to the project. But this only covered a small group of our community because the vast majority of people in the community didn’t contribute code or serve on the PMC, we were missing a lot of other people. . We asked ourselves once we found them, how we could track them and how we could thank them for what they had already done and encourage them to continue work with the community.
What we decided to do was to look for our top 100 community members who had spoken, written a blog, recorded a demo, or anything else that was similar, and we add them to this list. We were never thinking about ranking them but instead we were looking to find them and if we only had 90 then great but we knew we would continuously add more people to the list. Over a year the list grew to be well over 150 people.
What we did was to make sure that these people were in Savannah CRM. Most were already in the system because they had answered a question on Slack or Stack Overflow already, yet there was a large group that we had missed. To track all of these people, we created the tag #the_100
for them. We are pretty secretive about who was tagged, because we don’t want people to think that there is some type of ranking to this. As I said, we have had about 150 people with this tag.
Next we created a work flow for the members, starting off with #Stage_0_should_contact
through #Stage_5_has_spoken/written
and then a couple of retired tags of “contacted, not interested” or “evaluated, not in the 100”. These last two, allowed us to retire members who have moved on for whatever reason, but still keeping them in our system.
When we started we would move members to the Stage 0 state and then we would pick a certain number of them to contact each week. Ideally this would be via email where we would reach out to them with a personal email thanking them for the contribution that they made and then introducing ourselves. We would also look for them on Linked In and reach out to make a connection. And we would move them to the next state of #Stage_1_Contacted
.
When we receive a response back, we then would set up a Zoom conversation with them, where we could introduce ourselves, get their feedback on the current state of the community, and talk about the community that we were trying to build. Members were always very appreciative of us reaching out to them, which makes sense because they had already done work for the community, and probably didn’t realize that there was a community. At this stage, depending on the amount and type of work that they had done for the community in the past, we might ask them to speak at a meetup, write a blog post, etc. Almost all reacted favorably to this request. And we would move them along the workflow.
Where this becomes very powerful is that we would then be able to filter our members into these various stages and remind ourselves who we should reach out to. We can also export the data to track how many people we have spoken to and at what percentage of the total “100” is at each stage. When you combine this with the notes on each person, you can easily tell who is at what stage and, when you set up a conversation with them, what you discussed last time and any reminders of previous conversations that you have had with them.
From this simple start, we started tagging people in more and more ways. People who we needed to send swag to, who have we contacted, their role at their company, etc. Basically, they allow us to pull out a subset of the community to match the need at the moment.