Embracing Open Source: What is Open Source Software anyway?

Understanding The Origins of Open Source Software

Zohaib Khan

5 minute read

Opensource Software Development Lifecycle

In my last article, I covered the importance of embracing Open Source Software in enterprise to drive innovation and disruption . I tried to highlight that OSS has matured to a point that it cannot be ignored anymore for strategic needs and laid out a very high-level framework for its adoption in an enterprise.

I have gotten a lot of good feedback and tons of questions since it hit the press. Questions ranged from basics, such as What is Open Source Software anyway? to more advanced ones, like What are your thoughts on containers and how should they be used?. This is a lot of ground to cover in one conversation, so I thought it would make sense to write about some basics of Open Source Software first.

In this series Embracing Open Source, I will try to focus on some foundational topics about open source software, such as:

  • What is Open Source Software anyway?
  • Open Source software is free, so why are some software vendors charging for it?
  • Is it enough to use community Open Source software in production?

What is Open Source?

Basically it means that the recipe of any given work is shared and free for anybody to use. For software, this practice is usually enforced by the use of a software license that uses the principles of Copyright law to preserve the right to use, modify and distribute free software. There are several flavors of open source software licenses available today, such as GNU, Apache, MIT, Mozilla etc. You can see and compare them here , though there might be others not listed.

It all began in late 70s and early 80s with Richard Stallman when he started to have a problem with his Xerox printer. He could fix the printer himself but unfortunately he was not allowed to get inside the “Black Box” by the manufacturer. This frustration was the beginning of the open source movement. Richard then launched the GNU Project to create a Unix-like operating system composed entirely of free software, which formed the basis of Linux. He inevitably triggered the “free software movement”.

The essential benefits of open source are:

  • Access to the source or recipe of any given work,
  • Free remix or distribution of any given work,
  • End to predatory vendor lock-in, and
  • A higher degree of cooperation.

How is Open Source Software created?

Open source software is generally created as part of a community effort. The community consists of original authors or maintainers who write an original version of open source software. There are contributors that use that software and contribute to it by providing fixes, new features or documentation etc. Authors set rules around how it can be used and changed, called licenses. This gives contributors a starting point to branch out and make changes or patches. Some of them are then “upstreamed” to merge their version with the original version. If the maintainer decides to incorporate the change(s), it becomes part of the main branch and will be maintained by the community even if the contributor stops being a part of the project. Sometimes, software takes another direction from the original one that will not be incorporated in the original version. This kind of permanent split is call a “Fork”.

Opensource Software Development Lifecycle

The essential benefits of open source are:

  • Access to the source or recipe of any given work,
  • Free remix or distribution of any given work,
  • End to predatory vendor lock-in, and
  • A higher degree of cooperation.

Given the way open software software is built, at any given point in time there are several eyes on the software to fix defects, add new functionality, make it more robust and evolve it to keep it useful and relevant. The very model of open source community lends very nicely to produce a useful piece of software and keep it in check. This is because more useful and popular open source projects have tons of contributors and activity everyday, while other project communities get abandoned or die on the vine.

Useful Tools

There are some useful tools to explore open source projects and their activity. Some of the useful ones are:

I advise you to explore them and see the velocity with which some open source projects move. Some of the most popular open source projects have about 3000 commits per month, which means about 3000 bug fixes, new features, documentation etc. It is hard to match this scale, quality and innovation in a proprietary model.

Apache HTTP Stats

Kubernetes Stats

[Images courtesy of Openhub]

Open source has the potential to be sophisticated because it is created by the communities of people. Its way of working is managed by communities, making it possible to benefit from new versions of software from an authoritative source, the maintainer. Actual products based on open source can be made from dozens, or even hundreds of open source projects. This is why having a disciplined way of managing change is important. In open source the possibilities are endless, but we need the rules and roles to keep things organized.

Embracing Opensource Series

  1. To CIOs and CTOs: To Embrace Disruption, Default to Opensource
  2. Embracing Open Source: What is Open Source Software anyway?
  3. Emracing Open Source: Types of Open Source Software
  4. Embracing Open Source: How to consume opensource software in enterprise?
comments powered by Disqus