The term “open source” refers to software that is developed by an individual, group, or company and made available for use by anyone free of charge. The reason the developer opens the use of the software to anyone at no cost is to harness improvements resulting from volunteer contributions. The open source concept benefits both the users and developers: users are allowed free access to helpful tools, and the developers receive community assistance with enhancements, maintenance, and detecting security flaws.
Here at Fulcrum, we continually explore and evaluate open source software for potential applications to internal and client needs. In the same spirit, we share our approach to identifying, testing, selecting and implementing open source software to our readers free of charge in this article.
Finding and evaluating open source software
Typically our open source software selection process begins with the need to solve a business problem unmet by existing applications. The search for potential solutions itself is a challenge given the fragmented nature of open source releases. Many applications originate as a free alternatives to proprietary software, and can be a useful starting point.
If there are tools available that can help in the solution or deliverable, we conduct exploratory research on each to rule out those that are a poor fit, short-list options that may require modifications, and fast-track the testing of options that may fit with the least amount of modifications. Next, we look at the activity level of the product’s development, as well as the size of the user and support community. Finally, we begin experimentation with one or more potentially good choices and ultimately narrow down our selection based on security, ease of use, flexibility, and most importantly, suiting the business need.
In cases where there is no existing solution to meet a particular need, we explore the level of difficulty involved to modify the code of promising open source tools. For example, a web application may have a framework to handle logins and allow users to enter data and search content, though it may be lacking visualizations, which we can add code to implement. In such cases, the modifications we make to the open source tools are contributed for future users of the software. Sometimes, when open source-based applications that are similar to our needed or implemented solutions are released, we test them out to evaluate how they compare with our existing solutions. In some cases, these releases may include a modification to the modification made by us which further improves the product.
Example uses of open source software for project management
Experimental Design Reporting Portal
Recently, a client company needed a front end UI to manage project intake and reporting of analysis projects specifically related to non-experimental testing. Instead of building an app from scratch, we knew from our research of several open source tools that had some of the pieces we needed to jumpstart the work.
We ended up selecting a project management system similar to Jira, which is used to track issues or bugs, assign tasks, set due dates, send email notification, manage logins, etc. It is written in Ruby, so we were able to customize it to:
- Create program evaluation intake screens to facilitate the capture of additional metadata about the program. This information is used as arguments and settings for the analysis, performed in R.
- Store results from R analysis in the same database and report these results from within the UI.
- Create, through the combined features, a searchable catalog of program evaluations, reporting the specifics of the program, the method of analysis, and the conclusions.
Scheduling Tool for HR Training
Another example was when a client wanted to better manage HR training initiatives across multiple branch offices. There was a limited amount of time employees could spend on training each week, so they needed to manage the busy training calendar to ensure the schedule didn’t exceed capacity. This process quickly became complicated due to the fact that there were about 12 job titles that each had different training time windows and scheduling capacities.
We customized an open source project management tool to more easily manage and schedule the client’s training by:
- Changing how task time was allocated between regular job tasks and training.
- Adding special web screens for intaking meta data directly from business partners.
- Adding functionality that integrated data output to BI reporting for communication to a wide audience.
By deploying these solutions within an open source framework, the clients are able to scale up the use of the tool to include many users without having to pay additional licensing fees as they would with a commercial software solution. Similarly, new releases do not come with costly upgraded license charges. Not only have these clients been able to imagine a solution to their business needs and have it custom-built, but the ongoing expansion and improvements to the tool are only as costly as the directly associated labor. This gives the client the double-win of customization and cost-effectiveness.
When open source is and is not appropriate
While open source software can be an incredible resource, it is not always a fit for every organization or need. For some, the level of expertise needed to utilize open source software can be intimidating or difficult to master. For other organizations, the possible lack of integration with commercial products already in use may be a deterrent. There is still a stigma in many large organizations where senior IT management may not want to “take a chance” on an open source product in lieu of commercial product; i.e, they live by the old saying “Nobody ever got fired for buying IBM.” Additionally, while the use of open source software avoids expensive licensing fees of commercial products, development of some open source products are limited to the time (and therefore the money) the internal development teams have to work on it.
For those organizations that have the resources and intellectual curiosity to explore open source software, frequently the advantages outweigh the drawbacks. Not only are such tools free of charge, but they are often better than commercial tools due to the rapid pace of enhancements from the user community. Open source is widely recognized as being generally more secure due to the source code being publicly available for the community to weed out bugs and flaws. And, building out modifications to open source tools can be a rewarding learning experience for internal teams.
Fulcrum can help you select, build, or train on open source solutions to optimize your data science capabilities. Contact us to set up a consultation.