
A great divide separates the typical Open Source developer and user. Each has differing expectations, assumptions, and priorities. The interaction between developer and user can be helpful, cordial, confrontational, or antagonistic.
Of course this all stems from being on opposite sides of the fence. The key to a successful relationship is communication and understanding (not exactly a new revelation). Unfortunately its not possible for one developer to communicate directly with thousands of users. So developers resort to blogs, websites, forums, and mailing lists in an attempt to foster some sort of dialogue. This works, although it can become so consuming that development time vanishes away in an attempt to keep up the lines of communication.
Communication is easy compared to understanding. Its often difficult for a user to appreciate the developer’s situation and vice versa. A developer often has to be “all things to all people”. Each user has their own priorities and wants their issues addressed. The developer on the other hand can be flooded with a multitude of requests for fixes and enhancements, each very important to the user. Understanding the other’s position can lead to a healthier relationship.
Here are some things to keep in mind, regardless of which side of the fence you are on:
User
In the Open Source world the majority of developers are volunteer, working in their spare time and on weekends
Developers are very busy and may not respond in the time frame you wish
Working on a large Open Source project can be a huge time commitment
Think about the effort that has gone into a project and appreciate the commitment made by developers
What have you contributed or invested in the project?
Positive feedback is good
Making demands in an aggressive manner is not a good negotiating tactic
Supporting other users by answering questions and sharing your knowledge is an important, substantial way to contribute
Developers do sincerely want to help
Don’t mistake cultural differences for animosity
Developer
Users are intelligent and have good ideas
Your software is likely being used in ways you haven’t imagined
Many users may have a significant business interest in your software. Its important to their operations or clients.
Documentation and support are just as important as writing code
Come up with a personal plan and commitment to address user’s concerns and issues at a level that fits into your schedule
Examine project communication and support mechanisms to make sure they are adequate
Don’t assume that your way is the right way when it comes to user interface design and functionality
Don’t mistake cultural differences for animosity
One of the things that can aid developers is for users to be more vocal about how they use the software. Contributing articles and posting on project websites/blogs about your use of software can be very enlightening for developers. The more a developer understands the ways in which their software is used, the better the development effort can be guided, tweaked, and enhanced.
When it comes to communication, “more is better”.