What is the nature of the relationship between the Developers in an Open Source project and the members of the Community. What sort of obligations exist? To whom does one owe duties and loyalties? Is there — god forbid — some sort of contract implied in the relationship? I did some research into the topic and found very little directly on point. By extending my reading into other relationships, between voluteers in organizations, between parties in cases where courts have found implied contracts, and in broader arrangements like the Debian Social Contract, I started to form a picture of what a best practices approach might look like.
The OS Developer’s Pledge to the Community
We recognize that the Community needs a stable DevTeam with open management that follows the needs and trends of the Community. We understand that we are looking to the Community for help and support, and we also understand that it is important to be a responsible member of the Community. We also recognize that failure to respect these rules of cooperation and trust can result in considerable disadvantages for Community. Accordingly, we pledge to respect the following principles: We will maintain the best source possible Our most fundamental duty is to maintain the integrity of the source. We believe in giving our Community the best product possible at all times.
We will strive for stability and longevity
For a distribution to be useful to the majority of the Community, longevity of compatible versions is a requirement. We pledge to not only maintain professionally the software, but also to help promote longevity and reliability.
We will communicate openly In a community-driven project, transparency is the key to freedom, trust, and honesty.
We will keep communication channels open. We will take an active role in fostering communication between the DevTem and the Community. DevTeam members will be responsive to the Community and will be available to the Community.
We will consult with the Community
We pledge to keep the Community involved, to seek the Community’s views, and to incorporate the Community’s desires in everything we do. We will make every effort to listen carefully to the Community, and make changes when necessary to help them use the software to its full potential.
We will take no step which harms the Community
We work to benefit the Community’s best interests. The Community comes first in all our decisions. We pledge that we shall take no actions that harm or have the potential to harm the Community, nor shall we fail to take actions necessary to avoid harming the Community.
We will disclose our plans
We work on behalf of the Community and we need the Community’s guidance. Accordingly, we will present our plans for development (our “roadmap”) for Community feedback and commentary. Where needed, we will revise the plan based on the Community feedback. We will provide full disclosure of all relevant information explaining why we recommend the steps in the plans and what the potential consequences might be. We will discuss with the Community alternative plans and our reasons for not recommending them.
We will not hide problems
We will keep our entire bug report database open for public view at all times. Reports that people file online will promptly become visible to others. We will similarly not hide problems with relationships between our team and our sponsors, vendors, or community members, where those problems have the potential to negatively affect the community.
We will foster communication among developers and strive to identify technical leaders
Our team is a meritocracy. In an attempt to promote optimal efficiencies, we will assign jobs and responsibilities based on merit and commitment wherever possible. We will mentor less experienced members of the team so that they can improve their skills and may assume greater responsibility in the future.