5. Better public image - sell a story, not only a software - contribute to the community and it will pay you back.
4. Closer to the customer - it's an old and proven paradigm, and you cannot get any closer than actually involving your customers in the development process. It is especially useful with new and innovative products where customers do not know if they need it or what features they need
3. Better product - feedback matters - “Given enough eyeballs, all bugs are shallow” (Linus Torvalds).
2. Lower overhead - unpaid and outsourced work by volunteers and commercial companies adopting the product and an efficient and inherently distributed development environment allowing extending the team and hire selected community members w/o changing the infrastructure
1. Broader market - more features on wider range of client platforms and the geographical advantage - with the help of the community you can support more languages and more location specific features.
It's not all sunshine though, the disadvantages are that you cannot control volunteers, the “Benevolent dictator” model means you have to control all the commits, review all the code that comes in, and spend much more time on the integration of the new code. There is also some management overhead, distractions (the so called “bike shed” effect) and your business model should deal with the fact that your intellectual property is not protected.