What is Open Source Software (OSS)? (original) (raw)

Key principles of open source software development

Guided by the key principles of transparency, collaboration, and decentralization, the open source software model creates code from the community—and community from the code.

Collaboration

Unlike closed source software, OSS is not only available for anyone to use, but also to build on. This has resulted in a global network of contributors who work together on a project by collectively reviewing, testing, documenting, and patching code.

Transparency and security

Open source software development is public, which means all of the work, including the codebase and communication among users, is available for the open source community to see. Transparency instills trust among contributors, paving the way for innovation and play. And since the codebase is public, users are able to quickly identify and fix security vulnerabilities as they arise.

Decentralization

Since the community develops the code—and since no one person or company owns that code—open source is an inherently decentralized form of software development that comes with fewer silos, bottlenecks, and barriers to entry.

Why is open source important to your business?

Open source is an invaluable technology and framework that continues to define how organizations approach software development—which is why you’ll find OSS components in most commercial codebases today. The benefits of open source software are myriad, but here are just a few key examples of why businesses and developers alike continue to invest in the model:

On an enterprise level, OSS benefits open source enterprises by modernizing all aspects of the software development lifecycle. Luxury auto brands use OSS components to build faster processes and accelerate software delivery while Fortune 500 companies rely on enterprise platforms to consolidate and centrally manage code. With the assistance of OSS, enterprise organizations enjoy seamlessly integrated code, fewer silos, and the ability to ship software securely and at scale.

How does open source software work?

Open source code is typically stored in a public repository, or repo, which anyone may access, contribute to, and share (depending on permissions). Contributors upload new versions of the code to the project, building and improving on the existing work to deliver new features and updates. All the work is performed publicly in the repo so that anyone may add to it.

The code usually comes with a license, which defines what a user can and cannot do with the software. Some licenses are permissive and allow you to use and distribute the code for any purpose, while others may require that you explicitly log any changes when you share. Other licenses may stipulate that all copies of the source code be free and available for public use. Some of today’s most popular licenses include:

The pros and cons of open source software

Even within enterprise organizations, OSS has reached new heights of mainstream growth and adoption, heralding in a culture of collaborative software development—and a higher return on investment (ROI). Still, open source isn’t without its disadvantages. Let’s look at some of the pros and cons:

Pros

Cons

Open source is engrained in the very foundation of modern development, powering the apps, tools, and frameworks that organizations use every day.

Here are just a few examples of some of today’s most popular open source apps:

Build secure, open source code

An open source codebase is only as safe and as secure as its contributors, which is why security needs to be addressed at the community level. Today, many organizations are taking a shift left approach to security. While security experts traditionally perform audits at the end of a DevOps lifecycle, the shift left security model encourages developers to take a proactive approach to security during every step, from start to finish.

To help your team code securely along the way, you may want to consider adopting new AppSec tools and processes. GitHub Advanced Security assists in identifying and fixing reported security vulnerabilities, errors, and dependencies through code scanning. And with the help of continuous integration and continuous delivery (CI/CD) platforms like GitHub Actions, developers can now automate this process, as well as their build, test, and deployment pipelines, right from where they code.