Community

EXPERT ADVICE

Corporate Participation in the Open Source Community

Open-source software is prolific in technology today. Just about everything from supercomputers to consumer electronics is powered by at least one piece of open source code.

But many businesses find themselves launching open-source products at a rapidly accelerating pace without truly understanding either the benefits that come with it or the potential pitfalls that must be avoided.

Let’s talk about what open source means to your business, and how you can leverage it to serve both your customers and your business needs.

Understanding Open Source

What exactly is open-source software? The open-source movement originated decades ago as a philosophical commitment to providing truly “free” (as in speech) software. This philosophy sternly rejected any attempts to commercialize or otherwise limit the use of such applications.

However, open-source developers today typically adopt a more nuanced approach, prioritizing accessibility and long-term sustainability of their projects over an unwavering commitment to absolute neutrality.

Some common tenets of modern open source include:

  • Freely publishing application source code
  • Allowing others to redistribute and modify the code
  • Retaining attribution for everyone who has contributed

Although simple in concept, there are many open source licenses in common use. The Open Source Initiative (OSI), an organization dedicated to the promotion and protection of open source communities, has approved dozens of licenses as qualifying for open source per their policy. It should be recognized that the OSI itself has no legal authority on the validity of a license and acts merely as an industry steward.

Why so many licenses?

Some project authors want to retain a measure of control over their work to ensure that attribution is retained and that any modifications to their work must also be published as open source.

In such cases, a more restrictive (sometimes called “copyleft”) license such as GPLv3 is typically chosen. Other authors may not care as much about these considerations and opt for a more liberal license such as the MIT or Apache 2.0 licenses.

Selecting the best license for a project is a common source of confusion, so much so that GitHub has created a tool dedicated to helping guide inexperienced developers in making the decision.

Business Interests in Adopting Open Source

With an understanding of the open-source concept, it’s only natural to ask why a business would entertain the idea of giving away software that took time and money to create. But there are plenty of ways that open source can benefit your business.

Leveraging Community Support

Many of the tools developed by your business don’t contribute directly to its bottom line. For instance, I developed NetBox to help manage network infrastructure while working as a network engineer at DigitalOcean, a cloud hosting provider.

The software was certainly valuable, but it wasn’t something we were positioned to sell directly to our customers. So, we decided to release it to the public as an open source project. In exchange, we received a ton of ideas and contributions from external collaborators who helped improve and maintain the software for everyone’s benefit, including our own.

Product Fit Testing

Suppose you have an idea for a new product and want to test its fit in the market. You might consider launching the initial product with only essential features under an open source license. This will allow you to gauge market interest in the product and, assuming there is sufficient interest, provide a way to collect feedback from early adopters to address bugs and request additional features well in advance of the full product’s launch.

Promote Brand Awareness

Open-source projects need not be large or complex endeavors. In fact, many of the most useful projects comprise just a few hundred lines of code: perhaps a handy utility or convenient library useful to other developers. Some aren’t even code at all, but curated collections of notes or resources.

Such projects are fairly cheap to develop and maintain, but help to amplify your company’s brand within the community. Having already correlated your brand with a useful resource in the mind of a potential customer makes them more likely to consider your paid products.

Open Source as the Product

Perhaps paradoxically, the requirement that open source be made freely available does not preclude it from being sold. Many successful businesses have been built around selling primarily open-source products, usually by offering additional value in the form of support or extending functionality.

One of the most common approaches to commercialized open source is offering paid support and/or hosting for an open-source product. For example, WordPress is an extremely popular open-source content management system. Anyone can download and install it for free, but they also have the option of purchasing a subscription through wordpress.com. Their paid support plans include hosting, support, and other features and integrations depending on the pricing tier selected.

Another commercialization strategy is to split a product into both open-source and closed-source components, an approach referred to as “open core.” GitLab, a software development tool, is one such example. While the base product is made available for free as open source, many of its more advanced features are limited to paid versions.

Depending on the nature of your product, this approach can be a good fit as you reap the benefits of having an open-source community while also securing revenue from advanced users.

Launching an Open-Source Product

When you first publish an open-source project, it’s important to have a plan for drawing people to participate. It can be surprisingly difficult to give something away. One impediment is the absence of a price tag. We’re so accustomed to relying on price as an objective (though not always accurate) indicator of value that it can be difficult to convey the value of a free product.

The most successful open-source projects focus on solving specific problems or fulfilling a well-defined set of needs. When publicizing your project, explain why you decided to create a new project versus using something that already exists, and how users can expect to gain from adopting your solution.

Be specific: Does it address a use case not covered well by existing solutions? Is it faster? More configurable? Your project’s introductory document (often a simple README file) should spell out its value proposition in no more than a few sentences.

Once you have this in place, you’ll need to actively work on drawing people to your project. This can be done through marketing and social channels, but there’s a line to tread. You don’t want to be perceived as spammy or overly promotional, as this will quickly turn people off.

Consider what types of users would benefit most from adopting your software, and how you can best reach them. Blog posts demonstrating (and not just talking about) the benefits of your software tend to be very powerful; videos even more so. You can leverage social channels to promote these rather than linking directly to the project itself.

Depending on the nature of your project, you might also benefit by actively seeking out complaints about problems that you can solve. For example, perhaps you’ve developed an API client for a particular service or technology. Keep watch for people struggling in that area and suggest how your project may be of service to them where appropriate.

Twitter, Stack Overflow, and public chats can be especially good mediums for this sort of interaction. But again, don’t be spammy. People tend to have a higher tolerance for the promotion of open-source software relative to paid products, but it’s still a pretty low threshold. Only interject when you’re reasonably confident that the audience stands to benefit from what you have to say.

Participating in External Open-Source Projects

Your business can also benefit from engaging with external open-source projects. Perhaps there are open-source tools your business relies upon that would benefit from your contributions. Or maybe there are community-maintained projects that enable your customers to better consume your commercial offerings. Contributing to outside open source projects can yield benefits both tangible and intangible.

When considering an external contribution, it’s crucial to first understand the project’s contribution policy. Well-established projects will typically have a formal document spelling out how contributions are to be proposed and submitted, whereas a smaller project may simply rely on established convention. Take some time to familiarize yourself with recent contributions to the project and make an earnest effort to abide by their precedent.

Also consider the real value of your proposed contribution to the project’s user base. Contrary to popular belief, proposed contributions to open-source projects do place a substantial burden on a project’s maintainers. Each submission must be carefully reviewed for appropriateness, functionality, security, documentation, and so on before it can be merged into the project. Unsolicited changes are often more of a burden than a boon for maintainers.

When in doubt, always discuss your proposal with the maintainers before proceeding with a submission of new code for review.

An Established Trend

Given the continued growth of and interest in open-source software in recent years, there’s no question that the trend will continue well into the foreseeable future.

By establishing and nurturing open-source communities focused both internally and externally, businesses as well as their customers can benefit tremendously.

It’s clear that corporations that adopt an open-source strategy in earnest will be well positioned to lead in their markets.

Jeremy Stretch

Jeremy Stretch is Distinguished Engineer at NS1. He is the creator and lead maintainer of NetBox, the popular open source infrastructure resource modeling tool that is available on GitHub. Prior to joining NS1, Stretch was the lead network developer at DigitalOcean, where he was responsible for the design and automation of a dozen data center networks around the world.

Leave a Comment

Please sign in to post or reply to a comment. New users create a free account.

LinuxInsider Channels