Building online communities: Hazelcast
Hazelcast is the leading open source in-memory data grid. It offers a small library that provides a clustering and data distribution platform for Java. We asked Chris Engelbert, Manager of Developer Relations at Hazelcast, to tell us a little bit about their open source community.
Tell us about a little bit about yourself and the Hazelcast community. How did it all begin?
Hazelcast is the leading Open Source In-Memory Data Grid, rendering low latency access and fast calculation easy and fast. In 2005 Hazelcast itself started out of curiousity to find out if distributed data structures and distributed computation has to be complicated. The main driving goal ever since is simplicity.
With each release the project grew and more users and contributors joined our tribe. A lot of people were happy with the common style of support given for open source projects at that time, however some users needed more. In 2009 Hazelcast was founded as a company employing an open source business model, at that time and due to the requests from the community, managing commercial support contracts to an open source project. Basically what everyone else did :-)
I joined the company in late 2013, coming from the user / community base, answering questions on Google Groups and being a frequent contributor. I don’t remember if Stackoverflow already was a thing back then. First being part of the core development team, I moved on to Technical Evangelism and finally Developer Relations (as we call our program today) due to my experience in the open source world.
The community / project today has grown to over a 100 external committers and some of them are frequent contributors, some of them are less frequently contributing in terms of pull requests but are actively involved in design discussions, answering questions, speaking at conferences. We engage everyone to join the community forces and support people with swag and other goodies.
What common goals do you have as a community?
To make Hazelcast the most commonly used (and obviously best) In-Memory Data Grid in the market. There are a few competitors, still it is a niche sector. Anyhow our main goal as a community (not only us as a company) is to bring Hazelcast forward, to keep the simplicity approach by heart. We love to engage with people, we love to hear their ideas and we love to work with them.
Last year we started the HEP (Hazelcast Enhancement Proposal) process to engage working with the community even more. Using HEPs we drive the community based development of features or extensions for Hazelcast. People can submit new ideas, they can join others HEPs and in general we try to canalize development in a way to prevent the community and Hazelcast employees working on the same idea / feature independently and in the worst case concurrently. This would result in one solution to be dropped. Apart from that the best results are those that are created together!
What are the main issues discussed in the Hazelcast Gitter channel?
We use multiple Gitter channels. The main channel is used for all kinds of general discussions, questions and open source support. Apart from that we use one Gitter channel for each running HEP (incubator) project to centralize discussion on this feature while it is in discussion or implementation phase. In general everyone is free to join the Gitter channel at https://gitter.im/hazelcast/hazelcast and start discussing about whatever seems interesting to her / him and related to Hazelcast :-)
What are the most important factors that you have taken into account while creating and maintaining the community? What factors contribute to the success of your community?
I guess the key for a strong community is to listen to them. Listen to problems, listen to ideas but also to have an open ear to constructive critics. Users are users and they define how your project is used in the end. Not all of them using it the right or even expected way but those are situations you want to either solve together with them, bringing them back to the right way or where we have to consider if providing a better solution to their use case makes sense. Here again comes the community vs. company into the game. I speak for the community and I fight for every request :-)
On the other hand it’s not enough to just listen but you also need to show responsiveness. You have to react to keep people active, engaged and feel appreciated. Giving reputation to the right people, showing appreciation, as well as reward the most active ones are just a few things that are on the table. When done correctly people come up with talks, writing books, help develop the community together with you. That’s at least my experience.
What are the key challenges that you encounter while managing the community?
I guess it pretty much comes down to the same as my biggest private excitements. Managing all the different channels that developers all around the world want to use. Everybody has his favourite platform and we want the people to feel home when interacting with us.
Gitter has become a main factor in interaction with our community since we started using it about 2 years ago. It is very convenient for the users as you reuse your already existing github user account and it gives direct and fast access to Hazelcast internal developers — and yes they love to interact and chat! Come and try it out! Apart from that the main issue is: my day has only 24h but I would love to work with the community 48h a day!
How do you encourage participants’ commitment and contribution to the community?
We want developers to love Hazelcast, we want them to love it from the bottom of their heart. For the right reasons. Often developers are lazy (I am! You all know the joke that developers automate everything they need at least twice? ;-)) but creative, we want to give them the simplest way to solve their distributed computing / storage problem but also support their creativity with features they really need and love.
Given that we also supply them with everything a loving heart needs, t-shirts, stickers, you know how it works. We love to see people living Hazelcast everyday and we really appreciate every bit that comes from the community. We’re interested in their use cases, we ask them to share their experience with the world, may it speaking at a conference, writing a blog posts, organizing a user group. Whatever they do, we’re here to help them and clear the way whenever possible.
Based on your experience, do you feel that the open source communities have changed and evolved over the past years? If so, how?
I guess open source communities definitely changed. Open source, a couple of years ago, was mainly considered to be okay for startups or smaller companies that had basically no money to spare in software, or for Linux. This has completely changed over the years. Open source moved into the mainstream of software development and made it into the biggest application systems. Even military organizations trust open source solutions for their openness, stability and ease of customization.
Along with the way open source changed, communities followed along. Today open source communities consist of highly skilled, well known and/or extremely engaged people. Some people are even considered the same way as rockstars. Didn’t imagine that while I was in school.
Open source and business is not a contrast anymore, it will change further. Today there is commercial support for almost every bigger open source project and there are people in need of that. Everybody is free and able to pick up an open source project and to provide support. Isn’t it a great software world we’re in? I mean look at Microsoft, yeah! :-)
What advice would you give to someone who wants to start an online open source community from scratch?
Woah, last question, hard question.
Building a community is hard job. You need to be persistent, you need to provide time, I mean a lot of time. Begin with your project, if you find a second or third person, that’s awesome. Build something amazing and people will love what you built.
A good first step is talking about it at conferences, creating awareness. Write about it, make people know it exists. Engage people, help them spreading the word again.
I guess it all comes down to keeping people engaged and love what they do, they’ll love what you do!
P.S. You can easily start your own community Gitter channel here.