Tell the pointy-haired bosses around the world: putting a GPL sticker on your product is not going to magically make all those nerds in their parent’s basements build it for you, and for free. Nope. Not going to happen. And you know what? The code contributions are not the benefits you’re looking for…
Just to get this out of the way, not all businesses should make their software open source. There are plenty of sensible reasons to keep your code closed (most of which would probably make me look for a different job, but that’s another story). Way worse than keeping your source proprietary however is to open it for the wrong reasons: it’s going to fail, and going back to closed is hard and damaging.
Community really is what you’re looking for, and making your product hackable is the best way to build that. And what better way to make your product hackable than to open it with the most liberal license you can find?
Community means the most loyal customer base you can hope for. Better, it means advocates for your products. Ask Tesla (a pioneer in open hardware in a very conservative industry): here’s a company that has disrupted the car business, without any advertising whatsoever. How? Community: the best Tesla salespeople are Tesla owners. How do you recognize a Tesla owner? You don’t have to, he will fucking tell you. And he’ll give you a ride. And then you’ll want one. So yes, you also need a freaking good product.
The community can help you with that as well, in fact: casual users aren’t going to tell you what sucks in your stuff, they’re just going to move to the competition. Deeply invested, passionate contributors will, because they need and want it to get better.
Building a passionate community is the stuff of dreams for business people, and it’s a very difficult thing to build. But here’s the catch: community is a two-way street. It works much better if it’s not based on a feudal system where the lord in the castle orders the serfs what to do. Nobody’s going to willingly stay in such a community, you’d need a way to coerce them to (not naming names, no sir), and that’s evil, m’kay? No, a healthy community, like a successful marriage, is based on mutual respect and genuine interest in others’ differences, drives, and goals.
If you feel the urge to restrict what your users can do with your code or designs, if you think you should prevent potential competitors from emerging from your user base, then maybe open source is not for you. You should feel comfortable with letting contributors come up with their own reasons to fork your project. It might be to build something amazingly creative that you wouldn’t have thought of in a thousand years, or it might be a clone of your product. Big deal, out-innovate them, capitalize on the rest of the community: nobody wants to use the cheap clone that’s lagging two releases behind.
Here’s another wonderful consequence of the open model: it will help you look beyond myopic profiteering, and build a business model that is more human. It will make you think about what really matters, about why you’re doing whatever it is you’re doing. It will make your life better and more purposeful. True story.