9 things to look for in an open-source project

Although there is no litmus test for "good" open source, there are several indicators of a healthy project, writes GitHub's Ben Balter.

Ben Balter_2014

Not all open-source projects are created equal. There are plenty that have not been touched in years -- heck, I probably wrote a few of them. If you're going to rely on a community-contributed open-source project, you'll want to ensure the code is up to your standards and that the community will continue to support it throughout the project's life cycle.

Although there is no litmus test for "good" open source, there are several common, language-agnostic indicators of a healthy project:

1. Update frequency. The most commonly cited metric is: When was it last updated? A year ago? A week? An hour? You don't want to inherit a stale codebase. The last update isn't the only thing you should be looking at, though. How frequently is it updated? Is development occasional or continuous? Do changes occur on the weekends (suggesting a hobby) or during the week (suggesting a business)? On GitHub, most of this information is presented as graphs.

2. Issues. Issues and bug reports are good things -- really. If you find an open-source project with no open issues, that doesn't mean it's perfect. In fact, it often means the opposite. A vibrant support community with heated discussions and an endless list of proposed features means you've got lots of eyes reviewing the code and driving its development. Open issues are great, and closed issues are even better.

3. Forks, stars and downloads. Each distribution platform provides its own metrics to describe popularity. On GitHub, watchers, stars and forks are the strongest indicators of a project's popularity and use. On WordPress.org, on the other hand, you can see the number of downloads a plugin has received and its average user rating. If a project is distributed via a package manager (e.g., RubyGems.org or NPM), you can see the number of installs. Those indicators show how much the project is used, but be careful not to confuse adoption with quality.

4. Documentation. How is the project documented? Is it simply written up in a readme.txt file or via a dedicated documentation site? Documentation that glosses over technical assumptions (e.g., how to install, requirements and dependencies) often indicates more casually developed software. Dedicated marketing sites (e.g., Jekyllrb.com) show that the project maintainers are serious about getting their code into the hands of users and thus are more likely to support it.

5. Organization or user. Who's behind the project? If it's an individual, what's his or her day job? Is he or she an expert in whatever the thing does? Does he or she have a vested interest in maintaining the project down the line? Being backed by a company or organization can be a good indicator of quality and stability, but first take a look at the author's other work. Does he or she understand open source or is this simply an effort to generate good will toward his or her brand? On GitHub, the owner's name precedes the project name in the URL. Simply drop the project name to see what else the developer is working on.

6. Number of contributors. Is the project a solo act or a team effort? Having a long tail of contributors indicates that there is a community of users who rely on and care about improving the software. Contributors need not be only technical. Look at those contributing to documentation, posting in the support forums, or filing issues and feature requests. Look closely at the community's values and how it makes decisions.

7. Who else uses it? There are lots of open-source projects that can meet the above criteria, but if none of your peers is using the project (or worse, have not even heard of it), that could be a major red flag. Many companies proudly showcase their open-source projects, and Google searches can often reveal those that don't.

8. License. Is the project properly licensed? Does it contain a license file or just a reference to a license in the readme.txt file? Do files contain the proper headings where required? The strictness with which the software is licensed and the type of license used can indicate how familiar the publisher is with open source and how serious he or she is about providing you with unburdened intellectual property. Most important, make sure the license is compatible with your project and goals.

9. The code itself. Nothing beats a technical expert opening the hood and poking around. Did the developer follow the language's common conventions and design patterns? Did he or she use a framework or build everything from scratch? Did he or she use a package manager? Even if you're not a developer, take note of whether comments are clear and free of misspellings and whether the project includes extensive tests. Projects get bonus points for using a continuous integration platform such as Travis CI, which shows a commitment to releasing quality software.

Remember: Software is written by humans for humans. When in doubt, ask. Developers want you to use their software and will be glad to help. Open an issue requesting information on the project purpose and status. Ask questions such as: Is it a fun hobby or will it be around in a year? Who else is using it? Should I base my business or critical mission on this?

There's good software and there's bad software, and luckily, open source provides us with a handful of built-in metrics to gauge a project's quality and longevity, even without reading a single line of code. Before bringing open-source code into your next project, if you don't know the author, be sure to take a closer look.

X
This website uses cookies to enhance user experience and to analyze performance and traffic on our website. We also share information about your use of our site with our social media, advertising and analytics partners. Learn More / Do Not Sell My Personal Information
Accept Cookies
X
Cookie Preferences Cookie List

Do Not Sell My Personal Information

When you visit our website, we store cookies on your browser to collect information. The information collected might relate to you, your preferences or your device, and is mostly used to make the site work as you expect it to and to provide a more personalized web experience. However, you can choose not to allow certain types of cookies, which may impact your experience of the site and the services we are able to offer. Click on the different category headings to find out more and change our default settings according to your preference. You cannot opt-out of our First Party Strictly Necessary Cookies as they are deployed in order to ensure the proper functioning of our website (such as prompting the cookie banner and remembering your settings, to log into your account, to redirect you when you log out, etc.). For more information about the First and Third Party Cookies used please follow this link.

