6 topics on starting and running a User Group
by Jens Weller
Almost two years ago I blogged about founding C++ User Groups, since then I have learned a lot more on the topic, and I want to share that experience with you in this blog post. While my focus here at Meeting C++ is C++, this post is more on the topic of a User Group, so its also useful to you, if you want to start a user group on something else. Yet, I might strive away into C++ lands in this post...
What Meeting C++ can do for your User Group
Ignore this paragraph if you're not planning or running a C++ User Group. One of the goals of Meeting C++ is to create and maintain a network for C++, the User Groups are part of this. In the social media Meeting C++ has a currently reach of 15500 across Twitter, Facebook, G+ and LinkedIn. I expect this to at least double in the next year, as this is what happend in the last two.
Over this network I share every month a listing of the upcoming User Group meetings, I also share new User Groups in this post, and often link them also in my social media. So I can help you to find more people for your User Group in your area. All you need to do is to have your meeting setup on the beginning of the month, when I do the posting, and my crawler generates the list from meetup.
What is a User Group?
To me, a User Group is a group of people that meets regularly for a certain topic, and preferable meet in the real world. You can have a website/forum/mailinglist too, but I do think that pure online groups are different. I also think that such a group should be local, and independent from other groups. Local means that you are meeting always in the same city or area, creating a local network for a certain topic. There are national User Groups as well, and I think there is a certain value in this, but it usually fails at providing local structures. A local User Group that meets once a quarter/month has a very different reach, then a national group visiting only once a year.
I do really think that we need those local groups, as only they are able to build and grow the local networks, which then form a local community. Which can help people find the right jobs, spread information and updates, organize hackathons and other fun activities.
How to get started and/or keep running
So, lets say that 10% of those interested, are able to attend your user group. Why only 10%? Each decision you do for your group also applies a filter. Each filter will cause a few people not to come, either because their not available on that weekday, or they don't like this times topic, or maybe they share your interest, but prefer online groups. Also important to know, some people will only come if a coworker joins them. Most important: they are only able to come, if they know about your meeting and have time to make plans. So announce your meetings early.
When you first start, its important, to let as many people know about it as possible, also plan your first meeting well, it should inform your possible members about future plans, the next meetings and where they can help you with. A User Group lives from its volunteers, so try to motivate people to join your organizer team. And not every User Group has to be big, if you enjoy the meetings and have people showing up regularly, your group is a success.
Like in my previous post, I still think that a User Group mainly runs on 4 important points:
I've already covered the people part mostly. Your community should be welcoming to new members, make sure that new guests to your group get included in discussions and get an overview of the activities of your User Group.
Which brings me to locations for the meetings of your group. Hackerspaces can be a great location to start, but as your group grows, you might want to have different options available. Some companies do host meetings, and often also will provide food and drinks. It has been a very successful way of organizing meetings regularly in different companies. The C++ User Group in Aachen for example runs meetings in 3-4 different locations, and switches with every meeting. That way the hosting of a meeting is only once or twice per year on a single company. Restaurants are great locations when you want to have a dinner with your User Group (celebrating the first (or nth) year of your group?), but they are not very good for hosting general meetings. Also, as meetings are public, predicting how many people show up is difficult. Other locations like student clubs, universities or having an open air session in summer is also worth thinking about.
Content is what keeps your meetings interesting. My own C++ User Group has had for a long time only talks, as it was how we got started. But over the years I learned, that you can do more then just talks. Giving presentations is not everybody's thing, but it is always interesting and good content, so try to motivate and find the people willing to talks/presentations in your User Group. Doing a lightning talk session is also a great way to get people started in giving talks, and usually also attracts a lot of people, as they are known to be fun. A fun activity for your meetings is also doing a coding dojo, this brings your group together and leads to a lot of interaction. One fun thing we do some times at my user group is skyping with some interesting people. We had some nice evenings talking with Michael Wong about C++ and committee meetings. Watching recorded talks/keynotes or livestreams from conferences also is an activity which is done in some User Groups, I think this is a great filler when you don't have a planned topic or your speaker gets sick.
Also, regarding content, when you organize the meetings frequently and find a few people to give talks, you will not run out of content for your meetings. My own User Group has not missed a single monthly meeting in 4 years. But don't make the mistake to pack to much content in a single meeting. Its better to have content for 3-4 instead of 2 packed meetings. Mostly those meetings are in the evening, and people already have spend the day at work. Nobody will complain if you focus on one topic per meeting.
Socializing and giving people time to get to know each other is also important, this will create the necessary connections in your local group to enable growth and future plans for meetings. So don't start your actual content directly on the start of the evening, give people time to have a conversation before and after your main content.
The meetings is what keeps your group running, so to get started, you need to decide when to start with the first meeting. I think there is no wrong date, just before the holiday season in Summer I would be careful, winter/spring might be the best time to start (IMHO).
Usually when a company hosts a meeting, they will act as a hosting sponsor, providing food and drinks. Maybe they also would like to provide resources for inviting a speaker to your User Group. Be careful with spending money that was promised to you from a potential sponsor, don't spend what you do not have. Prefer making it the sponsors duty to spend the money. Also, marketing is often not what will attract people to your meetings. I know about meetings not very well attended, because company X hosted a meeting and presented its own content "Introduction to X SDK".
My sponsor JetBrains runs a program for User Groups giving away open source licenses for CLion (or other products), also some book companies are happy to sponsor you with a few free books. Its your decision if and how much time you want to spend at a meeting for presenting sponsors and giving away free stuff.
When you organize bigger events, such as local meetings lasting a day and not only an evening, things might get more serious. Know your local laws, have an insurance for your meeting. Regarding raffling away free stuff, this might need some paperwork and could be taxable, might even require obtaining a lottery license. That is the reason I do not give away things from sponsors at my conference, as I don't have the resources to spend on doing this legally correct. Also I would likely need to pay tax on things like books.
I want you to be aware, that every decision you do, acts as a filter. This can be positive, or negative. The bigger the outreach of your group is, the better the chance that you are able to grow and maintain your group. When you meet in 3 different locations, each of those might attract a different audience, maybe coworkers are more likely to visit meetings in their own company. Some people just can't show up on a Tuesday, and in holiday season it is normal that less people show up, as holidays are always a very strong filter.
Half a year after my own C++ User Group started, it had 3 very difficult meetings. First it started with a strike, so people taking the public transport could not come. We've had bad luck with the next two meetings too, and then holiday season came. But things improved in fall, and since then things have been going very well. Don't get stopped by a bad meeting, in July only 4 people came to my own User Group meeting due to holiday season. Two of them were new, one volunteered to present in the next meeting in August. Which was btw. a really great presentation.
Why local networks are important
Ok, you made it that far, so I might also share with you the big picture, how I see it. I think that local networks and groups are very important. I have promoted local C++ User Groups through Meeting C++ from the start, my conference actually has its roots in my C++ User Group, I could have never started this without first organizing a local User Group. From the start in December 2011, I have received feedback from many that they also would like to have such meetings in their region. So I use Meeting C++ as a conference to motivate people to get started with their own User Group, which has been fairly successful:
C++ User Groups in Europe until Spring 2015
And User Groups become really important, if you want to have actual reach into a community, like the C++ community. My conference has 450 attendees this year, adding up each C++ conference and those with a C++ track will not get us near or above 10k. Plus that conferences are a strong filter, mainly visited by those send through their companies. The videos get their views, for last years Meeting C++ that is ~100k. But to have a real and lasting impact on the C++ landscape, it helps enormously to have also local communities. According to the numbers of JetBrains, we have ~4 million C++ programmers in this world, reaching them is a lot easier, when a global network of local communities exists. And this is true for a lot of other, not C++ related topics.
Regarding C++, the challenge we face, is to get the new and upcoming standards known fast to a wide audience. At the same time a well connected community will enable a better feedback for the general evolution of C++, be it standardization, build systems or libraries like boost, Qt or Poco.