This post is about how I believe the community works, what people are dreaming about and why the dreams are coming (or not coming) true. Some bullet points, mostly because everyone likes bullet points:
We're living in interesting times, when it's extremely easy to build a community, or to become a part of one. Local and global communities form daily, based on interests and enthusiasm, and getting stronger daily.
Everyone wants to work with the cutting edge technologies, try out new stuff and work on something interesting and exciting, but same exact people seem to wait unitl it all comes to them. And guess what? It will never happen. If you want to write Java in a functional style, write a high-throughput in-memory queue, try out Erlang for new service you're working on, or start using Clojure, your desire is not enough.
Businesses rely on professional experience, and it's hard to get a permission to use something no one has idea about. But it's also quite easy to fix it. Get the expertise, get other people in your circle involved, convince them that it's worth trying and start using it!
That may sound simplistic, but it's true. On our meetups we constantly meet people who want to switch from Perl or PHP to Ruby, from Java to Scala or Clojure. And there's something in common between many of them: they say that they're not allowed to make that switch on their daily job, and they can't find a position where they would be able to learn it.
But that's also quite clear: no business wants to rely on some esoteric nonsense that noone knows about. And the only way to fix that is education, which consists of two crucial parts: learning yourself and teaching people around you.
Not sure wether schools are to be blamed for it or no, but for the majority of subjects people have an instinctive reaction of "let me read a book about it" when approached some learning.
Well, good luck learning to play piano with a book. Or learning a programming language. Of course, whenever you need to understand some music theory or how the compilers are built, you'll have to read a book. But noone needs to read a book in order to start learning a programming language.
For the complete beginners books won't make any sense at all, since they're using some spooky vocabulary, which they've never heard about. And more advanced people, who already have an experience of working with other tech will simply get bored, will stop reading and will just wait until they have a chance to get their hands dirty with it. But, without an effort that day will never come.
That's when community chimes in, and becomes an essential part of learning. During your first steps, it's really handy to have someone to ask around. Someone who can check out a code of a fresh Haskeller and give a necessary feedback of how people are handling same things in a practical way.
Attending hackathons, and all kinds of events, where you can find both beginners and professionals, is going to make you more fluent with a technology of your preference. Reminding people around you about it is, in a way, a work of an Evangelist, which everyone thinks is so easy and fun.
Whereas that satement is not applicable to everything in the world, it is applicable to community. We've been doing user groups starting with 2008. In different cities, dedicated to different technologies. Mostly because I moved so many times in my life, I never had a chance to bootstrap the next event on the solid foundation of some core group.
Having just 5-10 people who're willing to get together on a regular basis (they don't have to be there on each and every event) is already great. After a couple of years, your network will extend and more people will attend the events you organise. It may be a bit hard in very small cities, although in Europe even that doesn't matter that much. If there're enough possibilities to get there by some kind of transportation in reasonable amount of time, people will still come.
Problem with size is that speakers are more eager to present in front of larger groups. So during first couple of meetups you may have some information deficit. But you should be also ready to volounteer to pitch in with a talk yourself, or sit and look for people somewhere on the Web, writing them emails about how much a fresh user group needs them.
Finding people is quite easy these days: everyone has a GitHub profile and Twitter, or at least an email. People like to be approached and asked about their experience, and usually like to share what they know. So just ping them whatever the way you can and ask them for the help.
It may happen that certain topics are underrepresented in certain areas. Although we should always keep in mind that in majority of times there's a possiblilty of finding a group of topics that includes the one you're interested in personally. For example, if you like Natural Language Processing, try starting with Machine Learning / Data. Interested in Erlang? Maybe it makes sense to start with Functional Programming languages in general.
This way you'll be able to attract more speakers and listeners. Whenever the group is large enough, it will moderate itself, and eventually people may even self organise on some kind of sub- interest.
Often enough, user groups look a bit too proprietary, and it feels like you don't decide anything there, and you're used as a cheap marketing tool. I usually start sensing such things when I see that events are always organised in the same location, all the organisers are coming from same company, it's qutie hard to get any announcement past them and so on.
Community won't survive that way. Let the people offer their help, give them access to all the moderation tools, allow them to organise the events at their own location, allow all kinds of announcements (they may be looking for people to hire, or have a new product that interests the group), have an open process of talk proposals, let everyone know they can be organisers just as you are, since there's always enough work in a community.
Surprisingly, people like taking over responsbilities and they will feel in charge, and will influence the group way stronger if they know they matter for it, that it's their thing, too.
It may be a bit hard to get all the interested parties, but it's quite easy to start spreading the word of mouth about your initiative. There're other User Groups, whose subjects are not directly related.
In majority of cases there are several meetups organised around some ultra-mainstream technologies. Although it never means that it's a sole interest of it's attendees. They'll be happy to check out the next new thing as much as the other guy.
Organisers are usually friendly and willing people, they'll gladly post your info to the mailing list, tweet about what you do, let you present a couple of slides with your group announcement, if you ask them. They all remember they've been bootstrapping whatever their group is right now, and they'll surely provide all kinds of help and advise.
There's always a chance that you'll have to eat all the pizza you ordered for the event all by yourself, since noone shows up. There're some general (somewhat subjective) points on how to pick up a date for the event in order to avoid such faiules, for example:
Other than that, just keep in mind that notably good or bad weather will influence an amount of people attending.
Location is just as important as time. It doesn't matter you have to be located in a city center with all the possible transportation available within 3 minutes from it (although it would be great).
Having some reasonable connection available is already good. If location is 30-40 minutes away from the city centre, some people won't come only because of that.
It doesn't mean that people who offer you a location which further outside the city shouldn't be considered, but I'd still weight all pros and cons and make sure there's just one factor that may prevent people from coming.
As I've mentioned before, building having a local community is crucial for any piece of technology. You may have a very convincing website, and an amazing piece of tech, but in the end what matters is what people say to each other personally.
I don't want to mention any names here, but there're certain pieces of technology that have gotten a large attention mostly because they were making very bold claims, and despite the fact what they said wasn't entirely true, they got extremely successful and were fixing issues as they got more and more popular.
That doesn't mean you have to be speculative about the tech. It only means that having a good coverage matters. I can see more and more companies working in database industry hiring people locally for the sole purpose of going to the conferences and talking to the people. And they'll certainly succeed.
If you want something that you're passionate about to get big, go talk about it. Engage people, show them why it's so awesome. You'll be surprised how many people there are out there who'd like to share your passion and interests.
What hackers are doing today in their free time will become mainstream tomorrow. Many people around the world are creating something new in their free time, lot of open source projects were born this way, then got large and hip.
There's a version of your favorite framework that someone's hacking on today, and if you're not an active part of the community, you will only get to use it when it matures and new crazy ideas implemented in it are already planted and settled in people's heads.
Same thing happens with programming languages: what is considered boring and forgotten right now, was at some point great, shiny and new, people were very excited about it, then used it for some time and got over it. But that exactly happend between that period of excitement and getting over it?
Early adopters heard something that sounded great, and decided to jump on the bandwagon, evolve the idea and make it better.
There's been a lot mentioned in this post, but I'd like you to remember a single thing: be passionate, engage into the community work, get a local user group running, tell people all you know, and learn yourself.
Learning is hard, and practicing something is the most important thing. You can read a story of my own learning how to program Haskell. Working in tech industry is an amazing priviledge, and it's your job to make it fun for yourself and people around you.
Published on Jan 17 2014
If you like my content, you might want to follow me on Twitter to subscribe for the future updates!