Daniel Brookshier has an interesting article on the many impediments to open source projects - for example:
If you look at the change logs of most successful open source projects, you will only see a few names and in many cases, just one name. The reason is that a small group or just an individual does all the work. The key reason is that volunteers are just plain hard to motivate. Motivation is hard!
Back to herding cats, there is little that really motivates a cat that can be used to train it. People are really very similar to cats. Look at what open source participation offers: no cash, little recognition, and hard work. Not much more than a sense of accomplishment and many can get that from watching the 10th season of survivor. Where do volunteers come from? A lot of volunteers come to projects because they need something. They have a scratch that needs itching. Some are willing to contribute to make the changes they need. But this is a mixed blessing
There's a simple issue with most open source projects - money (or, the lack of it). Think about the really successful open source projects - one way or another, they have funding. Without funding, it's hard to find the time and motivation to pull a project through. It's one thing to "slap some code out" and quite another to keep after a project day in, day out. There's also a problem related to the above (and Daniel brings this up later in the article) - developers will tend to work only on things that bother them (personally). If you have a funded project (with bug reports coming in, etc) - there's some motivation to fix things that "aren't interesting" - like, say, the UI. Without funding, many things tend to get to - at best - about 80% done. At that point, all the interesting problems have been solved, and what's left is just boring detail. With funding, there's a way to get that boring stuff done. Without funding, it's really quite hard.