Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse viverra id leo et lacinia. Maecenas convallis lacinia diam, et lobortis quam tincidunt hendrerit. Mauris eget nulla at dolor ullamcorper lacinia. Quisque nisl eros, hendrerit et erat sit amet, feugiat venenatis sapien. Duis a dapibus mauris. Aliquam tempus ornare metus nec accumsan. Nulla et dui arcu. Proin hendrerit nibh velit, quis aliquet est interdum sit amet. Pellentesque vitae turpis tempor ex pulvinar sodales ut vitae arcu. Nunc commodo dolor quis porttitor imperdiet. Ut imperdiet egestas diam nec pretium. Vivamus non ligula viverra, egestas dolor consequat, pretium nisi. Nulla non leo pellentesque.
A community is a group of people united by a common identity and collective purpose who engage in activities together over time. Communities develop unique sets of shared values, principles, and norms that distinguish them from others and provide members with a sense of belonging.
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.
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.
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.
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.
People join open 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.
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.
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.
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.
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 open source experts to advise this work.