Last updated:

Software Community Engagement from a User Point of View

Introduction

A software community is a group of users of a software who meet, talk, share ideas/files together about this same software. This happen mostly online. If software users don’t communicate with each others, then there is no a community.

I have been involved in a variety of softwares online communities. But on the hundreds of softwares I used and liked, only few of them engages me passionately into their community.

So, why some softwares succeed to engage users in their communities and some don’t?
How could software projects maintainers make their users more engaged in their activities?

In this article, we will talk about engagement in softwares projects (projects maintainers / users relationship) and engagement in its community (users / users relationship).

This article focus on software communities because I think there are a bit different than regular communities. The members are users of a product made by a company, a foundation, or independent developers, that leads the project. In the first place, you don’t really come there to get friends or to have fun, but rather to discuss about the potential of a common tool you use often. It doesn’t means that it can’t be friendly: there are also nice and funny people there of course !
It is the type of community I know the best. You may transpose what I say to other kind of projects; it may not be as relevant (I’m pretty sure that a community member of a forum centered around Art productions — a book, a movie, a video-game… — will have very different things to say) but it is possible.

I am not a community manager. So I speak as a regular user, who experienced different types of community management, and I will tell what I like / dislike with them.

Why do I know from community engagement ? Well, the Cockos REAPER Forum is the forum where I am the most active and I only have 2 600 posts (top posters have more than 17 000). That said, I run ReaComics, a webcomics about this forum community, and I have made for free 300 scripts in one year to add new features (via scripting) in this software (which are pretty good signs of my involvement, I guess). I also contributed to other softwares extensions development, KickStarter campaign, tutorials writing, article review, video demos etc, for free once again… You get the idea. 😛

So yes, it is a personal point of view, I don’t know how pertinent what I will say will be, but with a bit of chance, my introspection/analyse could make you understand why I take so much times on forums (if you ever wonder), beyond personal center of interest (as a multimedia free lancer, I will be more attracted into audio/video/graphic softwares community, than others).

Who can be interested in this article ?

  • Community managers, Social media managers
  • Developers who promote their products their-selves
  • Users that are curious about this subjects

In this article I will say “you/your software/your project”, as if I was speaking to a present/future project maintainer and their team. It should be easier to write, and to read. I may also refer as “devs” to say “main developers” or “project maintainers” (even if this could be different persons on a real projects).

Obviously, if your product answers only one simple need (like changing the color of your windows top bar in Windows), it will be a bit too restrictive to create a community.

That’s why I’ll focus primary on “big” softwares, like Digital Audio Workstation, Graphics softwares, and CMS.

Affordability

This is maybe the one of the most obvious rule.

If your software can only be bought on a local store in Iceland for 100 000$ and will only work with Intel Xeon computers, you can be sure that your community will not be that big, and so, not be that engaged.

Not supporting an OS, or a device, and selling at an extensive price can be felt as a rejection.

So, having your products downloadable online without physical restrictions (USB license key…) is sign of more open projects.

Affordability, price, compatibility of the software, in other words, how many person could really use your product, is a key factor for building a community. The more person there will be, the more activities you could have, and the more people you could get attracted by your projects.

Product Quality

Another obvious point, I know, but it has to be told.

A user will not be engaged in an intensely buggy product that he can barely use without having freezes on his computer.

The product has to be top quality: effective, ergonomic, modular, stable, and answers to critical needs in clever ways, especially if there is alternative solutions in your field.

But it is not all about features. It is also about documentation. A good software without any documentation about its features (what they do and how to use them), is worthless, even with if you find that there is a good ergonomics. Ergonomics is way too personal, things may flow for a user and not for another, so… write a doc. A good documentation is an invitation to explore all features of the software. And who says invitation, says engagement.

Good ergonomics could be archived by setting users tests and beta testing. Listening to users criticism is key, you can’t only rely on your feelings to estimate if other people will feel as comfortable as you are. See UX Myth #14: You are like your users, and UX Myth #15: Users make optimal choices (these two articles are oriented web-design, but this is a subdomain of interface design in general).

