Forest header image

Symfony Finland
Random things on PHP, Symfony and web development

Choose a project vendor that creates Open Source, not one that just uses it

Open Source Software is often heralded as a friendly community all working happily together for a common good. In reality many successful projects start as a such a labour of love, but as they grow in popularity things can quickly get out of hand while other people build businesses upon your voluntary work.

This is why when you when you are working on projects that builds on Open Source technologies, you should consider that the project you work on also returns something to the community it builds upon.

Ideally during a project, the encountered issues will be reported and managed as part of the Open Source project, rather than as a part of the implementation project done for the client. Selfishly patching and creating workarounds for identified bugs push forward your project, but not the Open Source community effort.

Essentially there are community driven companies and commercially driven companies. Often community driven companies originate from a group of enthusiasts that worked with the product. Commercially driven companies are often driven by a group of people that primarily see the tremendous value offered by "free" software.

As every company is more or less a continuum these trend tend to continue. Business driven companies tend to hire individuals that see the value in what the product can deliver to the clients, where as community driven companies tend to give more weight in participating in development of the product itself.

In general community driven companies usually focus on a single product, where business driven ones pick out a lot of competing options to be able to compete in as many bids as possible - simply to be able to maximise the business opportunities.

While the above description is highly stereotypical - there is a high probability that you can divide companies building upon Open Source to one group or the other.

Genuine participation, not throwing pennies

While all of this seems irrelevant to purchasers of the software - it certainly shouldn't be. Since someone needs to pay for the creation of the software, it's both morally and practically more sensible to choose the vendor that contributes back to Open Source.

Profits made by using, not creating, Open Source give you funds to sponsor events to be visible in the community. This is highly visible, but mostly drives the company forward. For the community it provides short-lived perks to a select few people.

A more participatory approach is not that flashy, but delivers more value in the long run. Community driven companies tend to create a fix, rather than "waiting for the community to fix it" or hacking a workaround. Often these stop-gap workarounds are a waste of time as duplicate efforts and make the project result harder to maintain.

Choosing a community driven vendor not only gives the customer projects increased velocity, but also increases the level of support they receive from other members of the community. If you scratch my back, I'll be a whole lot more likely to scratch yours when the time comes. Just created a forum account to get free tech support? LOL :)

Open Source is not a charity

Open Source is not the la-la land that some people paint it to be. There are a number of examples where individuals or groups have added personal burdens because of creating free software. This is made clear in this article on why tickets go unanswered:

Hi there. You opened an issue with my project on GitHub, and it’s getting kind of stale by now.

I am aware of it – GitHub was kind enough to send me an email containing your report, which I scanned one morning a couple of weeks ago while I ate breakfast. I’ve even thought about it briefly a couple of times since then; once I was in the shower and I got the vague idea that I knew what caused it – but I wasn’t sure because I could not recall the specifics.

Of course, you knew none of this. You may have wondered if your issue – which may be critical to your current project – has been lost to the void. Allow me a few minutes to explain why you’ve not heard anything from me.

- Why I Haven’t Fixed Your Issue Yet

Voluntary Open Source work can consume people and even destroy lives if you take it too seriously. In the end everyone is in it for their own livelihood after a certain point. Community driven companies will think of money as much business driven ones do.

Open Source companies with their feet on the ground are actually probably more prudent when it comes to spending, due to the reality that there is very little money to be made in giving out things for free on a small scale. Not everyone's Fa$ebook.

Who's community and who's business driven?

As a purchaser of Open Source projects, you should understand that "Open Source Companies" should not do things for you for free. They should do things for everyone with your money. That's just wrong, you're not paying for others?!?!

This is how Open Source works. Think of it as public transport; Never would you have the money to create tracks, purchase a train and hire staff ready to pick you up at your whim every 15 minutes. Open Source is a public service. Everyone pays a little.

Experts working with Open Source source every day may be well adapt to making the distinction between business and community driven companies, it might be harder for purchasing customers to do so. And they are who largely pay for Open Source.

The illusion that code is the only contribution is something that makes things even harder to track. Code, documentation and participation all are valuable. The next time you're looking into selecting vendors for your project, ask the vendors to provide some community metrics:

  • Activity on the main project maintenance
  • Number of projects extensions maintained
  • Activity in the project support channels or documentation

Regardless of which activity the company partakes in, they should have a steady stream of contributions as a natural part of their working process. Promoting an individual effort to create something is easy. Maintaining consistency is hard.

A single post on the blog after pushing some utility is more likely to be an indicator if a business driven company. Ten responses a month on the forums about product basics indicate a community driven company. The contributions don't need to be strictly in the core product, tooling and supporting efforts count just as much.

So the next time you've got two equal offers on your table; please select the community driven vendor. It's better for you and the general wellbeing of the product.

Written by Jani Tarvainen on Wednesday May 25, 2016
Permalink - Tags: business, opensource

« Spotlight: PHP 7.1 and Symfony 3.1 - Introducing the Kaliop Migrations Bundle for eZ Platform and eZ Publish »