Open source to the rescue — again

  • meritocratic: Decisions are merit-based (rather than status-based)
  • self-organizing: People adjust processes to their needs (rather than the other way)

The open source principles

Let me explain each of these principles of open collaboration in this section.

Egalitarian: Everyone can contribute

Open source is inclusive, nobody is excluded. As an open source contributor it does not matter where I am from, how old I am, which country or time zone I am currently in, who my employer is, what my background or motivation for contributing is.

Meritocratic: Decisions are merit-based

In open source, any decision is based on the merits of the argument and the value it brings to the project. There are no hierarchies as they are in companies, where decisions are made on a person’s status. And after some escalation steps, people with a high-status decide on topics which have no expertise and/or have no insights into the underlying technical problem. You will not find a CEO/CTO of OpenStack, Python, or Apache webserver anyway. This leads us to the last principle.

Self-organizing: People adjust processes to their needs

The each open source community organizes itself and adopt its processes as they need it. Open source projects are very diverse, from low-level hardware driver to webservers, from small utility methods of some lines to large operating system, from a group of students to several thousands developers — there is not one practice that fits them all. Without contradicting the open source principles, there are many manifestations of the software development practices.

Implications

These principles imply some conclusions, I want to describe in this section.

Open communication

Obviously, it is not enough to open the code. Everything must be open, also the communication. Open communication is communication that is public, written, archived, asynchronous and complete. With some exceptions, the communication is in English. Only if all of those criterions are fulfilled no potential contributor is excluded, because, for example, he is in another time zone.

Roles

Two roles follow from the egalitarian and meritocratic principles: Of course, the fact that everybody can contribute does not mean that every contribution is waved through without any quality assurance. If you doubt that, try to make any contribution to Kubernetes or the Linux Kernel. This is why open source differentiate two roles: contributor and committer.

Forks

Forks are an important option for self-organizing in open source. Everybody can fork the project and drive the development of the forked project in a certain direction or change the rules. Usually this happens only with good reasons, because a fork splits the code base and the community. But forks also spawns competing projects fighting for the best developers, processes, and best development.

Benefits

So why is this a big deal? There is no free lunch, open communication, for example, comes with significant efforts.

Higher code quality

Code quality profits from this openness. Or in other words by Linus Torvalds

Improved code review

Closely related to the higher code quality is the improved code review process. In open source, solely committers decide on acceptance and rejection of changes.

Passive documentation

Because all documentation is complete, archived, and written (and this means also searchable) the project gets a documentation over time with a minimal effort.

Inner source — open source within a company

As you can easily image, this is nothing I just invented ( → reinventing the wheel): The use of open source software development best practices and the establishment of an open source-like culture within organizations is called inner source and meanwhile well established.

Conclusion

Sometimes summarizing is complex, but not in this article: Do not reinvent the wheel, do use open source {software|practices}!

--

--

--

Software developer and researcher on empirical software engineering.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Exploring Blockchain Development — Day 2

OriginTrail v6 bounty program: Help launch the most advanced Decentralized Knowledge Graph yet!

Providing template policies at lambda for fine-grained access control to AWS resources

#7 Fun Python — Play with date and time

List of Algorithms in Computer Programming

I̶n̶s̶t̶a̶l̶l̶i̶n̶g̶ Forcing NVIDIA Drivers to work with Ubuntu (14.04 and up) EFI Boot

Learning a foreign language vs learning to code

MMR — — Let Computing Power Trade like Playing

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Michael Dorner

Michael Dorner

Software developer and researcher on empirical software engineering.

More from Medium

Content Ignite release v.1.0 Wordpress plugin for Publishers

NoCodeAi Cloud IoT Intelligent Camera — NoCodeAI.Cloud

RSA & Digital Signatures

APIM v4.1.0 revoke the token when invoking an API