It can’t be overstated just how important the notion of “community” is to the entire open source process.
If I’m an individual and I want to open source some code and start a project, I suppose I could always do it by myself. My code would get out there, people could use it to do whatever it does, and they could harvest the source to do bigger and better things. That’s fine, but for the project to really take off and grow, you’re going to need more people.
You’ll want coders and architects and testers and, if you are lucky, you’ll get documenters and designers and UI specialists. Yes, you might be able to do all these things eventually, but it will go faster and better with friends.
If you are a business and have made the decision to open source some code, you need to learn to trust others in the community. Through the years I’ve heard of multiple companies that never really opened up their open source projects to non-employee committers because they were afraid of losing control.
“What if they steer the project to someplace we don’t want it to go?”
“What if someone who doesn’t work for us becomes the leader of the project and we lose the PR advantage?”
“WHAT IF SOMEONE ELSE MAKES MORE MONEY THAN US?”
While bad things can happen in any group of two or more people, here’s the thing: you need to let go.
The project will stay on track in a direction useful to you if you participate aggressively and contribute solid code, but only if you let others do the same. Don’t expect others to yield to you as the project founder, have them do so because you deserve it because of your high quality contributions and good behavior.
Similarly, you will continue to be a leader if you act like one. That means you don’t keep threatening to take up your marbles and go home. That means understanding that sometimes other people have better ideas than you do. That means learning to negotiate and collaborate vs. being a bully.
As to making money, open or closed source won’t save you if you are fundamentally not good at business. However, I would caution you that having an “it’s only business” attitude might not jive well with others in your community if you carry an attitude that you should be the only one profitting from the effort.
So in my opinion, this is how you can succeed in starting an open source community:
- Be honest with those people you are trying to recruit about your reasons for working in open source. Clearly state your goals and how you will measure success for yourself and the community.
- Contribute your code, but accept improvements or better solutions.
- Give up sole control of the project to a more democratic leadership in order to get a better code base that you can use, at a lower development cost to yourself. Don’t stack the leadership group with cronies or puppets.
- Don’t act like a prima donna just because you started the project.
- Trust that if you and everyone else plays fairly but works hard, you’ll get something of great value that many can use.