Skip to content

Instantly share code, notes, and snippets.

@jfinstrom
Last active May 26, 2021 00:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jfinstrom/fb987710eb5d629c2fc8919ef525be68 to your computer and use it in GitHub Desktop.
Save jfinstrom/fb987710eb5d629c2fc8919ef525be68 to your computer and use it in GitHub Desktop.
The cost of free.

Open Source Software

The cost of free.

Who am I?

I am a Sr. Software engineer and a former core developer for the FreePBX project. I have been involved in open source software as a user and developer since 2005. I have been in computers since I was a child with my introduction to computers on a IBM XT.

Disclaimers

  • All trademarks here are used under fair use and without the permission or endorsement of their respective owners.
  • The opinions here are my own and do not represent the opinions of anyone but me.
  • While I will do my best to stay accurate this has not been fact checked and sources will not be cited.

Free as in Freedom (Not beer)

While a bit cliche we all know that are OSI approved licences are about freedom of use/distribution and not freedom of cost. The cost incurred can be financial through things like training, support or even compiled distribution of the software itself. The cost can also be time spent learning, trouble shooting or contributing back. The cost can also be your privacy, more on that later.

There are generally three types of open source projects.

Individual maintained:

These projects are typically done in a persons free time. These may or may not come with any kind of support and they may be slow to update or fix bugs.

Foundation maintained:

Some projects operate under a foundation. These are usually but not always better maintained than individual projects. They usually operate by committee and have set rules for things like contributing and other participation. Some examples are the Apache Foundation and GNU.

Corporate maintained:

These are maintained by a company that is typically a for profit entity. Why would a company buy software they give away? Why would they pay to have it maintained?

  • They use the software in their core business and need it fully maintained.
  • The software provides other revenue streams such as selling training, support, addons etc.
  • The software provides a captive audience for marketing purposes and potential to move to other paid products.

Are you the product?

Things can be free because your information can be more valuable than your money. Even if not sold externally your information can provide multiple means of making money. This may or may not be a privacy concern. Typically if you are using a corporate maintained project your information will be used to advance the bottom line.

Monetization BAD!! EVERYTHING SHOULD BE FREE!!

The biggest killer of open source projects is lack of time or funding. Altruism doesn't put food on the table or keep the lights on. Even when paid to do so dealing with the open source community can be exhausting. You can quickly get burned out or just not have the time to invest in it. When you are the only one doing the work, the project dies when you move on. Time is money, and the more money there is, the more time there is. If someone can afford to make a project their full time job, there is a good chance they will. If they have to choose between feeding their family or taking care of a project that is a vampire, they will likely kill the vampire.

The Community to the rescue, There will be blood (sweat and tears)!

So lets be honest. All of the above need a community to truly survive. People testing, documenting, providing support or even writing code. The more people involved, the less work it is to keep a project going.

In for profit projects the focus will be on the bottom line. For anything in a project including features or timely bug fixes it has to have a positive impact on the bottom line.

This means:

  • The bug probably affects paying customers.
  • The feature attracts enough people who will become paying users.
  • The feature enhances a paid feature.
  • The feature will be a commercial add on.

No matter what marketing spin is put on it, or how poorly that spin is presented, the only thing that truly matters is the bottom line. If you are not enhancing the bottom line you simply are not important.

Ugh all corporations are evil! Something Something Capitalism... Gas, grass or ass...

Remember everything has a cost. You can decide what you are willing to pay. Some of these do not affect the bottom line and will not get you anything but a personal sense of accomplishment.

Want a feature or a bug fixed that is important to you?

  • Write the code.
  • Pay someone to write the code.

Found a bug and don't care if it is resolved

  • File a bug report with quality information and participate in the resolution.
    • Keep in mind if it is low priority it may never get fixed.

Want a feature and don't care if it ever happens

  • File a feature request then go do something else.

Shut up and take my money

  • Buy a commercial product.
  • Buy commercial support.
  • Buy training.
  • Pay them to write the code needed.
  • Some projects allow donations directly or through something like github contributions.

Don't want to spend money but have time

  • Document everything.
  • Write tutorials and how to guides.
  • Provide community based support in forums or via other means.

tl;dr

  • You have to pay to play with time, money or information.
  • Sometimes you will spend all three.
  • James babbles about a bunch of stuff.
  • Write or pay someone to write code if you really need a bug fixed or a feature.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment