db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel John Debrunner <...@debrunners.com>
Subject Re: Voting and comments
Date Sat, 22 Oct 2005 04:18:09 GMT
David W. Van Couvering wrote:
> I do want to express one frustration with the voting process.  It seems
> that although I get some feedback, I can't seem to get all the comments
> I need on a proposal until *after* I call for a vote.  I had this
> proposal online for over two weeks, and it wasn't until after I called
> for a vote that I started getting some meaty comments from everyone.
> So that means I have to adjust the proposal and the vote basically has
> to be rejected.    I really dislike this, I don't like having to have
> vote after vote as I try to refine the proposal.
> Does anyone have any ideas how a vote submitter can get the feedback
> they need *prior* to calling for a vote?  I really would prefer a vote
> to be a "stamp of approval" on a discussion that has already been worked
> through.

This is more vague advice than anything concrete ...

I think you have to change your expectations and approach to fit the
model of open source and the behaviour of the community.

I'm personally going back a lot more to the basic "scratch your own
itch" as the starting point and fundamental approach. If someone does
something that:

 - scratches their own itch
 - and adds value to Derby
 - and is in line with the charter
 - and is in line with any previous votes

then it's really likely to be accepted. How could anyone possibly veto
something that did provide all of the above? If someone says they could
do better, then that's fine, but until their code exists, the first
submission is it. Remember adding some, possibly imperfect, value is
better than adding "perfect" value, and that you can't require a
contributor to do anything more than they want to.

Take a different example, Mamta's optimizer hints. Let's play out a
possible scenario, based upon some existing emails:

  1) Mamta submits code in-line with her functional spec, it adds value
to Derby, in-line with everything, so it looks good, and people either
vote +1 or it's lazy consensus.

  2) The Rick comes along and says no good, -1, there is no syntax
checking of the optimizer overrides.

  3) I, or others, would then respond, well that's a great idea Rick,
but that's your itch, Mamta's patch adds value, so let's commit it. If
you want to add syntax checking, go ahead, but having some form of
overrides now, is better than some better version in the future, that
may not even occur, because maybe Rick doesn't care enough to actually
work on it. We can't judge future code, only code that is actually

To go back to the shared code, maybe an detailed proposal is the wrong
approach, a possible alternative is:

1) Set up a vote for the top-level principles, e.g.
    Derby should support shared/common code between jars
    Sharing code will not degrade the current ease of use

    and I mean sentences just like those, simple clear, and just a
handful (1-5).

If you make these simple, clear and obvious then most likely it's a
no-brainer to vote +1, or you can have the confidence to use lazy consensus.

2) Contribute a patch/set of code that is in line with the principle,
has the detailed explanation, framework and intial shared code, and
provides value to Derby.

Should be accepted because it adds value.

3) Build upon 2) to add more shared code. Others will be encouraged to
follow your example and going against your code will be seen as against
the grain and so require more explanation.

4) If someone provides a better framework/approach that's fine, we can
switch to theirs, but it has to exist and fall into the principles you
set up.

In a way it's politics, you want to setup and position votes and
contributions so that the only possible answer is, '+1 yes, that's a
great addition to Derby!'. :-)

We all learning here, coming mainly from closed source development. I
think we do have to go through some painful exercises/mistakes as a
learning process.


View raw message