With any software, things occasionally go wrong. When this happens with open source software, you, or an engineer who owes you a favor, may need to spend time debugging the problem. This entails reading through code, working with an open source community, or your open source support provider, and applying a fix. With closed source, on the other hand, once you determine that the problem lies in your vendor’s code, you’re all done! All you have to do is file a ticket and wait.
No Additional Development
With open source, there’s an expectation that if you fix a bug or make an improvement, you’ll contribute your code back to the community that can help test and maintain it over time. With closed source, you never have to contribute anything to anybody. Of course, that’s because you can’t change the code as you don’t have access to it, but you may create your own workarounds to problems you run into. Sure, you might have to keep working around the same issues version after version, but at least you never have to work with the community to make the solution better for others.
Closed source licensing terms and compliance.
With open source, you have to comply with the license terms specified by the components you’re using. Depending on which open source components you use and how you use them (e.g., distributing to third parties or using only for internal purposes), different license terms may apply (e.g., attributing the open source component in your documentation). Companies make it easy to understand and comply with open source licensing terms, but with closed source, you don’t have to worry about any of this!