Codes of Conduct
Starting with an open source software as robust as go, we can see the code of conduct not necessarily being overtly explicit on the types of contributions that are allowed. Rather, a heavy emphasis is placed on the social etiquette of contributors. A likely purpose for this is to minimize a baseline level of alienation within any community surrounding any given open source software, and in retrospect, this makes a lot of sense. If you scare away new contributors with your culture, then your technology is less likely to have newfound ideas brought upon it, and thus its quality will eventually stagnate (which is the exact opposite of what is trying to be achieved with open source.)
Continuing to look further into Go’s code of conduct, we can find that it has actually been adapted from the contributer covenant base code of conduct document, with the primary change that the “enforcement” section has been altered to “conflict resolution,” likely to convey a less punishing tone regarding community guideline infractions.
Eclipse has also adapted from this code of conduct, but it primarily differs from Go’s on the basis of having more restrictions on contributor behavior, even going so far as to include the aforementioned enforcement section as opposed to altering it in the case of go. My hypothesis is that this difference likely arose through the difference in management and development of the companies that founded these open source technologies (Google and IBM respectively,) and this dichotomy of culture leads to a slightly different set of values being enforced, even if there is similarity.
This can be seen further with the Sugar Labs code of conduct, which follows a template completely unique to the previously mentioned one, as it is based off of the Ubuntu code of conduct. The main overarching difference with this code of conduct is that respectfulness is left a lot more to the fair judgement of the contributor, as opposed to the previous codes, which have some explicit examples of what is not at all tolerated.
Looking at another open source project from Google in Cirq, we find that the code of conduct is actually identical to Go’s code of conduct, further reinforcing the fact that codes founded by different people and organizations are quite likely to have variance primarily based on the founders values. Thus, there is actually no necessity to alter Cirq’s code of conduct from Go’s, as the same moral principles and social etiquette holds.
Prior to this activity I had never really thought of open source software doubling as a community as well and needing guidelines for behavior by extension, but in retrospect it makes a lot of sense. I hope to come back with more insights to the nature of these technologies as I progress through this course.
How to Drive Consensus and Transparency Within Open Source Communities
This talk was also interesting to me, further bringing attention to the community management and social aspect of open source development that is crucial for the success of any project of this nature. Essentially, the talk focused on three main points that I was able to derive: Clarity, Management, and Mentorship.
First, I will start with clarity. The speakers from the linux foundation emphasize the importance of defining a “North Star” for a project, a common, clear goal that the technology being developed aims to work towards. Combined with this north star, there is also emphasis on the clarity of documentation and communication for which people hold what roles and what that entails. Ensuring that everybody is clear on what work needs to be done is not only conducive, but crucial to success for any open source project.
Next is management. Management isn’t necessarily framed from a perspective of absolute authority by the speakers, but rather as facilitation of community behaviors. Conflict resolution, meritocratically charged decisions, and rough consensus are all tools that open source pioneers need to be well equipped with to ensure communities stay both efficient, and in check from a behavioral standpoint. Debate should be allowed, but project derailment needs to be prevented.
Finally is mentorship. Without mentorship, many projects are doomed to fail, as over time they will only become more and more inherently complex as contributions begin to pile up. In absence of proper onboarding and mentorship of aspiring fresh contributors, projects will slowly become dormant as the engineers experienced enough to do something with it begin to move away, and those who are not struggle to grapple with what is already left for them to deal with. Proper mentorship facilitates community engagement and iterative idea generation, so this is the last main pillar that I was able to derive from this talk that is very important to have in an open source community.
Ultimately, soft skills while especially overlooked in a field as meritocratic as technology, is very important in order to facilitate consensus and harmony within any open source community.