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".