Many eyes

Matts on 2004-09-11T20:57:32

In open source there's a well known fallacy: "Given enough eyeballs, all bugs are shallow". This has not been my experience.

In my experience there's only one true way to fix bugs: replicate them.

And so the modern day way to replicate bugs is to implement the bug in a .t file. In all my recent large scale projects this has been the only successful way to locate difficult/complex bugs, and get them fixed. Beyond that, having a .t file ensures the bug doesn't creep back in.

Yes, this is another "tests are good" post. But I really believe that those who don't code with tests in mind are not yet enlightened to the "next level" of software development, and probably need a swift kicking in that direction.

The reason for posting this: I struggled for ages to try and figure out what was causing problems with concurrent access to our SQLite databases. I tried to think it through, and just wonder about the problem. I came to the (wrong) conclusion that there was something wrong with our network. Until we wrote a test. Once the test was written the solution dropped out in a few minutes. I'm kicking myself for not doing that sooner (though I can't blame myself too much as I'm not assigned to the project that uses SQLite any more).


Many Eyes, Many Hands

ziggy on 2004-09-12T18:49:33

The "many eyes" fallacy persists because there's a grain of truth lurking inside.

Of course, the "many eyes" are not enough to fix bugs. What you need are "many hands", as in "many hands make light work". The reason why open development models trump closed development models is because closed shops have a fixed number of staff, generally managed so they have as little slack as possible.

Open development models, on the other hand, are open to the possibility that someone out there (someone you never met, whom you do not even know [1]) can find a problem, report it and possibly submit a .t file, and on a very good day even draft a patch that fixes it.

But the premise that "many eyes" are a sufficient condition for fixing bugs is as much of a fallacy that there is no truth whatsoever behind the "many eyes" myth.

 

1: Tip of the hat to Richard Matheson and his story Button, Button for that rhetorical flourish. ;-)

Re:Many Eyes, Many Hands

cog on 2004-09-12T22:00:05

Regarding Richard, I'd like to know what they're gonna make out of this.

Re:Many Eyes, Many Hands

ziggy on 2004-09-12T23:16:41

<gasp!>

That story worked well for about ~30 minutes (IIRC). Just enough drama and suspense to keep it interesting. Either a longer version will be a masterful screenplay, or it'll suck eggs.

Now, if they make this a montage, and include some other short stories, like The Misfortune Cookie, and A Little Peace and Quiet, then you have something approximating a good episode of the New Twilight Zone. ;-)

misread

bazzargh on 2004-09-14T15:05:12

""Given enough eyeballs, all bugs are shallow". This has not been my experience. In my experience there's only one true way to fix bugs: replicate them."

For some reason, I read this as a plan to replicate eyeballs. Y'know, it just might work...