Open Source Collaboration

Before learning about the tools used for Open Source Collaboration, it’s best you get an idea of why they exist in the first place, and what exactly open source means. The best place to start when learning about Open Source ofcourse would be the source, pun possibly intended. The Open Source Initiative (a.k.a OSI) is a non-profit corporation which is mission-bound to educate, advocate for, and build bridges within the open source community. The OSI defines what Open Source is very clearly in the OSD (Open Source Definition) as, not just access to source code but also about 9 other criteria.

Below are the 10 criteria taken from the OSD:

  1. Free Redistribution
    • No restriction of any party from selling or giving away the software as a component of an aggregate software distribution
    • Licensing shall not require a royalty or other fee
  2. Source Code
    • The program must include source code, and must allow distribution in source code as well as compiled form
    • Deliberately obfuscated source code is not allowed
    • Intermediate forms such as the output of a preprocessor or translator are not allowed
  3. Derived Works
    • The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license
  4. Integrity of The Author’s Source Code
    • The license may require derived works to carry a different name or version number from the original software
    • Must explicitly permit distribution of software built from modified source code
  5. No Discrimination Against Persons or Groups
    • Must not discriminate against any person or group of persons
  6. No Discrimination Against Fields of Endeavor
    • Must not restrict anyone from making use of the program in a specific field of endeavor
  7. Distribution of License
    • The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties
  8. License Must Not Be Specific to a Product
    • The rights attached to the program must not depend on the program’s being part of a particular software distribution
    • All parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution
  9. License Must Not Restrict Other Software
    • The license must not place restrictions on other software that is distributed along with the licensed software
    • Must not insist that all other programs distributed on the same medium must be open-source software
  10. License Must Be Technology-Neutral
    • No provision of the license may be predicated on any individual technology or style of interface

Overall, participating in the Open Source ecosystem is quite simple but it is predicated on one simple rule. Always add a license to your work. Adding a license allows others to comfortably contribute/use/modify your project without fear as it protects contributors and users. Businesses and savvy developers won’t touch a project without this protection. Choosing a license isn’t that tough either thanks to tools like choosealicense.com, which helps you select a license that fits your project/needs.

Now, there exists a litany of tools used for open source collaboration, but to start the best thing to learn first is about Source Code Management (SCM) tools. One of the biggest and most well known SCM tools is Git, and its use cases go far beyond just regular software development. It can be applied in many different areas and businesses to simplify collaboration.