All content is curated by the F# Software Community, and does not constitute an official endorsement by the F# Software Foundation.
This document is intended as a starting point to build up a community-maintained guide to create and grow a local community, by collecting resources, tips and tricks. Please feel free to add, remove or edit any way you see fit!
Meetup is probably the best way to go in terms of notification and member management. It isn’t free, but is fairly cheap, and gives you a way to publish and manage your events, and gain visibility to a large community, because members of other groups will potentially see your events as well. Make sure you use relevant tags for your group, beyond simply F# (functional programming, .NET, open source, …); that helps to become visible to people with shared interests.
It is fairly common to see a much smaller number of people showing up that the registration (one half no-shows is not uncommon) - don’t get disheartened!
One Meetup account can host up to three groups at no extra cost, so consider pairing up with other user groups in your region, if the cost is prohibitive.
The F# Software Foundation has an Affiliated User Group program, which aims at assisting F# user groups. One of the benefits of the program is that Meetup costs are covered.
The biggest challenge for a group is often to find a venue. There are multiple options.
Some companies like to host meetups (often because they need more visibility, and maybe want to recruit / attract talent), and they usually have a good infrastructure for presentations (projector, wifi). It’s useful then to also talk with the host and understand what they want out of it!
Some cities have hacker spaces, which can be a great way to meet people from other language communities, and increase awareness that your group exists.
Schools and community centers are also an option.
Try to make sure the person who is hosting your meetup is having a good time, too. They might not even be that interested in F#, and are hosting you on their free time. If possible, consider giving them a couple of minutes to talk about their company/organization in the beginning. And... and thank-you and round of applause goes a long way :)
Finally, for smaller events, like coding breakfasts, meeting in a public space like a cafe can work just fine.
If people come for the first time to a meeting, they might not know anybody yet. Make it easy for attendees to find your group (for instance, add a note "how to find us" in the Meetup description), and look out for people who seem to be searching for someone.
Having an informal meeting to begin with, maybe at a bar, can be a good way to just see if there is interest, and talk with people to understand what they would want out of the group.
Depending on the location, starting a group purely focused on F# might not be the easiest route. Consider starting a group around functional programming languages, or joining forces with an existing .NET focused meetup.
A cross-functional languages group instead of a pure F# group can be a great idea. There is a lot in common between functional languages, as well as interesting differences, and in general functional tends to attract people who are interested in other languages and in learning. It is always possible to spin off an F# specific group later, if there is enough demand for it.
From Functional Group Survival Guide:
Groups grow in an organic way - slowly. The single most important thing to do is to be regular, ideally, have meetings on a monthly cadence or so. Ideally, the meeting should become the “geeky / tech fun night out” people are looking forward to. Having a low number of people initially is normal. But the most important thing is to show up, and over time these things build up.
What happens around the meeting is as important, if not more important, than the meeting itself. Building a community of people who enjoy talking to each other is how you build a strong group over time. Going for drinks or food after meetings is a good way for some people to open up and start discussions in a less intimidating context. Also, people who stick around tend to be people who will also help grow the group.
Make sure to talk to people and make them feel comfortable! Going to a group you don’t know can be intimidating. Open up the conversation, ask about what they do and what they expect.
Make sure nobody behaves in a toxic manner, and that people know that they can talk to you if they have a problem with someone’s behavior. Everyone should feel comfortable.
Encouraging people to make the group their own is important. In the end, the group will be as strong as its local members. So… encourage people to give presentations, and create an atmosphere where people feel comfortable trying things out, and supported/encouraged and not judged.
In the same direction, organizing hands-on events is a great way to grow a group. Talks are nice, but learning together on dojos or small problems is a great way to strengthen the group.
Build a team: having a partner(s) can really help: in case you're away/super-busy/whatever, (s)he could step up and organize or host an event. In the very beginning you can ask for a volunteer or someone who regularly attends the meetups and clearly interested
Lots of the talks/dojo materials are out there already, they're nice time-savers and proven to be fun (see c4fsharp)
If you are going to have a dojo, expect that some people will not have Visual Sutdio, Code, or Xamerian installed. Also, expect that even if they do have it installed, they don’t have F# installed (esp true with the community edition of Visual Studio). Ideally, have a second person that can help people with logistics while the others in the group can start coding
In a dojo, pairing people with different skill sets works well. When people arrive, make a point to ask them if they are familiar with F#.
Even though you are the organizer, you are not expected to know all of the answers for language-related questions. There might be people in the room who are rock stars in their functional language. Manage expectations and try to draw others into any question you can’t immediately answer.
Suffice to say, work through the dojo several times beforehand :-)
Is it better to use mostly English in written communication to make it easier to share info with groups from other countries or the local language helps better engage the local community? How’s the experience with groups in other non-English speaking countries?
We do use English for global info, announcements etc - hopefully not all the speakers and guests would know a local language. We also prepare slides in English, first it might be useful for other community members and second it saves you from painful translation of terms etc (I personally don't like when the languages are mixed up). For the internal communication and events themselves choose the one everybody knows - if everyone is local, the local language is a better choice and people would feel more comfortable.
What’s the best way to invite a big name to a local meetup?
Just ask - twitter, email or whatever works. Our 'stars' are all super-nice and open to such suggestions... as long as time allows. So the successful way is to make sure people heard about the group and know they're welcome there, so they could plan giving a talk when are around and the time is convenient