[EMAIL PROTECTED] wrote:
Jonathan Revusky wrote:

First of all, pPeople seem to be addressing things I never said. For example, I don't think I ever said that people should be allowed to commit _anonymously_. I simply said that I believed you could be quite liberal about granting commit privileges to people and the sky would not fall in.

Now, here you seem to be suggesting that I see no need for code review on new code that is committed.

No, I certainly don't believe that. Of course, code that is committed should be reviewed carefully. However, I don't know if this is such a problem as regards this kind of situation. If you imagine a situationin which a new guy is given commit access, I think it's totally normal that the established developers will be quite carefully reviewing the things this guy does.

So basically, I don't think your above point 3 is such an objection.


I never said that the sky would fall in.  I just said that committing
code from a wide range of producers prior to review by a small group of
people deeply immersed in the project would reduce the trust in the
project.  You may have no objection to this, but you cannot make that
decision for others.  There are many companies using Struts for far more
important things than simple websites.  I believe that many of these
companies would be unwilling to trust Struts for these uses if the
project were to greatly open up the commit privileges.

You really believe that, huh? I don't know. I am very skeptical about this because I just find it hard to believe that... well... certain kinds of pointy-head managers who insist on using Struts or some other well known thing have very clear ideas about the processes by which these software products were actually developed. I see a lot of it is a herd mentality, essentially. "Everybody else is using this thing so it's the 'safe choice'." (i.e. "Nobody can fire my ass for recommending Oracle, say, because everybody else is using Oracle, but if I recommend that we use Acme RDBMS, that nobody has heard of, my ass is on the line....")

OTOH, maybe what you say is true. I can only speculate about the basis on which other people make decisions. They may really believe that if you let more people get involved this way, product quality will go down and there will be more risk and so on. What I find odd about what you are saying is the idea that people who think that way would use open source software at all. Wouldn't people who are that distrustful of a more open collaborative model just tend to prefer closed commercial software?

Anyway, supposing for the sake of argument that what you believe is true, then this leads to another basic question.

Would such a belief be well founded? (I mean the belief that it would somehow become riskier to use Struts, say, if the barriers to becoming a committer were drastically lowered.)

This is actually the question that interests me. If people believe this but it's not true, then.... well... you know, should one condition one's behavior based on other people's misguided beliefs? Or actually, in this case, the misguided beliefs you are speculating that certain other people may hold...

And again, I am saying that if you greatly open up commit privileges, all the code should still be peer reviewed. What I have heard back is the counterargument that reviewing whatever code is contributed is a lot of work. Well, is that really a valid objection? The fact remains that, well... work is a lot of work. Sitting on your arse and saying "We're a self-selected meritocracy" is less work.

Given the choice, a self-selected meritocracy, like tenured professors or something will likely do less work rather than more. But that something proposed involves work is not in and of itself a valid objection to the proposal, is it?



Also, there is a countervailing point here: in terms of subtle errors and so on, simply getting more people involved may well reduce the number of such subtle errors for the basic principle of more eyeballs. So this works both ways.


Effectiveness of code review depends on the depth of that code review,
not merely the number of people who have reviewed it.  While broad
review, which any open-source project may have, can bring a benefit in
reducing errors, I have generally found it better for catching coding
errors than design errors.  In many cases, it weakens the review because
it dilutes the sense of responsibility.

Well, in the exact case of letting new people commit code, as a matter of practical experience, it will be very rare that a new committer will initially embark on major redesign of the product. Usually a new kid on the block committer starts off with relatively small localized contributions that do not involve redesigns.



Consider the C2 Wiki and Wikipedia as analogies. Yes, it's easy to delete obviously false information. It's just as easy to

reintroduce
it. Keeping the worst of the cruft out is pretty much a

full-time job
for volunteers who take on the task, and there's not even agreement between them which is the cruft. Subtle or infrequently viewed incorrect information can, and does, remain for long

periods of time.
Spectacular failures occur that make headlines in the mass

news media.

Just to be clear: are you speculating in the above, or are you speaking from direct experience maintaining such resources?


I was using this as an example, and don't wish to debate the question of
open Wikis.  For the record, I have given up on maintaining the C2 Wiki
(after many years of contributing) because the cruft is added faster
than it can be cleaned, and it's no longer worth my time to work on it.
I rarely refer to it for reference, either, for the same reason.


I, for one, would never recommend to any business

enterprise that they
use Struts for important applications if the source was not

vetted and
controlled by a small, trusted committee. Your needs may not have such requirements for trustworthiness.

Do you have objective proof that Struts is more "trustworthy" -- i.e. lack of subtle security holes and so on -- than other comparable projects?


You have an objective measurement of trustworthiness?  I thought that
trust was a human (or perhaps animate) value.

Well, you seem to be saying (at least implicitly) that you "trust" Struts and the Struts team more than other corresponding products. I think it is a valid question to ask whether you have an objective basis for this. "Everybody else is using it so it must be good" is of course a false syllogism.

If you were asked pointedly on what objective basis you place more trust in Struts and so on, how would you answer? I think, at the end of the day, it is a valid, well constructed question.



