all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Eric S. Raymond" <esr@thyrsus.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: "Eric S. Raymond" <esr@snark.thyrsus.com>, emacs-devel@gnu.org
Subject: Re: Why Emacs needs a modern bug tracker
Date: Sat, 5 Jan 2008 13:24:56 -0500	[thread overview]
Message-ID: <20080105182456.GR30869@thyrsus.com> (raw)
In-Reply-To: <u7iiouuxf.fsf@gnu.org>

Eli Zaretskii <eliz@gnu.org>:
> You are implicitly assuming here that what is good for a COCOMO-25
> project and 10-12 active developers should be also good for a
> COCOMO-328 project with fewer than 10 developers.  Do you have any
> evidence that this assumption is true, or arguments that would tell me
> such an assumption is reasonable?

Yes, I think I do.  Let's consider some of the scaling curves.

First, the size of a project's bug load is driven by the square of
LOC.  This is because most bugs are clashes between assumptions mode
in differing parts of the code.  Modularization can reduce such
clashes, but it's basically unheard of to get *quadratic* reduction,
especially on large old codebases; the best you can really hope for 
is a linear reduction (cf Clark and Baldwin's "Design Rules", 1999).

The utility of a tracker is (at least) proportional to the size of the
bug load, because one of its functions is to help identify the N most
critical bugs at any given time.  Arguably it's proportional to the
*square* of the bug load -- one of its other uses is to identify and
record bug interdependencies.

Therefore: best case, tracker utility TL rises as the square of LOC,
Worst case, it rises as the fourth power of LOC. This would neatly
explain why the jump from 60K lines to only 100K puts GPSD and Wesnoth
in regimes that are qualitatively different.

(For what it's worth, my own belief is that bug interdependencies have
the statistics of a scale-free network.  I can explain why in detail if
you care; it goes back to Ross Anderson's papers applying statistical
thermodynamics to model bug distribution in large systems. In that
case the actual utility curve of the tracker is somewhere between
LOC**2 and LOC**4, at about (LOC**2/k) * log(LOC**2/k) where k is a
constant measuring the degree of modularity in the code.  LOC**2 will
underestimate this substantially unless k is absurdly large.)

But to be as friendly as possible to your skepticism we'll set the utility 
function TL(LOC) = m * LOC**2, for m an unknown constant.

Now, remember that the LOC ratio we're talking about is 10:1.  That
means that, best case for your skepticism, a tracker should be O(10**2)
times as valuable to Emacs as it is to Wesnoth assuming we hold the
number of developers for both projects to the same constant (doesn't
matter what it is).  Worst case, O(10**4) times.  

Now let's suppose that the utility curve of a tracker with respect to
some number of developers d is modeled by an unknown function TD(d),
for LOC constant.  And that the joint utility T(LOC, d) is some linear
or multiplicative composite of TL(LOC) and TD(d), eg T(LOC, d) = a *
TL(LOC) + b * TD(d) + c * TL(LOC) * TD(d) for unknown constants a b c.
This is the friendliest possible assumption for you.  In fact the
joint function probably has nonlinear and monotonic-increasing terms
in both variables.

In order for a tracker to be less valuable to Emacs than it is to
Wesnoth, TD(d) would have to drop towards zero so much faster than
LOC**2 that it would swamp a more than two-order-of-magnitude
difference.  in TL(LOC).

To be concrete: I know Emacs has a minimum of about 6 developers just
from watching the list.  Let's say Wesnoth has 12.  That's 2:1.  A 2:1
drop in d would have to swamp a 10:1 rise in LOC.  Not plausible
at all.

(Note one of the things that has changed since Emacs practices
assumed approximately their present form in the early 1990s; back
then, the scaling laws I'm applying were not at all understood.
The germ of them had been present in Brooks's Law c. 1975, but 
it took a lot of work by a lot of people, including Clark and
Baldwin and Ross Anderson and Les Hatton and -- er -- me to
get from vague intuitions to even a qualitative scaling theory.)

> > One of the places a real issue database is most concretely useful is when
> > you're triaging bugs to close on a release.  It is *immensely* helpful
> > in making clear what needs to be done and at what point you are
> > finished doing it.
> 
> In Emacs development, we have problems to even find a release manager,
> let alone someone who will replace Richard as a head maintainer.  So
> having a bug triage system that is significantly better that a flat
> text file such as admin/FOR-RELEASE is not necessarily the first
> priority here.

Perhaps not.  But it certainly couldn't hurt.  And, maybe, if
bug-triage weren't quite so much like having a herd of elephants
stampede over your testicles, a release manager might be just a
*leetle* easier to find?
 
> Emacs is HUGE.  Its immense size is not the only problem: there are
> many parts in it that require experts in specific areas (GUI display,
> networking, Lisp infrastructure, email, multilingual text editing, to
> name just a random few) in order to know what is right and wrong when
> reviewing patches.  Just figuring out how best to organize maintenance
> of such a large package is a daunting task, to say nothing of actually
> implementing such a maintenance scheme (which would mean finding and
> recruiting individuals who could become part of such a team, then
> making a coherent and cooperative team out of them).  

All this is certainly true.

>                                                   It is IMO naive
> at best to think that switching to more collaborative tools would
> somehow magically solve these _real_ problems, or even pave a way for
> their _practical_ solution.

It would be tremendously naive to believe that better collaborative
tools will magically solve these problems. But that's a straw man; I
don't believe it, and you are *certainly* not stupid enough to suppose 
that I do.

But when you exclude the possibility that they might pave the way...
start asking youself how many potential contributors Emacs has lost 
because the project toolkit looks like stone knives and bearskins.

After that unnerving experience I had on 29 December, I can name
names: David Matuszek.  Cyndy Matuszek.  Toren Smith.  Matt Taylor.
Donna Malayeri.  That's five Emacs users and potential contributors
lost right there.  And you know what?  If I had known it was
important, I'm certain I could have walked three steps unto the
Matuszeks' living room and collected five more refuseniks just
from the faces I knew, let alone the strangers.

That's from a single point sample on a single night, and it's more
people than you'll admit to having on your entire dev team.  Wake up;
it's later than you think.
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>

  reply	other threads:[~2008-01-05 18:24 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-04 16:44 Why Emacs needs a modern bug tracker Eric S. Raymond
2008-01-04 17:33 ` Andreas Röhler
2008-01-04 18:29   ` Eric S. Raymond
2008-01-04 18:38   ` Gianluca Della Vedova
2008-01-05 14:31     ` Richard Stallman
2008-01-05 18:50       ` Gianluca Della Vedova
2008-01-05 19:51         ` Drew Adams
2008-01-05 19:58           ` Óscar Fuentes
2008-01-05 20:13           ` Sven Joachim
2008-01-05 20:28             ` Drew Adams
2008-01-06 10:47         ` Richard Stallman
2008-01-05 22:39       ` Óscar Fuentes
2008-01-06 18:09         ` Richard Stallman
2008-01-06 19:57           ` Óscar Fuentes
2008-01-06 22:29             ` Óscar Fuentes
2008-01-07 11:31               ` Richard Stallman
2008-01-04 19:20 ` Óscar Fuentes
2008-01-04 19:40   ` Drew Adams
2008-01-04 23:25 ` Alan Mackenzie
2008-01-05  0:44   ` Óscar Fuentes
2008-01-05  1:23     ` Miles Bader
2008-01-05  2:54       ` Óscar Fuentes
2008-01-05 15:38         ` Eli Zaretskii
2008-01-05 16:33           ` Juanma Barranquero
2008-01-05 19:05           ` Óscar Fuentes
2008-01-05 19:12             ` Lennart Borgman (gmail)
2008-01-05 20:00             ` Eli Zaretskii
2008-01-05 20:38               ` Óscar Fuentes
2008-01-05 21:55                 ` Reiner Steib
2008-01-05 22:05                 ` David Kastrup
2008-01-05 22:48                   ` Óscar Fuentes
2008-01-05 23:25                 ` Eli Zaretskii
2008-01-05 22:00             ` Bastien
2008-01-05 22:21               ` Óscar Fuentes
2008-01-05 23:32                 ` Bastien
2008-01-06  0:52                   ` Bastien
2008-01-07 17:15                     ` Richard Stallman
2008-01-08  1:06                       ` Bastien
2008-01-06 10:46             ` Richard Stallman
2008-01-08 23:49             ` Thien-Thi Nguyen
2008-01-09  1:13               ` Leo
2008-01-09  1:48                 ` Thien-Thi Nguyen
2008-01-09  1:28               ` Andrea Russo
2008-01-09  1:49                 ` Thien-Thi Nguyen
2008-01-05 12:23     ` Alan Mackenzie
2008-01-05 17:40       ` Alfred M. Szmidt
2008-01-06  1:10         ` Mike Mattie
2008-01-06 18:09           ` Richard Stallman
2008-01-06 18:18             ` David Kastrup
2008-01-06 21:27               ` Jan Djärv
2008-01-06 21:35                 ` David Kastrup
2008-01-07  6:56                   ` Jan Djärv
2008-01-07  8:23                     ` David Kastrup
2008-01-07 14:28             ` Bill Wohler
2008-01-10  4:11             ` Giorgos Keramidas
2008-01-05 22:23       ` Robert J. Chassell
2008-01-05 22:23       ` Robert J. Chassell
2008-01-05 23:05       ` Óscar Fuentes
2008-01-05 23:20         ` Lennart Borgman (gmail)
2008-01-06 17:13           ` Óscar Fuentes
2008-01-06 20:15             ` Stefan Monnier
2008-01-06 20:37               ` Óscar Fuentes
2008-01-06 22:17               ` Bastien
2008-01-05  5:20   ` Eric S. Raymond
2008-01-05 11:17     ` Alan Mackenzie
2008-01-05 14:57       ` Eric S. Raymond
2008-01-05 15:51         ` Lennart Borgman (gmail)
2008-01-05 16:07           ` Eric S. Raymond
2008-01-05 19:58         ` Chris Ball
2008-01-05 20:50           ` Lennart Borgman (gmail)
2008-01-05 21:26           ` Eric S. Raymond
2008-01-05 23:46             ` Stephen J. Turnbull
2008-01-06 16:38           ` email-based development (was:: Why Emacs needs a modern bug tracker) John S. Yates, Jr.
2008-01-05  8:51   ` Let a QA department into the works Andreas Röhler
2008-01-05 14:53     ` Eli Zaretskii
2008-01-06  8:09     ` Richard Stallman
2008-01-06 11:15       ` David Kastrup
2008-01-06 19:52         ` Andreas Röhler
2008-01-05 21:39   ` Why Emacs needs a modern bug tracker Bastien
2008-01-05 14:30 ` Richard Stallman
2008-01-05 15:25   ` Eric S. Raymond
2008-01-06 10:47     ` Richard Stallman
2008-01-05 15:57 ` Eli Zaretskii
2008-01-05 18:24   ` Eric S. Raymond [this message]
2008-01-05 20:19     ` Eli Zaretskii
2008-01-05 21:48       ` Eric S. Raymond
2008-01-05 23:21         ` Eli Zaretskii
2008-01-05 23:39           ` Eric S. Raymond
2008-01-06  1:03             ` Nick Roberts
2008-01-06  2:08               ` Miles Bader
2008-01-06  4:08                 ` Nick Roberts
2008-01-06 10:26                   ` Andreas Schwab
2008-01-06 11:22                     ` Nick Roberts
2008-01-06 13:19                       ` Andreas Schwab
2008-01-06 11:13                   ` David Kastrup
2008-01-06 15:59                     ` Eric S. Raymond
2008-01-07 11:30                       ` Richard Stallman
2008-01-07 13:29                         ` Eric S. Raymond
2008-01-08 19:06                           ` Richard Stallman
2008-01-09 15:35                     ` Bill Wohler
2008-01-06  4:14                 ` Eli Zaretskii
2008-01-06  5:30                   ` Miles Bader
2008-01-07 14:40                     ` Yavor Doganov
2008-01-10  4:23                       ` Giorgos Keramidas
2008-01-10  6:46                         ` Mark Linimon
2008-01-11  7:00                       ` Bill Wohler
2008-01-11 15:54                         ` Óscar Fuentes
2008-01-11 20:42                           ` Ralf Angeli
2008-01-11 21:25                           ` Nick Roberts
2008-01-11 22:41                             ` David Kastrup
2008-01-11 23:14                           ` Evans Winner
2008-01-13  8:35                         ` Richard Stallman
2008-01-06 18:09         ` Richard Stallman
2008-01-06 20:02           ` Martin Geisler
2008-01-07 11:31             ` Richard Stallman
2008-01-06 20:09           ` Eli Zaretskii
2008-01-06 21:08           ` Eric S. Raymond

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080105182456.GR30869@thyrsus.com \
    --to=esr@thyrsus.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=esr@snark.thyrsus.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.