Open Architecture

The more users could change, add, delete features around your software, the more it can potentially grows a community, where the developer will not be the main speaker in every discussion.

It encourages the users of your product to explore, create, and share by themselves to the others. This create a link from users to users, i.e., a community.

So what make an architecture open could be a lot of things :

  • A way the customize and share settings and themes about your software (like REAPER or WordPress)
  • A way to add functions to your softwares with an API that could be used by Scripts, Extensions, or Third Party Applications
  • A way to translate
  • Open source code so that users could contribute in the core itself (if they want to fix, optimize a thing, or build their own mod) (not necessary the whole software itself but maybe the projects that can be created with it)

A central repository to help users share their creations is very welcome in these cases. You not only provides the modularity, but also a place where users can meet each others, share, and discuss within each others. WordPress plugins repository is a success model in this domain (around 40 000 free plugins at this time.. that means a lot of users). Evaluations, support, and translation system are hosted on this same site for all plugins individually. All tools are put in placee to encourage the users to engage with plugins authors.

The more open a software will be (without license, copy protections, features locked, projects encryption, proprietary formats etc), the more the users will have a feeling of trust. By respecting the users, telling them that they have the right to use your tool in every way they want, you place them to an equal level than you. That’s one of the reasons which make open source projects communities so dynamic (see GNU/Linux, Firefox, WordPress etc…).

Communication

This is a complex subject where some of the most respectable softwares maintainers can fails.

Being able to make personal support, to communicate about your plans about the future and your updates, taking part on the users discussions to answer their concerns, or telling them that you are listening to their ideas can be one of the most powerful things to engage a community.

Sure, this take time, time you could have put in pure development, but it’s really worth it: this people will thank you for your respect, and having motivated people in your project can be a strong motivator for yourself. Also, motivated people tends to stimulate other users as well.

It is not only what you communicate, but what tools you put in place to communicate with your users.

Devs to Users

This is ways to announce things to your users, and to the world in general. You don’t have to do it every minutes, it could be only one post a week, or less, but every sign of your presence will be stimulating. This people already use your product, and so, they’ll appreciate hearing from you.

Official Website – Blog

Official website is where your users should find all necessary infos about your project. It can be the first link they have with you.

It has to show some sign of activities: not only last updates, but also some posts/articles where you are speaking about your project. Contrary to pages, blog posts have a date. And so, we can easily see if your project appears alive or not.

Take a look at Krita‘s website for example (Krita is a digitial painting free open source software). Right on the home page, I can see the last articles which were posted on the website: 10 in a month. This project is definitely active, no doubt about that! We will talk about the content later.

Opposite example : BadgeOS website (a plugin for WordPress to add an achievement system to engage users with rewards and gamification). Last blog update : 2014. Last copyright notice on the bottom of the site ? 2014. Is this project alive ? Well, as matter of facts, yes it is. But this is only by asking the question of the support forum that you will know that. Apart from that, the project seems a bit abandoned, or at least, not as important than before for their maintainers. Maybe they have bigger plans, maybe they have personal problems… We don’t know. And that’s the problem. They don’t have to tell us the reason if they don’t want to, but you have to admit that you will be more confident in investing (time and money) in a software with an intense activity than into one that seems neglected by its own creators.

That’s why I personally love business blogging as a user: it gives clear vision of the project pulse, and it shows you have something to announce to the world and your users.

For obvious reasons, it is important that you website feet modern expectations (readable text, responsive design, accessibility support, good information structure…). There is a lot of free solutions (including WordPress), to have a good looking website with minimum efforts, so there is no good excuse for an unreadable theme.

Social Medias

If your project is present on the main social medias (Facebook, Twitter…) and directly engage with the users this way, you give a feeling of proximity between you and your users. You are accessible, and you are at the same level as them. It can be hard to manage, as users can contact you for support here rather than on the system you put in place, but as long as you answer them, you will engage them.

