- Provides value to the user as it is.
- Open governance model for both contributors and users.
- An Architecture with the right extensibility model.
- Strong CI foundation.
- A good set of maintainers, engaging contributors.
There is no clear answer, first let’s look at the result, both approaches
have produced successful software, for example, open source software such
as Linux, Kubernetes, Android, closed source software such as Windows,
vSphere, MacOS.
Many or almost all closed source software are built on top of open source
software or libraries, it becomes very hard to avoid open source libraries
completely.
But open source software development is still very different from closed
source software development.
- Open source has the potential to listen to end-user feedback during every
stage of software development lifecycle. - Open source has potential to represent very broad interest groups,
contributors come from all over the world, they are with very diverse
background, versus even a very successful international company only have
limited number of “sites” - Open Source software helps to spread knowledge, bring up people from
around the world. - Open source software is the best education tool for anyone to learn
software development. - Open source software lifts the software industry.
- Open source can be fragmented due to diverse interest groups.
- Open source can be slow due to lack of investment.
- Open source can not provide guarantee on user support, support
is only achieved through volunteering and ecosystem. - Open source contributors may not want to do the “dirty” work or
call carry the water such as adding boring tests, which lead to
quality degradation.