What Can Software Foundations Bring to Your Project?

DZone 's Guide to

What Can Software Foundations Bring to Your Project?

Find out the important roles that software foundations play in providing longevity and structural support for open source projects.

· Open Source Zone ·
Free Resource

Throughout the lifetime of open source software (and whatever you chose to call it before we coined that term), there will have been moments when the community wondered how to sustain themselves. Recent history highlighted how fragile significant projects were, with significant impact from events such as Heartbleed, or "your-favorite-project" crashing, burning or forking due to lack of time, energy, or schisms of opinion. A common way to try and get some form of non-code-related structure behind open source projects has been foundations. Whether an individual foundation behind a project or a foundation that represents multiple related projects, they serve as a sounding board, support structure and series of frameworks that the project’s community can use.

Some foundations such as The Apache Software Foundation and The Eclipse Foundation have existed for a long time, with the Linux Foundation a more recent addition, but there are dozens of others; take a look at Wikipedia for a (hopefully) up-to-date list.

Foundations also help with marketing, project exposure, networking, legal advice, financial stewardship and licensing advice. They also help present a certain level of stability to businesses and enterprises looking at open source solutions but lacking confidence in them, as there is no real "company" behind them. This is perhaps one of the most valuable aspects of a foundation for open source projects, and your project is generally not accepted into a foundation until it has a certain level of momentum. Membership of a foundation is an indication to people who want to use your project that the project won’t vanish overnight.

As part of this give-and-take between open source maintainers and enterprise users, many foundations have membership programs shored up by more substantial contributors, maintaining the support that the foundation can offer to projects.

Example Foundations

Here are some example foundations, and their activities.

The Linux Foundation

The Linux Foundation is interesting, as it also acts as home to other foundations and initiatives including the Cloud Native Computing Foundation, the NodeJS foundation, Hyperledger project, and the JS Foundation. These sub-foundations and projects are often in reaction to growth in industry and community needs and trends, and projects join them over time as they mature, often with different levels of membership that projects ‘graduate’ through.

The JS Foundation

At the recent Collision conference, I interviewed Kris Borchers, the executive director of the JS Foundation, and previously of the JQuery Foundation. We spoke about the role of the foundation he represents and keeping an ecosystem that is continuously evolving balanced and on track.

The Hyperledger Foundation

Hyperledger merged a handful of existing and new blockchain projects into a suite of (mostly integrated) tools and a foundation to back them. Their executive director, Brian Behlendorf, always seems to be on the road and we spoke previously, but we spoke again at Collision, more about their recent activities than foundations generally.

The Apache Foundation

One of the better known and active Foundations, the Apache Foundation stewards dozens of well-known projects and maintains licenses that many other open source projects use.

The Free Software Foundation (FSF)

Taking a different angle, the FSF doesn’t directly steward any software projects but instead runs campaigns to promote computer user freedom. They also maintain the GPL licenses, that again, you have likely seen attached to a wide variety of projects.

apache, community, foss, governance, hyperledger, javascript, open source, software foundations

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}