The Challenges with Open Source Software
Using open source software on agile projects is all the rage these days, and for good reason. Often teams don’t have the budget necessary to purchase commercial tools, and without an open source solution, their productivity suffers.
But open source is not a panacea. There are some challenges that can hit you hard if you aren’t careful.
Open source isn’t the same as free
Most people think of “open source” and “free” as the same thing. Unfortunately, that isn’t always true.
First, the open source licenses out there may or may not fit your business model. Some open source licenses disallow their software from being integrated and used in commercial products. Others say that any modification made to the open source code base must be open sourced, or that any time open source code it integrated with other code, the entire application must be open sourced. Before using any libraries or third-party components in your applications, make sure you understand the impact its license has on your business.
Also, many organizations who support an open source product use a “freemium” model. This means that the free version only works for small teams, simple environments, or without key features such as security or scalability. A paid upgrade is necessary to use the software beyond these constraints. Understanding the inflection point between the free and paid versions are critical so you don’t get caught needing to purchase software you can’t afford.
Finally, while you might be able to download and use open source software easily, no maintenance or support is included for free. If the software doesn’t install properly or has bugs that you can’t work around, you are on your own. There are some open source software that have versions with paid maintenance and support available, but either way, there is cost associated with maintenance and support that you shouldn’t disregard.
Open source is not more secure or of higher quality
The open source community has long espoused that open source is more reliable and secure than commercial software. The original argument centered on the idea that since so many developers are poring over the open source code, it is more difficult for bugs to hide. Unfortunately, there are several reasons why this isn’t necessarily true.
First, some bugs (security flaws, for example) may take a trained eye to detect. Two pieces of code might be secure by themselves but be unsecure when combined. These kinds of security issues aren’t the types of bugs a casual developer is likely to notice.
Second, commercial software development typically has a much more structured and rigorous testing process than open source projects do. Many open source projects do a great job of structured unit testing, but the amount of functional and nonfunctional testing above this isn’t well documented.
Whether you prefer exploratory testing approaches or more traditional requirements-based testing for features, workflows, and use cases, commercial software typically receives more dedicated testing by professional testers.