What is an open source software community?
Answer: An open source software community is a group of people united by the shared purpose of developing, maintaining, extending, and promoting a specific body of open source software. These communities are often globally distributed—their members occupy different geographic regions and work across numerous industries. What unites them is their common vision for the open source software project—as well as the spirit of camaraderie and collective identity that participating in the community affords them.
What are upstream communities?
Answer: The community-driven ecosystem of open source software is vast and difficult to visualize, so many developers tend to describe it metaphorically, preferring the language of waterways and tributaries. Software that forms the foundation of other software is said to exist "upstream" from that software. When "upstream" software undergoes changes, those changes flow "downstream" to the open source projects that rely on them. When programmers working "downstream" create innovations that might benefit others, they can submit those changes "upstream" to their parent projects, so those improvements can ripple outward to everyone utilizing those same upstream projects. Red Hat® Enterprise Linux®, for example, exists "downstream" from many open source software projects that comprise it, such as Fedora® and CentOS Stream. Those projects, in turn, rely on additional "upstream" projects—like the Linux kernel, the GNOME desktop environment, and hundreds more.
How does an open source software community form?
Answer: Open source software communities form when people agree to work together to build and improve software. For this to occur, a person or group building software must make that software available to others—by releasing the software's source code and expressly giving others permission to copy, modify, and redistribute it (typically under the terms of a specific open source license). Because open source communities are globally distributed, they typically form online through the shared use of electronic mailing lists, forums like Discourse, and code-sharing platforms like GitHub.
How does someone get involved in an open source community?
Most open source software communities don't have formal membership applications or approval processes. More commonly, people get involved in projects simply by contributing to them in some way—for example, by fixing bugs in software code, creating new features for an application, writing and editing documentation, creating logos and graphics, promoting adoption of the software, representing the project at a conference and other events, or assisting others who have questions about the software. In short, people earn membership in open source software communities by virtue of their contributions to those communities and the positive reputations they establish as a result of those contributions.
Why do people join open source software communities?
People join open source software communities for many different reasons. Many join because working on the software is part of their jobs—either because their organizations hired them to develop it, or because their jobs depend on the software working well. They join communities so they can directly impact the development of software on which they (or their organizations) rely for critical operations. Other people join because communities offer opportunities for them to sharpen their skills by working alongside and learning from others. Some join because doing so allows them to collaboratively solve a problem they're experiencing. Some join because of their belief in the importance of contributing to a common set of resources beneficial to everyone. And others join for the purpose of socializing, or for a sense of identity and affiliation.
Why would an organization want to get involved in an open source software community?
Organizations increasingly rely on open source software applications for various critical operations, as much of the world's most innovative and effective applications are open source. So they participate in open source software communities because they're invested in the long-term viability, stability, and security of those applications—and, often, because they want to influence development of those applications' features and functionalities. Other organizations participate in open source software communities because they'd like the software they've developed to become an industry-wide standard—they open their work in the hope that others will more quickly adopt and integrate it. Many organizations find that participating in open source software communities allows them to access a wider talent pool than they could if they developed their applications entirely in house.
How can an organization start participating in an open source software community?
Answer: Consider engaging an open source community using the same approach you might take when you move into a new neighborhood. Introduce yourself and work to understand the community's history, values, and dynamics before proposing big changes. Make new friends by performing small jobs. Fix bugs in source code. Edit documentation. Build installation scripts. If your organization is able to allocate additional resources to support the community, consider sponsoring that community's activity at events or hiring community developers so they're able to spend more time working on the project. Just note that arriving in a community with more people than it can comfortably welcome at one time may elicit a reaction from the community, which can be counterproductive to an organization's long-term goals. And choose your organization's initial participants in a community wisely. Individuals—not organizations—join open source communities, and the trust one participant garners is not automatically transferrable to another.
Can companies who are market competitors participate in the same open source communities?
Answer: Yes, and many do. These companies have determined that collaborating on mutually beneficial software applications or standards is more valuable than competing to develop different, perhaps incompatible, technologies. Instead, their business models involve building market-differentiating and revenue-generating innovations on top of these shared technological foundations.
How should an organization determine whether to get involved in an open source software community?
Answer: Getting involved in an open source software community has important organizational, procedural, and legal implications for an enterprise. Most organizations that are seriously invested in open source software development fund internal open source program offices to advise the organization on matters related to open source community participation. Others partner with industry-leading open source experts like Red Hat.
How does Red Hat build products with community-produced open source projects?
Answer: Red Hat supports, catalyzes, and participates in open source communities to build better technologies and advocate for our customers in them. Red Hat transforms community-driven projects into enterprise-ready products—we combine multiple upstream components into integrative, cohesive wholes that solve problems for our customers. Every product Red Hat ships is open source. In fact, before we create a product, we ensure that we are able to make changes to the projects we intend to include in it.
How does Red Hat make money selling the open source software these communities are developing?
Answer: Open source communities can develop software at an incredibly fast pace. They make changes and introduce innovations regularly. Many organizations that rely on open source software want to reap the benefits of those innovations, but they can't always operate at the same pace that communities do. They require a degree of consistency and stability not typical of fast-moving, community-driven software development. Red Hat provides this consistency and stability. Red Hat continually integrates newly developed open source software into solutions for customers, updates the software with the latest security patches, ensures that modifications to the software do not disrupt customers' operations, offers expert support for the software, trains people to administer the software, certifies the software to operate on industry-standard hardware platforms—and more. Customers who rely on open source software purchase subscriptions to these services from Red Hat.