Allow All Cookies

Manage Consent Preferences

Strictly Necessary Cookies - Always Active

We do not allow you to opt-out of our certain cookies, as they are necessary to ensure the proper functioning of our website (such as prompting our cookie banner and remembering your privacy choices) and/or to monitor site performance. These cookies are not used in a way that constitutes a “sale” of your data under the CCPA. You can set your browser to block or alert you about these cookies, but some parts of the site will not work as intended if you do so. You can usually find these settings in the Options or Preferences menu of your browser. Visit www.allaboutcookies.org to learn more.

Sale of Personal Data, Targeting & Social Media Cookies

Under the California Consumer Privacy Act, you have the right to opt-out of the sale of your personal information to third parties. These cookies collect information for analytics and to personalize your experience with targeted ads. You may exercise your right to opt out of the sale of personal information by using this toggle switch. If you opt out we will not be able to offer you personalised ads and will not hand over your personal information to any third parties. Additionally, you may contact our legal department for further clarification about your rights as a California consumer by using this Exercise My Rights link

If you have enabled privacy controls on your browser (such as a plugin), we have to take that as a valid request to opt-out. Therefore we would not be able to track your activity through the web. This may affect our ability to personalize ads according to your preferences.

Targeting cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising.

Social media cookies are set by a range of social media services that we have added to the site to enable you to share our content with your friends and networks. They are capable of tracking your browser across other sites and building up a profile of your interests. This may impact the content and messages you see on other websites you visit. If you do not allow these cookies you may not be able to use or see these sharing tools.

If you want to opt out of all of our lead reports and lists, please submit a privacy request at our Do Not Sell page.

Save Settings
Cookie Preferences Cookie List

Cookie List

A cookie is a small piece of data (text file) that a website – when visited by a user – asks your browser to store on your device in order to remember information about you, such as your language preference or login information. Those cookies are set by us and called first-party cookies. We also use third-party cookies – which are cookies from a domain different than the domain of the website you are visiting – for our advertising and marketing efforts. More specifically, we use cookies and other tracking technologies for the following purposes:

Strictly Necessary Cookies

We do not allow you to opt-out of our certain cookies, as they are necessary to ensure the proper functioning of our website (such as prompting our cookie banner and remembering your privacy choices) and/or to monitor site performance. These cookies are not used in a way that constitutes a “sale” of your data under the CCPA. You can set your browser to block or alert you about these cookies, but some parts of the site will not work as intended if you do so. You can usually find these settings in the Options or Preferences menu of your browser. Visit www.allaboutcookies.org to learn more.

Functional Cookies

We do not allow you to opt-out of our certain cookies, as they are necessary to ensure the proper functioning of our website (such as prompting our cookie banner and remembering your privacy choices) and/or to monitor site performance. These cookies are not used in a way that constitutes a “sale” of your data under the CCPA. You can set your browser to block or alert you about these cookies, but some parts of the site will not work as intended if you do so. You can usually find these settings in the Options or Preferences menu of your browser. Visit www.allaboutcookies.org to learn more.

Performance Cookies

We do not allow you to opt-out of our certain cookies, as they are necessary to ensure the proper functioning of our website (such as prompting our cookie banner and remembering your privacy choices) and/or to monitor site performance. These cookies are not used in a way that constitutes a “sale” of your data under the CCPA. You can set your browser to block or alert you about these cookies, but some parts of the site will not work as intended if you do so. You can usually find these settings in the Options or Preferences menu of your browser. Visit www.allaboutcookies.org to learn more.

Sale of Personal Data

We also use cookies to personalize your experience on our websites, including by determining the most relevant content and advertisements to show you, and to monitor site traffic and performance, so that we may improve our websites and your experience. You may opt out of our use of such cookies (and the associated “sale” of your Personal Information) by using this toggle switch. You will still see some advertising, regardless of your selection. Because we do not track you across different devices, browsers and GEMG properties, your selection will take effect only on this browser, this device and this website.

Social Media Cookies

We also use cookies to personalize your experience on our websites, including by determining the most relevant content and advertisements to show you, and to monitor site traffic and performance, so that we may improve our websites and your experience. You may opt out of our use of such cookies (and the associated “sale” of your Personal Information) by using this toggle switch. You will still see some advertising, regardless of your selection. Because we do not track you across different devices, browsers and GEMG properties, your selection will take effect only on this browser, this device and this website.

Targeting Cookies

We also use cookies to personalize your experience on our websites, including by determining the most relevant content and advertisements to show you, and to monitor site traffic and performance, so that we may improve our websites and your experience. You may opt out of our use of such cookies (and the associated “sale” of your Personal Information) by using this toggle switch. You will still see some advertising, regardless of your selection. Because we do not track you across different devices, browsers and GEMG properties, your selection will take effect only on this browser, this device and this website.