At the heart of Social Coding are four universal principles:
The first characters form the acronym ‘CODE’ and we will refer to them as CODE Principles from now on. While the Principles address how we go about to build our software, and the core Practices of Social Coding are concerned with what we should focus on to deliver:
And conveniently these are then the ‘GEM’ acronym. The GEM Values that assure that free software addresses people’s needs.
Social coding revolves around communities of action. Software is made by people for people in a highly collaborative and creative process. Deep involvement of participants and their social interactions are key to success.
Social coding is about working in public and in full transparency. Projects are built with open technologies and based on open standards. We embrace the notion of FLO, Free / Libre / Open, for all the work we do.
Social coding is for everyone. Regardless of skills and background every person can have their say and make their voices heard. Communities are self-governed and apply democratic principles that foster inclusion and diversity.
Social coding recognizes the breadth of its field. Every person has unique skills and traits. We are open to learn from each other, and will actively teach those who want to be taught. We encourage lifelong learning, and thinking out-of-the-box.
Our software must address real human needs. It should be in support of people’s day-to-activites and an enrichment to their lives. We strive to deliver software that people will come to love. This does not happen all at once. We aim to grow software incrementally such that people’s affinity grows with it simultaneously.
Free software in general should be to the benefit of the commons. This starts by adhering to the Four Essential Freedoms and more broadly to FLO principles. We take into account prior works that exist and strive to build on top of their foundations, so that the commons as a whole benefits to maximum extent. We give back to the works we use.
In all the decisions that take place along the free software development lifecycle the possible externalities, both positive and negative should be investigated and handled properly. Positive externalities may lead to new opportunities, whereas negative externalities must be mitigated in best ways possible.
Of course we strive to adhere to CODE principles and GEM practices ourself. We intend to elaborate them along the way in some of our Ecosystem projects and Communities. We will not be perfect at this from the very start, but we consider the projects we engage in as reference implementations of Social Coding practices. We’ll eat our own dog food, and hopefully we will deliver CODE GEM’s that are delightful.