Supporting open source users seems like a thankless job. There have been many blogs written on this topic. Developers have stopped maintain popular projects because of the burn this causes. People who use open source projects, indirectly assume that they are entitled to free support, even if they have taken no effort to understand the issue, or tried searching for a solution.
At some point, it becomes unsustainable for the original developers to keep helping without a return. At this point it is important for the community to come up with a good volunteer based model of helping new users. When the project hits a very large scale, like Ubuntu for example, you find enough people with expertise to answer such questions, so this problem can be overcome by scale. This assumes that basic housekeeping like building documentation continuously is being done.
When the project is moderately successful, (it has lot more users than volunteers), the developers have to keep supporting without any benefit, if they want to project to be successful. Specially if their livelihood depends on it. Of course after a point, the developers can push for paid support, but entitled users who expect free support will still bite if they don’t get the support they expect and bad-mouth about the project. This is a tricky phase.
While it feels wrong to help anonymous users, it feels good to help people who belong to the community. As humans we feel happy when we are of use to somebody, but we feel sad when we think they are being exploited. While working on open source projects, its easy to move from one extreme to another. So how do we solve this problem?
One way would be to build a community and know the people in the community. So how do you define such a community? I think, a community is formed when people help each other to achieve a common goal. This means they invest time, effort, energy, money to help everyone else achieve this goal. When everyone does this, everyone benefits from each others’ investments and the community grows powerful.
So why would someone invest in being a part of the community? First the person has to be convinced that being in the community, that is giving back, is more beneficial than just being a taker. The process of contribution must be easy for someone who is new. It also helps that you feel that you are not being cheated by helping other users. This can be done if the benefits reaped by the community are fairly distributed instead of being cornered by a few. Another important thing is that there must be fairness in the way the affairs of the community are conducted.
A feeling of fairness comes when there is openness and transparentcommunication in the community. This also means moderating the communication so that the conversations are open, fair, focused and based on activities rather than opinions. Users who abuse the trust of others, or only keep taking (and not giving) should be discouraged or disbarred from the community. In online communities, people sharing their real identity, profile pictures rather than being anonymous, also makes it more human and friendly.
It is important that those who contribute to open source projects also be kind on themselves and do not burn themselves out. In the long run, open source is a great asset and win for everyone, but in the short run it is hard to sustain and keep the faith. The internet not only gives us tools to collaborate, but also to share the benefits and trade, and working in an open source community also feels specially rewarding.
But it need not be a hard slog just because its open. A little bit of balance can go a long way in making things fun.