David Blevins wrote:
We are still hammering on M4, so I don't want to distract people to
much. Just want to get people thinking.
I have a couple things in my mind still in the abstract. Will try to
get them out in some sensible way. Bare with me.
<rambling>
RELEASE OFTEN, PERFECT OR NOT
Amen :-)
Ok, so it's been a year since M3 (ouch) and we have threatened to do an
M4 several times. Why did we keep putting off M4 even though we knew
very well M3 was no good? I think the reason is something along the
lines of 1) being optimistic in many forms, 2) wanting the next release
to be some form of perfect, 3) being focused on a couple (or one) very
large goal.
More important than 1, 2 or 3 is time.
Let's ask ourselves:
- How much usablility feedback could we have gotten in an entire
year's time?
- How many releases could we have done in the last year?
- How many would-be committers and users did we miss out on by not
releasing?
It is interesting that even Erich Gamma (among others) considers this to
be an important factor in building a thriving community around Eclipse:
http://www.artima.com/lejava/articles/eclipse_culture.html
Let's be more humble and admit that every release is going to "suck" to
some degree (i.e. not be perfect) and it's better to work on getting
them out faster, not slower.
We need to stop making such a bid deal about the next release, which
only slows it down, and start thinking two or three releases out.
Normally some form of competition would drive us to push releases out
the door quickly and keep our goals in check with what people really do
need now and what they would be fine having later. There is
competition out there, but it's us not competing with them, not the
other way around. Sorry, just calling it like I see it.
MILESTONES AND USABILITY
Alright, IMHO, we've outgrown milestones. Better said we've attained
our goal of passing the CTS, the major technical milestone. Now we all
are focusing on usability. From my experience, obtaining usability is
all about iterations, as many as you can get and as often as you can
get them. I think milestones will actually slow us down on achieving
our goal of usability.
We are going to have to crank out a half dozen releases minimum over
the next couple months in order to achieve the kind of growth we want.
At this point in the game it's all about momentum. We need to be an
unstoppable freight-train leaving a trail of release numbers behind us
and picking up as much community we can carry as we go forward.
Precisely!
Pushing a milestone every three months is not going to cut it, nor is
Geronimo 1.0 M12 such good idea either.
While Geronimo 1.0.8 is perfectly fine.
1.0, THE UNATTAINABLE GOAL (CROSSING THE LINE)
The 1.0 release is not about the cool things we want to add to make
Geronimo great. It's about reaching a point where you and the users
agree on what will be supported in a year's time, which won't be much
as it's a 1.0, not a 2.0 or 3.0 or 4.0. That's it, no more, no less.
All sorts of cool things can be added later!
We should also keep in mind that hardly anyone is going to recommend a
Geronimo installation in production while still in beta versions.
Here is the point where I have particular experience, ... you will
cross that magical "1.0" line at some point, wether you choose to call
it 1.0 or not!
At some point, people will start using the software and become
dependent on whatever you are at the time. Their expectations will
naturally settle on what you have and not where you say you are going.
1.0 or not, you now have to maintain stability, only you weren't so
clear on what was going to change and what was to remain supported (be
at least backwards compatible), so now you are in the position to have
to support much more than you wanted.
</rambling>
Anyway, those are my rambling thoughts and experiences. Just throwing
them out there for now.
-David
I've been seeing many open-source projects gradually transitioning from
feature-oriented releases to time-based ones. Users tend to upgrade
regularly, treating software like a constantly evolving organism that
grows and matures.
Regards,
Panagiotis