Just as business blogging, you have to push updates regularly. It is easier with social media than business blogging, as a simple link with few words can be considered as a publication.

Mixed

These are ways to let the users interact between each others, and to discuss with them, all together. Of course, your participation is really appreciated, and sometimes, even needed.

Forum

A forum is a perfect place to let the users communicate between each others. They are created the content (the threads), and they can see others threads and posts, and participate, have discussion etc…

A nice thing in forums is that threads can be put in different thematic subforums, and are archived for years. A user message on a social media tends to vanished very easily, forums posts are more likely to be scanned by search engine robots, and read by other users.

Your participation will be very welcome, and in fact, a lot of threads can ask for your insight. Keep in mind the more you communicate on your official website and social medias, the less people will come with questions about the state of your project or the state of certain features integration. As a users, I really love to hear from the main devs/project maintainer, no matter what is the subject.

It can also be a good place to make personal support, that can be seen by others users. These will appreciate to see that you help.

When people starts opening threads that are not related at all to your product, then you can be sure than you succeeded to build a community, where users want to express their feelings, and in which like to be part. However, be sure that this kind of content as separate from the others (aka, have their own subforum, like the Lounge subforum on Cockos forum).

Because it is a place where people can spend a lot of time, your forum theme and functionalities should be up to date, and feel comfy to use.
Some forums also have some modern gamification system to reward users contributions, or highlight certain answers. I personnaly like these kind of things.

Real Life Events

Meeting, conferences, camps and all other types of real life events where users of the community can meet each others and meet the projects maintainers personally can really contribute to building a strong community.

It is the best things you can do to show your users that their opinion/expertise/advice matters.

WordCamp are a great example on this subject. There is 5 WordCamp in the next two months, all around the world, were regular users could meet top WordPress developers, and also some of the main devs of the WordPress team itself, and sometimes, even its creator and maintainer.

Of course, to be able to do such things, you will need a very big users base, so enough people could come, no matter where you organize it.

You can also participate on more generic (but highly popular) events, with other brands in your fields, like trade shows, exhibition ceremonies etc… But it can difficult to enter this close networks, and open projects tends to avoid these industry exhibitions considered as gigantic advertisement systems rather than “a place to talk, learn and share”, which I totally understand.

Users to Devs

These systems are direct links between you and your users, that can be suitable for individual support. It helps the users to be involved in your product, but it doesn’t help create a community, due to the private nature of the systems.

Support Tickets System

This is a way to provide support to users with more privacy. A users leave a “ticket” asking for help, and a agent (from your team) is assigned to it for finding a solution.

Sure, tickets can be public, and in this case, it looks more like a forum. (And forums can have a way to emulate ticket system, which blurs a bit the differences, but the agent thing make it really different).

If a forum is a clear invitation to speak from users to users, tickets systems appear to be more formal, more users to devs oriented. Which is exactly what it is suitable in some cases.

Mails / Contact Forms

Like support tickets systems contact forms (and answers by mails or phones) would be more users to devs oriented, but if your project is not to big, answering users by email is a sign of intimacy that can seduce your users.

I will not advice you to do that if you need to archive things precisely.

Sure, you should not forget to answer people. BadgeOS have a top class support, a guy who help every users, and help me personally a lot of times. But when you have to contact their team (Credly) for another reason, it is a very different experience.
If you developed an extension to extend their product, they provide a form so you can contact them to make a review. I also contacted them in all ways available (mails, forms, social medias), and it took finally three weeks before having a simple answer. Two months after, the two extensions I freely coded for them (one full month of unpaid work development) still didn’t get reviewed.
I totally understand that they have other priorities, I can’t blame them for that as they didn’t asked me anything in the first place, but it is the lack of communication and consideration than cause problem. We will speak about user activities consideration later…

Phone / Chats

Contrary to the other systems, chats are instant discussions, without real archive system that could be scanned by Search Engine robots.

