New Open Source Model needed?
A good friend of mine, Samo, and I are about to release a piece of ruby/rails code as open source.
I've used open source stuff for years, and been active in a community or two, and been a lurking community member in dozens of projects.
I'm most attracted by the people. The attitude. The culture. What makes everything tick. Why it is free. What motivates people. What is going on here.
I don't "get" two things about open source:
- One codebase +one group of leaders = one slow-moving project + lots of left out opinions
- Projects are abandoned or worked on forever, but never given the stamp of approval: "It's Done"
I'll start with the first:
It seems that with mature open source projects, hundreds of people want to get involved. They don't. They voice opinion, and either often get turned away, or go unheard. It's simply impossible for the group of programmers heading the project to really steer the project, do the work, and respond to every last request.
My question is: Why one code base? Why doesn't everyone get a branch to work with, and the core developers are in charge of merging 'the best of the best' ?
I'll come right out and say it. Open source is not open. It's "if you obey our rules, follow our vision, and do work that is just as good as we do" source.
On top of that it's slow. The more people involved (in the current model), the more communication required, the more difference in opinion, the less "Ok, I'll just get it done" attitude.
My real bone to pick is the quantity of discussion needed to get software to move forward. Still. You'd think we'd be more efficient then having one subversion trunk with 12 core members and 100's of people playing catch up trying to write timely patches while the code runs away from them.
The second:
What's up with the need to constantly improve and add and change and...version after version. Is it just the truth that all open source starts out incomplete and buggy, and exponentially slows down as it approaches 'perfect' to a snail's pace?
What's up with "abandoned"? How about - "I/We solved my/our needs" and moved on?
UPDATE: I'm liking git! It seems to answer exactly this issue!