Why Open Core is wrong

Open core is a business model where the base version of a software would be released as open source while some advanced features would be closed source. It's been under a lot of discussion lately, so I'll just add my 2 cents...

Outside the obvious workaround of the free software principles, there are well-known issues with this model. In particular, it is difficult to set the right limit between the "community edition" and the "enterprise edition", and you end up having to refuse legitimate patches that happen to be a feature in your enterprise edition roadmap. So building a real open source community on top of the Open Core model can be quite a challenge. But the main reason why I think it's wrong is purely technical.

I am a perfectionist. I work on open source software because I truly believe that the open source development methodology ends upcreating better code. Having all your code out there, up for scrutiny and criticism, makes you think twice before committing something half-baked. Allowing everyone to scratch their own itch ensures top motivation of contributors and quick advancement of new features. And I could go on and on...

Open Core denies that the open source development model creates better code. Open Core basically screams: for the basics we use open source, but for the most advanced features, the enterprise-quality ones, closed source is at least as good. You end up alienating a potential community of developers for the benefit of writing closed source code of lesser quality. You end up using open source just as a VC honeypot.

Open Core advocates say that open source software companies need some unfair advantage to monetize their efforts, and justify Open Core based on that. I'd argue that selling expertise on a awesome piece of software is a better business model. It's true it's a longer road to become rich, but I still think it's the right one.