No matter how you chat (Skype, Slack, IRC), on public room on in private, providing a direct way to talk with you can be really appreciated in some circumstances, giving a feeling a proximity. But again, it could be hard to manage when a lot of users are involved.

Others

Of course there is other ways to communicate but I don’t think they are suitable for managing projects.

Also notice that I didn’t considered advertisement like a way to engage users. The only goals of advertisement is to make potential users to subscribe to an offer, so it doesn’t really target the existing users base. Discount and Promo Codes are cool, but they don’t push users to engage with the others. It is not because I had a Christmas discount on a product that I will start contributing on its forum.

Product Activity

If you show that you are working hard on your product, providing support, pushing frequent updates, and communicating about them, well you can be sure that people would like to follow them more regularly.

It can be several REAPER pre-releases versions in a week, and the maximum time without two pre-releases I saw is 2 weeks. Seeing that so much intensive work is put into this project is really engaging, and make users want to contribute back (by providing support to other users for example, considering that devs are too busy to code).

No matter what way you choose to talk about your activity, it is always appreciated to see that some people are working here to satisfy our needs, and that new things are in preparation, while we enjoy the current version of the software.

Crowd Sourcing

There is several ways to earn money with a product. You can sell it (obviously) — fixed, variable or custom price —, add advertisements (not very appreciated, but tolerated if it is not invasive), have sponsors (this can be difficult), donations, and crowd sourcing campaigns.

From all these ways, I found that the most engaging one is crowd sourcing campaigns.

Crowd sourcing campaigns exposed clear goals, road maps, plans for the new features that could be implemented in the software in the future. You tell the user that you need his help to continue, to make this come true. If he his interested, donating would be way to help for the integration of features that he want. And he can support you by a fair amount, based on its generosity, interest level and resource.

But that’s not all, you also reward contributors, according to their degree of contribution. Not only by the product itself, but with some personal extra awards, according to the amount they donate. It could be from simple dedication on the software changelog to private interviews, access to private betas, and all kind of goodies (T-shirts, stickers…).

Contrary to the other models, crowd sourcing campaigns are all about communication, from the start (the campaigns promotion) to the end (rewarding the users, communicating about updates), which will be deeply appreciate. I was part of the 2015 Krita KickStarter campaign, and it was a pretty exciting month, where I checked updates regularly to see the state of the campaign, and telling my friends to contribute to, to be sure it would success.

I didn’t make any donation to Krita before, just wrote an article about it on my website (that said, it is also a way to contribute, by promoting the software). But on the first day the KickStarter campaign was out, I the first one to leave a comment after a donation on the KickStarter page. The product didn’t change so why did I suddenly give money ? Because of the feeling of being part of something, of an adventure.

Selling products or having a donations system tells “put some money for the software”. Making a donation campaign tells “put some money so that you will get this”. And that is a key difference.

Because if people like to support, they love to contribute.

A crowd-sourcing campaign is a way to invite the users to jump into your adventure. They will be part of your software success and history. What could be more exciting for a software user who want to support your product ?

Of course you don’t have to use a dedicated platform to perform crowd-sourcing campaigns. Wikipedia does one each years with their own system, to boost donations during a certain period.

About Krita’s crowd-funding campaign, they had a system of stretch goals list, and they proposed to patrons to vote for the next features to include in the software. A nice way to show them that their voice matters, and that they indirectly contribute to shape the software to their needs.

Promoting Users Activities

So now people are engaged in your project. They do stuff with it, they use it often, they talk about it to their friends. Cool ! But how to stimulate them further ?

Simple answer : promote their activities. Show to other users and to the world what your top users are making with your tools, or sponsor what they are doing with/for your tools (when I mean “for”, it could be tutorials writing, resource sharing etc…). This will engage new users to come because they will see the great things that we can make with your product, and the promoted users will feel that you care about their job, that their voice is important, that what they do for the community is appreciated by you personally. The ultimate thing would of course be to hire them, and if they have something to offer to your company, of course, or to sponsor them from time to time, if you can afford it.

