Developer User Group Tips
I've been a participant in a number of software developer user groups for many years, and an organizer of the Hudson Software Craftsmanship group since 2009. A few years ago, I was a member of the INETA Speaker Bureau, and would travel to a number of user groups around the country (and occasionally, the world - including Moscow in 2006). Recently I participated in a discussion about things to consider when starting a user group, and I thought I would share some of the advice that was discussed.
Before You Start
Before you start your group, it's good to have a few things in place. You're going to need a space to meet, ideally the same space every time, but some groups rotate. And you're going to need people. Those are the bare essentials. It can be a good idea to have at least a small core group of people interested in meeting before moving forward with the group, and it's often a good idea to split responsibility for the group among initial members who are most interested in its success (for example, Brendan co-founded and co-runs HudsonSC with me).
Some other things to think about at this stage:
- When will you meet?
- How often will you meet?
- What other groups have meetings you need to work around?
- Will you provide food?
- Will you need sponsorships to pay for food, etc?
- What will a typical agenda be?
- Do you have any presenters in mind for the first meetings?
- What will the group be called?
- Are domain names and social media aliases available for your chosen name?
Where to Meet
Meeting locations vary significantly. For software developer user groups, typically the meeting location is a local technology company, which can provide a room with chairs and a projector. Sometimes the meeting space is more casual, and many meetings take place in coffee shops or restaurants, but obviously this scales differently and allows for different kinds of interaction than more formal training-room style locations. Consider how accessible the space is to your potential members, in terms of parking, traffic, etc., and whether things like free wi-fi connectivity are available for attendees and/or presenters.
Spread the Word
Getting the word out about your group is important before you start, and forever after. It's a good idea to adopt a multi-pronged approach to keeping in touch with your members, who most likely will not all share the same preferences when it comes to communicating. At a minimum, you should have some kind of email list that you can use to send information to the group. Allowing users to self-subscribe to such a list, and keeping this approach free, makes something like a Google group a good choice (and allows members to discuss group topics, in addition to simply providing a way for group leaders to make announcements). You can also create a group on LinkedIn, if you think many of your members would use it, or Facebook (again, depending on member preferences).
It's a good idea to have some presence online, too. Most groups have a web site, which lists basic information about the group's meeting times and location, and sometimes the upcoming schedule or past meetings' slide decks or recordings. You can use any simple CMS like WordPress for this purpose, which should cost very little. You can also use a social media location as your group's web presence, such as a Facebook Page.
A popular site for user groups is Meetup.com. Meetup provides many of the services you need, including providing a home page for the group (example) which includes location, calendar, past events, sponsor info, and discussions. People looking to meet can also discover your group through Meetup. Unfortunately, Meetup isn't free, but if it saves you the cost of buying a domain, hosting a website, etc. and helps more members find your group, it may well be worth it. For .NET groups, you can also add your group to the INETA directory, which may help developers find your group as well.
Don't forget to add a twitter account for the group as well. You can easily link multiple accounts together, so that when you make a post on one, it is automatically cross-posted to other social media accounts (this is especially easy to do between Twitter and Facebook, which provide the greatest reach).
There are probably similar groups within an hour or two of where you're planning to start your group. Get in touch with them and let them know your plans. There may be members of these groups from your area who will welcome having a group closer by. Try to develop a good relationship with the neighboring group leaders. Promote their upcoming events at your group, and ask them to reciprocate, and try not to schedule meetings or events in conflict with nearby groups' schedules.
RSVPs
It's often nice to know how many people are planning to come to a given meeting, so provide a way for members to confirm their plan to attend. This can be as easy as using Eventbrite and a set of free tickets (there is no cost to do this), or you can use Meetup's built-in features or Facebook events, etc. Seeing who is planning to attend helps you plan for food and space, and helps spread the word as people coming tell their friends to come as well.
Finding Speakers
It can help to have speakers lined up six months or so in advance. This will help ensure you get on busy speakers' schedules and it lets potential attendees know that the group is well-organized. Of course, this assumes that your group is centered around speakers - some groups, like HudsonSC, typically just have a couple of lightning talks or group discussion topics, and then do some kind of hands-on exercises or katas. Consider offering a mix of eyes-front lectures and more interactive activities for members, to encourage them to get to know one another and get the most out of the group.
If you're looking for .NET speakers, INETA is once again a good resource, as is the Speak.NET group (twitter).
Remember that your members are all potential presenters. Use lightning talks and open discussions to identify your most passionate and knowledgeable members, and encourage them to present at future meetings. It's usually much easier to get local members to present than to bring in speakers from outside of your area.
Sponsors
It can help substantially to have some sponsors of the group. Your first sponsor will often be the company that is providing your group with a venue, assuming you're not meeting in a Starbucks or something. After that, your members will often be much happier if there is some kind of food and drink available, so see if you can get someone (perhaps the same company) to sponsor food (typically pizza, but you can try to be more creative) for the events. Sponsors may also want the chance to speak to your group, briefly, in exchange for providing space, food, or prizes.
Most new groups do not need to have a bank account or any formal structure. Sponsors pay for things like pizza or giveaways directly, so there's no need to have a group treasurer, etc. However, some groups grow into large organizations with ambitious schedules and significant expenses. They may start to charge member dues or book sponsors with annual contracts. If your group gets to this level, you may want to consider incorporating (probably as a non-profit), naming a treasurer, and having a budget that your group operates against.
One of the biggest sources of sponsorships will be companies seeking to hire new employees. Recruiters flock to popular user groups, so much so that some companies are wary of their employees attending user groups for fear they will be poached by competing firms. If recruiting begins to take place at your group, you will want to establish clear policies on what is and is not acceptable, and in most cases you will want to restrict recruiting to sponsors, so that the group benefits from the presence of the recruiters (via their sponsor dollars).
Invest in the Group's Leadership
Make sure your group's bus factor is larger than one. Once established, the group should be able to survive if you get sick, take a vacation, or even move out of the area. The only way this can happen is if you share some of the responsibility of organizing and promoting the group with co-founders or board members or volunteers of some kind.
Encourage Member Interaction
At many groups, people show up, talk to nobody, sit down, listen to a speaker for an hour or two, eat some pizza, and go home. While this certainly provides them with some value, groups that encourage more member interaction tend to have more member loyalty to the group and closer relationships among members. At the very least, try to help members learn one another's names. Many groups help encourage the social aspect of the group by having more interactive activities (pair programming exercises or agile games, for instance) or simply by letting members know that after meetings, anybody interested can head over to a nearby restaurant or pub to continue the discussion. Another way to encourage member interaction is to invite members' children to certain kid-oriented events. Some groups will have kids present, or just have a meeting focused on building things with Legos or programming Minecraft. Having a group of kids at the meeting is a great way to help the parents get to know one another, too.
What Works for You?
Do you run or attend a regular user group of some kind? What ideas would you share with someone thinking about creating a group of their own? Let us know in the comments.
About Ardalis
Software Engineer
Steve is an experienced software architect and trainer, focusing currently on ASP.NET Core and Domain-Driven Design.