Skip to content

7 July 2023

To Open-Source or not to Open-Source; that is the question

logo
Michael Park

Supporting open-source projects is an undoubtedly worthwhile endeavour; yet, as a concept, open-source can encompass many different things.

For the purpose of this blog, open-source software will be defined as any product that meets the following three criteria:

  • It has licenses that make re-using said code in other projects (commercial or not) possible.
  • It is publicly available and accepts/encourages help/support from others.
  • Is free (as in libre) and, for the purpose of this piece, we will say is also free monetarily and relies on donations.

The core foundations of many projects rely on extensive amounts of boilerplate code and technology. Not to mention the use of open-source operating systems like Linux or OpenBSD.

Often, this is to such an extent that building products for yourself or a client is only achievable in timeframes dictated by the work that has been previously completed by others.

The famous memes around node modules pulling in gigabytes of dependencies to build a basic website is not only a joke, but just goes to show how many people rely on the work of others to get projects and deliver value.

There is a risk of course, that the core author of said project(s) no longer decides to continue supporting the project. Life gets in the way – and even if it does not – no explanation is needed for those who decide to stop.

Incentivising or supporting through contributions not only helps keep a project alive, but also to keep the author fed. There are plenty of open-source projects that already get enormous amounts of support from their profit-making arms of the business, but there are many that rely entirely on donations or passion to self-sustain.

Therefore, if you are using someone else’s work – legally – to help improve your own life or product, giving support is an affordable strategy to hedge your business or time from having to redo something later, as well as giving a percentage of the time and money it would have cost you do to it yourself.

I know there are some tools that I use that I personally would not be able to do myself without spending another several years doing a new degree, so that contribution is more than worthwhile.

Helping Open-Source is easier than you may think

If there are financial constraints on your ability to help said authors, it is easy to help people out through code contributions to their project.

The beauty of open-source projects is that unlike closed source projects, when you click on a button and it gives you some obscure error code, you can go to the source and see where that is coming from and – if you spend enough time – why.

Spending time to raise a pull/merge request to a project can demonstrate to others that the project is still actively trying to improve, and that it is possible to help the author out other than throwing money at the solution.

A thankless task

I recognise that the pitch on helping others with their code or even being an author of a project that is free and open source to others is often a thankless job. There are many people who are entitled on the internet, and they sometimes are unwilling to raise support/bug reports with your product in a way that is helpful.

There are instances of code/project theft as well that can lead to so much overhead and time to deal with that it may dissuade someone from actively pursuing the authorship or contribution to open-source projects. That is why there are avenues of support that exist that can help take the sting out of these interactions that do not involve fixing the code yourself.

Commercial Open-Source responsibilities

Businesses that depend on OSS libraries and tools should support financially when possible

That avenue is of course through financial compensation. Donating money to projects you use often demonstrates support and helps to ensure there is motivation for continuing the project.

It more philosophically may help affirm to the author that what they are working on has value and is used enough by people that they are willing to pay for the work that they have done. It goes without saying that there are hundreds of thousands of open-source projects that exist and are in use in products around the world.

I am not advocating that every one of them needs to be supported for the continued health of the open-source community. If we are to ensure a future in which some solutions/products are created without expectation of recompense, we need to encourage people to try to build things, experiment, and gather support organically.

Many people have innovative ideas that would never get off the ground if they could not share, collaborate, and work together to build tools that improve the daily lives of others. Private funding or market research sometimes is not the best way to build an audience/client base.

Supporting open-source authors can be a terrific way to show to the larger market that there is value in working together towards a shared goal.

This form of support can also come in the way of non-financial support; the open sourcing of your own products or boilerplate that is used across multiple projects internally. Why not open source that code and 1. Help others who may want to do the same thing save time and 2. Make other companies and people aware that your business exists, solves practical problems and is approachable.

It is also quite good for recruiting new engineers to be able to let them investigate some projects that the company currently maintains so that they can get a feel for whether they would be a good fit for the company.

I am not of course suggesting everything be open-source, some may wish for security through obfuscation to remain a tool in the toolbox for certain solutions, but certain projects or code snippets may be especially useful to share and give back to the open-source community when you can.

The value of Open-Source

In summary, the support of open-source software is not only vital for the continued thriving of the tech industry but helps ensure that projects in non-profit generating sectors can be improved upon and help the betterment of humanity.

Just like all the publicly funded research projects that come out of universities, local government, etc… Just like paying your taxes for those services, let us pay a little tax to those authors and organisations on the internet that – like the bus – take us to where we need to go.

If you'd like to use some of my code, you can find it here