From Compsci.ca Wiki
A means of developing software where the underlying source code can be seen and modified by anyone. The use and distribution of this modified code may be subject to the terms of various license agreements.
- A larger pool of developers can critique your code and find bugs or potential vulnerabilities.
- That larger community can contribute back fixes for those bugs, as opposed to just complaining about them.
- Because those using the software can contribute to it, users typically get software more suitable to their needs, and developers spend less time implementing unwanted features. This lowers development costs.
- It can be difficult to find a way to capitalize on open source software, as advantages cannot be kept unique to your software.
- Licensing can become a tedious legal issue, especially if an open source software title does become financially successful.