George, I'm rather unconvinced by your arguments.


That's OK with me.  I'm rather unconvinced by your arguments.  I'm just
stating the case that, as it is, Struts is rather widely trusted for
enterprise systems.  I believe that much of that trust is due to the
empirical track record of the small team controlling changes to the
code.  I believe that much of that trust by those businesses would be
lost were this model of control to be radically altered.


But I reiterate: the idea that a more open collaborative model is going to produce software with more bugs or more security holes is an empirical question that cannot be resolved by a priori reasoning.


I'm not saying that it would have more bugs.

Well, the proof of the pudding is in the eating, isn't it? If a more open process did not, by any objective measure, result in less reliable software, and meanwhile resulted in more technical innovation and thus more productivity for Struts users, wouldn't you have to be in favor of that?

I'm saying it would be
less trusted.  It's harder for me to trust a large group than a small
one.


Well, I might decide I don't trust a guy's code because this is a guy who wears goofy T-shirts to work. Fine. This does lead to the question of whether that criterion is actually valid or not.... Do people who wear goofy T-shirts write better or worse code than other people? I know that sounds silly, but basically there's the question that somebody might have whatever bias, but still, we should be rational here. The more important question IMO is whether the bias is actually well founded or not.


But to summarize: the basic idea that you need to closely guard commit


privileges should not be a dogma. It is a hypothesis that should stand


and fall based on empirical evidence. All I see here is people arguing


that this is a bad idea based on a priori reasoning. Has anybody

jumped
up and said something like: "Oh, we tried that and it was a disaster. This happened and the other thing happened and we had to revert to a less open approach."

With my kind of empirical mind-set, this is the kind of thing more likely to convince me I'm wrong, or at least cause me to doubt.


I think you're mis-reading the discussion.  I don't hear any dogma here.

Well, what I see is that there are people here (not just me) seriously questioning whether the so-called "Apache Way" is really all it's cracked up to be. In response, you have people saying: "This is how the Apache Way works" or simply pointing to some document somewhere in the same way that a religious fundamentalist would quote scripture.

I mean, it's as if you critique the design of Struts, say, and then the response to your design critique is that people say: "Here is a document outlining the design of Struts." It does beg the question, does it not?

I hear the Struts team saying, "We don't want to do that."  They're
perfectly willing to let you run a project with whatever commit criteria
you want.  They're even willing to let you start with their code base.

Well, that's very generous of them, I'm sure. Note, however, that, as regards Struts Action Framework 2.x, they themselves do not even want to start with their current code base.

Knock yourself out.  Personally, as a Struts user, I'm pretty
comfortable with the project, as is.  On a take-it-or-leave-it basis,
I'll take it.

Well, if you're completely happy, that's fine. But does that, in itself, mean that everybody is happy? If not, does it also mean that the people who are unhappy should not express that?


What I see is people arguing that they're wrong for feeling that way.  I
hear people saying that the Struts team should change their behavior and
that we will know, empirically and in the future, if it was a good or
bad change.  And I don't blame them for dismissing those arguments.

There is an infinite number of ways to run a project.  There is no "one
best way."  Empirical evidence shows that the Apache way has been
successful by a number of measurements.  It might not be the way that I
would run a project or that you would run a project, but neither of us
has any right to tell them it's the wrong way.

Why not? :-)

Oh, we can tell them

Oh, so we do have the right of free speech. What a relief!

but they have no obligation to listen.

I think you have some fundamental misconceptions about the logic and structure of the situation.

IMO, there is a basic moral obligation to listen to your community. I am prominent in an open source project that is fairly well known and has a healthy user community.

For the record, yes, I feel that, I have an obligation to listen. The day I don't want to listen to anybody's gripes, I'll willingly pass the torch on to somebody who does want to listen.


Therefore, if you want to
influence the way they run the project, you need to present that
influence in ways in which it may be more likely to be favorably
received.  Empirical evidence shows that saying "you're doing it wrong"
is not a terribly effective way of influencing someone.

Well, according to you, they have the right not to listen to you anyway...

Basically, you seem to have some basic misconceptions about what is going on around here. The Struts people have convinced the developers of Webwork, a heretofore competing product, to donate their codebase to ASF and have that be called Struts Action Framework 2.0. This basically means that the Struts people have tacitly accepted that Webwork is a lot better and that current Struts users would be better off using that.

This means that there was a technical competition to produce the better framework, and the Struts people have conceded defeat. When you lose, you generally have to humbly accept that you did at least some things wrong. The logic and structure of the situation is such that these people have to accept that they did some things wrong.

Anyway, I have made clear my thoughts on this in a blog article that can be read here:

http://freemarker.blogspot.com/2006/03/musings-about-competition-ego-open.html

Anyway, we probably do have legitimate differences of opinin about certain things and I do not presume to have absolute truth. But, really, George, as a favor to yourself, you should really reconsider this idea that people in the position of Craig and Ted and so on have no obligation to listen.

Yes, they do....

Regards,

Jonathan Revusky
--
lead developer, FreeMarker project, http://freemarker.org/

Your mileage
may vary.

 - George Dinwiddie
   http://www.idiacomputing.com/



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to