On this subject, I found that Krita is doing a marvelous job.

They not only promote users artworks regularly, but also tutorials, resources, articles… They also make interviews and showcases of top class users very often. And they organize creation challenge. And all this is discuss on all their medias (forum, Facebook, Twitters), but especially on their own website, which proves that they sincerely care about what users are doing a lot.

When I wrote my article about The Most Powerful Features in Krita for Digital Painters, few hours later I get a comment of , the project maintainer of Krita’s itself, and it then promote my article on all Krita’s medias, and his personal website. I was already seduced by the software (that’s why I wrote an article about it), I found that they have a nice philosophy (I’m a big fan of free/open source projects), but when I saw that they care that much about what users have to say and that they helped me by promoting my article (which become the most read article on my website in few days)… I was sincerely touched. And when a user have a positive emotional answer to you… you can be sure he will be engaged even further, in a way or another.

People care when you care about them. And even more if they care for you in the first place.

The other side of this concept is that if you never promote or support (even by simple comments) any (or too few) user activities, even for people who did 1 000 hours of free work putting things in place to share for/with your community (tutorials, videos, extension.s..), you can create frustration.

Sure, you didn’t ask for anything in the first place. But these people are reaching their hand to you. They might deserve (and even need) a minimum of recognition.

In the worst scenario, they could have have the feeling that you fooled them, that they freely work for you for nothing (not a penny, not a thank you, not a single consideration), and they could quit your project (or at least its community) as fast as they came into it, and be one of your most vociferous detractor, no matter how good was your product in the first place. Yeah, some people care about people who create the softwares, so spending hours per day on someone software, someone they don’t like anymore, could be a bit hard. This could only affect your top contributors… people you shouldn’t lose for your cause.

People

It is the sums of the individuals that build a community.

You can have the perfect project, but sometimes, the magic still doesn’t happen. Funny things is that project who succeed on social medias doesn’t necessarily have a very active forum. Or the opposite : very active forum but poor social medias activity is also possible.

Everyone one has his center of interests, his feelings, his moods, his sensitivity, his desire to help, and his amount of time available to dedicate to online activities. Sometimes it works, and lead to passionate discussions (even if people didn’t have to agree), sometimes, it does not. That should not stop you from communicating about your software, new people can come, people can evolves. The situation can change over time.

Also, the more people there is, the more people there will be. That’s how not-as-good products get sometimes more attention than more powerful but less known one. The feeling of “standard”, the feeling of “I can talk to the other about that without being an outcast”… That matters. People don’t like to feel alone on a forum.

Moderation is important. A rude guy who pass the net of your moderation can hurt a user, that may not feel comfortable within the community anymore. He may still use your products and follow your update, but he will not contribute to the community anymore, so be careful with that.

I think a difficult situation would be if someone you dislike (pretentious, arrogant, or whatsoever) contribute a lot to your community. I don’t have any answer to that annoying problem.

Conclusion

In resume, what engages users into a software community (or at least users like me) ? The subject is pretty complex, an so subjective, but you can extract some key rules.

  1. A great product, modular and extensible, with frequent updates, easily accessible, available at a fair price, on different platforms, and with some open source aspect.
  2. Communication, in all way possible, without neglecting public worldwide announcement outside the community (official website/blog), clearly telling your goals, your plan, your vision, on moderns tools.
  3. A feeling of respect, of trust, of consideration about users feelings, users opinions, and users work.

On the contrary, all negligences to this rules can push some users away little by little. Proprietary formats, unjustified expensive price, poor support, no communication and no consideration are really bad for your business, and your community.

If you are a developer, what about your projects ? How do you communicate with users ? How do you promote their work ? Please share with us your methods, any external insights are very welcome ! 🙂

If you are a user, do you have any example of great software communities ? What do you find stimulating in these ?

Thanks for reading !