Why Choose Open Source Project?
With the fast growing popularity and evolution of open source projects starting last decade, more and more companies prefer to use open source projects instead of investing on propriety software development. Successful open source projects keep attracting developer community and contributors so these projects keep improving with more releases and catch wider attention. This generally makes companies to prefer using a free open source projects developed by global developer community over a propriety software developed by a small in-house team of developers. However, it is not so easy to choose a right open source project to serve your needs. A wrong selection may be costly and can waste all your energies. Therefore, it is better to spend sometime to formulate some selection criteria before investing further.
Key Factors
This topic discusses key factors to be considered while selecting an open source projects for certain use cases.
Hunt Popular Open Source Projects
First and the foremost activity is to identify popular open source projects in the respective domain. For this, Google a few keyword combinations to sort out required open source projects. GitHub also provides options to search on relevance and popularity. As a second option, direct search at GitHub should also be tried to ensure that most relevant but popular projects are selected. At this stage, the most relevant and most popular projects can be shortlisted. The popularity can be determined based on stars, forks and issues / commits.
Crosscheck Popularity and Reviews
Now, it is time to collect and examine community reviews about the shortlisted projects. You may wonder why to do so? Why not just select the most popular project on GitHub? The answer is: the popularity on GitHub may be effected by an enthusiastic project community so it is good to cross check it with reviews and popularity on other sites. One way to check popularity on external sites is to check upvotes on sites like alternativeto.com and producthunt.com. Similarly, the review articles can be found by googling keywords like “ review”. This activity will hopefully let you create an initial priority list.
Compare Features and Quality
Now that you have an initial priority list of open source projects, it is time to have a look at the features and reliability of the output. There is no defined parameter here to further revise the priority list based on this activity. In case, a particular feature offered by a particular project with most reliable output is critical to your use case, you should be able to set higher priority for such project. Otherwise, the criteria may be adjusted according to the use case. In any case, a refined priority list should be the outcome of this activity.
Assess Team Repute
This should be an optional but important activity. Why optional? Because the popularity is not bought but achieved via quality and depth. The priority list you developed in the previous steps is based on the popularity and reviews so you are spot on to this point. Why important? Because the long term sustainability of a project depends upon the sponsorship and sponsors always value the repute of the team behind the project. The team behind an open source project can be figured out by reviewing the project roles, owner of repositories and any social forums associated with the project. This assessment will further let you enhance the priority list to a reliable level.
Review Extensibility Options
Often the purpose of selecting an open source project is to customize it either for monetizing purpose or fulfilling own company needs. In this case, flexibility / extensibility in an open source project to accommodate customization decides how much effort and resources will be required to do any planned customization. One of the key benefits of an open source project is to get free upgrades which include enhancements and fixes. How easy or difficult is to upgrade along with in house customization determines the future maintenance cost. A review of extensible options will definitely help you further to finalize the right open source project.
Understand Licensing Model
This can be decisive factor depending upon your need. In case, you don’t plan to monetize an open source project, this factor just needs to be ignored. Otherwise, you can add this factor to your selection criteria. In summary, GPL and derived licenses will mostly enforce you to contribute customization to the original open source project before you can monetize, while other open source licenses are flexible.
Conclusion
We have discussed several decisive factors for choosing a right open source project. The importance of some factor(s) can be more over others depending on the use case. But as a whole, all these factors are helpful for both in-house needs or monetizing purpose. Any feedback or review or suggestions are welcome at Containerize forum.