unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Eric S. Raymond" <esr@snark.thyrsus.com>
To: emacs-devel@gnu.org
Subject: What a modern collaboration toolkit looks like
Date: Sun, 30 Dec 2007 07:22:17 -0500 (EST)	[thread overview]
Message-ID: <20071230122217.3CA84830B9A@snark.thyrsus.com> (raw)

This started out as part of a longer essay called "On not kissing the pig".
But that essay grew into an epic.  Rather than dump it on the list all 
at once, I think it will be useful if I start by giving everybody a
clear idea of the potential benefits of changing our practices.

I'm going to describe the collaboration toolkit on another project where
I happen to be a senior dev, called Battle For Wesnoth.  You can find
the project at <http://www.wesnoth.org/>.

This is a typical modern open-source project.  It's not even a
particularly large one -- no more than a dozen core devs, 58
developers total.  Here are the collaborative tools we use every day:

* Source control with Subversion
* A bug tracker
* A very active IRC channel used for routine dev chatter
* A dev mailing list, used mostly for white papers and long proposals
* Web forums where a large user community hangs out
* Subversion commits are echoed to IRC in real time by a monitor bot
* Subversion commits that reference a bug append a comment to the tracker
* A bot on IRC that you can query with a bug number and get a tracker URL.

Here are some of the ways my workflow on Wesnoth differs from my
workflow on Emacs:

1. When I do a commit of changes to several files, the entire changeset
is saved as a unit with a single change comment attached to it.  

a) That change can be referenced, through its Subversion revision ID.  
   (So, for example, "Hey boucman, your r22615 broke linger mode!")

b) That change can be backed out as a unit.

c) That change is instantly browseable by any dev.

d) If that change is a fix that references a bug number, that fact
   instantly becomes part of the bug database *where everyone can
   see it*.

2. My commit is also echoed to the IRC channel, where there are almost
never fewer than three or four devs hanging out as they hack, chatting
in real time.  Review tends to happen instantly.

3. Because everybody (and our user community!) uses the bug tracker, 
everybody always knows exactly what the dozen most important 
bugs are, and has a pretty good idea what the dozen most valuable
feature requests are.

4. Because the IRC has a monitor bot hooked to the bug database,
whenever someone says "Eric, have you looked at feature request #2355,
it looks like your kind of thing." I can get to that issue by typing
"wesbot: bug #2355" and clicking once.  Questioner usually gets a
response less than 30 seconds later.  If I address the request,
they'll see my commit comment in real time without me having to do
anything special.

5. The entire commit history of the project is visible to me 
moments after I type C-X v l.  This is much more powerful 
than just having the per-file change history visible, because 
the commit groupings themselves tell me valuable things 
about developer intentions.

The effect of all these tools is more than the sum of its parts.
  
One huge one is simply that devs can choose to spend time picking
bugs off the tracker and nailing them, with basically zero process
friction.

Another is that we routinely hash out serious design and coding issues
in real time, because everyone on the chat channel can share hyperlinks
to the codebase, the commit history, the bug tracker, and posts
on the user forums.

Yet a third is that when we decide to do it, we can converge on a
releasable state with almost absurd ease.  Like, Ivanovic (our release
manager) will announce "Point release scheduled this coming Wednesday"
and everyone will pretty much flip into bug-stomping mode.  The
tracker bug list tends to shrink dramatically when this happens --
not only do we get prepared for release but *we know we've done so*.

More generally, development happens *fast*.  I don't have to wait
weeks to find out whether other devs think of an idea.  Commonly
I know within minutes.

The Wesnoth devs are good but not exceptionally so, and we're weighed
down by a crappy implementation language (C++).  Nevertheless our
productivity, in terms of goals achieved per hour of work, is quite
high.  That's because our collaboration tools support everything we do
without imposing noticeable process friction.  This makes us
dramatically more effective as individuals and as a group than we
could possibly be without them.

Lessons for the Emacs project?  Hell, yes.  But I'm not going to 
write that rant until y'all have had a little time to absorb 
this description of how things can be.

And bear in mind: At the end of 2007 this is obervably *normal*.  It's
not that Battle For Wesnoth's collaboration toolkit is ahead of the
curve -- it's that Emacs's is behind.  Way, *way* behind.
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>

Americans have the will to resist because you have weapons. 
If you don't have a gun, freedom of speech has no power.
         -- Yoshimi Ishikawa, Japanese author, in the LA Times 15 Oct 1992

             reply	other threads:[~2007-12-30 12:22 UTC|newest]

Thread overview: 277+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-30 12:22 Eric S. Raymond [this message]
2007-12-30 15:32 ` What a modern collaboration toolkit looks like Thien-Thi Nguyen
2007-12-30 15:42 ` Richard Stallman
2007-12-30 17:22   ` Eric S. Raymond
2007-12-30 20:25     ` Robert J. Chassell
2007-12-30 21:55     ` Nick Roberts
2007-12-30 22:25       ` Lennart Borgman (gmail)
2007-12-30 22:58         ` Richard Stallman
2007-12-30 22:58     ` Richard Stallman
2007-12-31  2:58       ` Eric S. Raymond
2007-12-31 12:14         ` Thien-Thi Nguyen
2008-01-01 23:57           ` John S. Yates, Jr.
2008-01-02  1:46             ` Thien-Thi Nguyen
2007-12-31 22:29         ` Richard Stallman
2008-01-01  0:19           ` Leo
2007-12-31  4:31 ` Eli Zaretskii
2007-12-31 13:07   ` Eric S. Raymond
2007-12-31 20:57     ` Eli Zaretskii
2007-12-31 21:41       ` Eric S. Raymond
2007-12-31 23:00         ` Nick Roberts
2008-01-01  0:50           ` Eric S. Raymond
2008-01-01  4:22             ` Eli Zaretskii
2008-01-01  6:20               ` Eric S. Raymond
2007-12-31 23:12         ` Eli Zaretskii
2008-01-01  0:27           ` Dan Nicolaescu
2008-01-01  3:00             ` Mike Mattie
2008-01-01  7:57               ` Drew Adams
2008-01-02 19:28               ` Agustin Martin
2008-01-03  9:50               ` Richard Stallman
2008-01-05  3:34                 ` Mike Mattie
2008-01-06  8:09                   ` Richard Stallman
2008-01-03  9:50               ` Richard Stallman
2008-01-01 20:44             ` Eli Zaretskii
2008-01-02  4:17               ` Dan Nicolaescu
2008-01-05 10:48                 ` Eli Zaretskii
2008-01-01  0:57           ` Eric S. Raymond
2008-01-01  4:21             ` Eli Zaretskii
2008-01-01  0:10         ` Miles Bader
2008-01-01  1:06           ` Eric S. Raymond
2008-01-01  1:41             ` Miles Bader
2008-01-01  2:16               ` Eric S. Raymond
2008-01-01 19:43           ` Tom Tromey
2008-01-01 21:11             ` Nick Roberts
2008-01-02  0:25             ` Miles Bader
2008-01-02  1:12               ` Tom Tromey
2008-01-02 17:19                 ` On-the-fly compiling (was Re: What a modern collaboration toolkit looks like) Mark A. Hershberger
2008-01-02 20:57                   ` On-the-fly compiling Stefan Monnier
2008-01-02 22:33                     ` Lennart Borgman (gmail)
2008-01-02 23:09                   ` Tom Tromey
2008-01-02  9:53             ` What a modern collaboration toolkit looks like Richard Stallman
2008-01-01 11:28       ` Tassilo Horn
2008-01-01 20:36         ` Eli Zaretskii
2008-01-02  0:29           ` Miles Bader
2008-01-02  4:14             ` Eli Zaretskii
2008-01-02  4:33               ` Miles Bader
2008-01-02  8:24                 ` Werner LEMBERG
2008-01-02  8:20           ` Tassilo Horn
2008-01-03  9:50             ` Richard Stallman
2008-01-03 13:15               ` Ævar Arnfjörð Bjarmason
2008-01-04 13:56                 ` Stefan Monnier
2008-01-02  8:41           ` tomas
2008-01-03  9:50         ` Richard Stallman
2008-01-03 10:16           ` Miles Bader
2008-01-05  5:55             ` Richard Stallman
2008-01-05  6:59               ` Óscar Fuentes
2008-01-05 15:29                 ` Eli Zaretskii
2008-01-05 19:53                   ` Óscar Fuentes
2008-01-06  8:09                 ` Richard Stallman
2008-01-05  8:55               ` David Kastrup
2008-01-05  9:55                 ` Werner LEMBERG
2008-01-05 15:23                 ` Eli Zaretskii
2008-01-05 15:31                   ` Lars Magne Ingebrigtsen
2008-01-05 15:39                   ` David Kastrup
2008-01-06  8:09                 ` Richard Stallman
2008-01-06  9:51                   ` tomas
2008-01-06 11:02                   ` David Kastrup
2008-01-06 12:05                     ` Robert J. Chassell
2008-01-06 12:40                       ` David Kastrup
2008-01-06 16:51                         ` Robert J. Chassell
2008-01-06 17:03                           ` David Kastrup
2008-01-07  4:18                         ` Richard Stallman
2008-01-05 22:46               ` Stefan Monnier
2008-01-06 18:09                 ` Richard Stallman
2008-01-07 17:17               ` Gregory Collins
2008-01-07 23:21                 ` Stephen J. Turnbull
2008-01-08  0:25                   ` Gregory Collins
2008-01-08  0:51                     ` David Kastrup
2008-01-08  2:43                       ` Mike Mattie
2008-01-08  3:03                         ` YAMAMOTO Mitsuharu
2008-01-08  4:25                           ` Mike Mattie
2008-01-08 19:07                 ` Richard Stallman
2008-01-03 10:32           ` David Kastrup
2008-01-01 17:11     ` Alan Mackenzie
2008-01-01 18:05       ` Werner LEMBERG
2008-01-01 18:27         ` Alan Mackenzie
2008-01-01 18:28           ` Werner LEMBERG
2008-01-02  9:53             ` Richard Stallman
2008-01-02 10:36               ` Werner LEMBERG
2008-01-02 12:23                 ` Eric S. Raymond
2008-01-04  5:27                 ` Richard Stallman
2008-01-02 11:27               ` Thien-Thi Nguyen
2008-01-02 12:17               ` Eric S. Raymond
2008-01-03  1:26                 ` Stephen J. Turnbull
2008-01-03  2:49                   ` Eric S. Raymond
2008-01-04  5:27                 ` Richard Stallman
2008-01-04  5:35                   ` Miles Bader
2008-01-04 12:47                     ` Eric S. Raymond
2008-01-05 14:30                     ` Richard Stallman
2008-01-06  1:10                       ` Miles Bader
2008-01-04 12:45                   ` Eric S. Raymond
2008-01-05 14:30                     ` Richard Stallman
2008-01-05 15:29                       ` Eric S. Raymond
2008-01-05 15:59                       ` Andreas Schwab
2008-01-06  2:14                         ` Mike Mattie
2008-01-03  1:08               ` Giorgos Keramidas
2008-01-03  2:56                 ` Eric S. Raymond
2008-01-03  3:18                   ` Giorgos Keramidas
2008-01-04  5:27                 ` Richard Stallman
2008-01-04  8:51                   ` David Kastrup
2008-01-05 14:30                     ` Richard Stallman
2008-01-05 15:28                       ` David Kastrup
2008-01-06 10:46                         ` Richard Stallman
2008-01-06 11:10                           ` David Kastrup
2008-01-07  4:18                             ` Richard Stallman
2008-01-07  4:36                               ` dhruva
2008-01-07  4:52                               ` Sam Steingold
2008-01-07  5:09                                 ` dhruva
2008-01-07  8:17                                 ` David Kastrup
2008-01-07 15:37                                   ` Stefan Monnier
2008-01-07 15:47                                     ` David Kastrup
2008-01-07 16:22                                       ` Stefan Monnier
2008-01-07 17:09                                         ` David Kastrup
2008-01-07 15:40                                 ` CHENG Gao
2008-01-07 23:36                                   ` Stephen J. Turnbull
2008-01-08  4:31                                     ` CHENG Gao
2008-01-08  5:07                                     ` Mike Mattie
2008-01-08  2:56                                   ` Mike Mattie
2008-01-08  9:37                                     ` Andreas Schwab
2008-01-07  5:16                               ` Jason Earl
2008-01-07 17:16                                 ` Richard Stallman
2008-01-07 17:45                                   ` Gregory Collins
2008-01-08 19:07                                     ` Richard Stallman
2008-01-08 19:50                                       ` Miles Bader
2008-01-13 20:06                                       ` Giorgos Keramidas
2008-01-14 11:28                                         ` Richard Stallman
2008-01-07 21:28                                   ` Jason Earl
2008-01-07  8:15                               ` David Kastrup
2008-01-07  8:33                                 ` Giorgos Keramidas
2008-01-07 23:50                                   ` Stephen J. Turnbull
2008-01-05 21:11                       ` Stephen J. Turnbull
2008-01-06 18:08                         ` Richard Stallman
2008-01-07  9:35                       ` Piet van Oostrum
2008-01-01 20:53         ` Nick Roberts
2008-01-02  9:53           ` Richard Stallman
2008-01-02 12:24             ` Eric S. Raymond
2008-01-02 15:19               ` David Kastrup
2008-01-02 20:35                 ` Karl Fogel
2008-01-02 19:19                   ` Andreas Schwab
2008-01-02 19:23                   ` Romain Francoise
2008-01-03  1:18                 ` Giorgos Keramidas
2008-01-03  7:55                   ` David Kastrup
2008-01-02  9:53         ` Richard Stallman
2008-01-02 10:03           ` David Kastrup
2008-01-02 10:05           ` Tassilo Horn
2008-01-02 11:31             ` Alan Mackenzie
2008-01-02 11:28               ` Tassilo Horn
2008-01-02 14:26           ` Óscar Fuentes
2008-01-02 19:48             ` Karl Fogel
2008-01-02 18:43               ` Andreas Schwab
2008-01-02 22:10               ` Alfred M. Szmidt
2008-01-03  2:58                 ` Karl Fogel
2008-01-03  1:21               ` Giorgos Keramidas
2008-01-03  9:14                 ` Andreas Schwab
2008-01-03 10:57                   ` Giorgos Keramidas
2008-01-01 19:37       ` Eric S. Raymond
2008-01-01 21:46         ` Alan Mackenzie
2008-01-01 22:49           ` Eric S. Raymond
2008-01-02 17:05             ` Mark A. Hershberger
2008-01-03  9:49             ` Richard Stallman
2008-01-02  8:35           ` Tassilo Horn
2008-01-02  5:54         ` John S. Yates, Jr.
2008-01-02 11:52           ` Eric S. Raymond
2008-01-03  9:50           ` Richard Stallman
2008-01-02  8:51         ` tomas
2008-01-02  9:53         ` Richard Stallman
2008-01-01 22:01       ` Romain Francoise
2007-12-31 13:11 ` Alan Mackenzie
2007-12-31 13:24   ` Miles Bader
2007-12-31 13:44     ` Alan Mackenzie
2007-12-31 15:45       ` Eric S. Raymond
2007-12-31 15:14     ` Juanma Barranquero
2007-12-31 15:31     ` Eric S. Raymond
2007-12-31 15:25   ` Eric S. Raymond
2008-01-01 20:34     ` Alan Mackenzie
2008-01-01 20:57       ` Eric S. Raymond
2008-01-02  9:53         ` Richard Stallman
2008-01-02 12:29           ` Eric S. Raymond
2008-01-02 12:59             ` dhruva
2008-01-02 13:11               ` Miles Bader
2008-01-02 13:17               ` Tassilo Horn
2008-01-02 13:49                 ` David Kastrup
2008-01-04  5:28                   ` Richard Stallman
2008-01-04  7:03                     ` John S. Yates, Jr.
2008-01-05 14:29                       ` Richard Stallman
2008-01-02 13:48               ` Werner LEMBERG
2008-01-02 13:56                 ` dhruva
2008-01-02 14:55                 ` Eric S. Raymond
2008-01-03  1:13                 ` Giorgos Keramidas
2008-01-02 14:50               ` Eric S. Raymond
2008-01-19 17:45 ` Jari Aalto
2008-01-20  2:59   ` dhruva
2008-01-20  5:10     ` Miles Bader
2008-01-20  5:36       ` Juanma Barranquero
2008-01-20  6:03         ` Miles Bader
2008-01-20 19:28           ` Eli Zaretskii
2008-01-20 20:42             ` Juanma Barranquero
2008-01-20 20:17           ` Juanma Barranquero
2008-01-20 20:28           ` Juanma Barranquero
2008-01-21  2:11             ` Miles Bader
2008-01-21  2:38               ` Karl Fogel
2008-01-21  2:49                 ` Miles Bader
2008-01-21  3:06                   ` Nick Roberts
2008-01-21  3:17                     ` Miles Bader
2008-01-21  3:26                     ` Stephen J. Turnbull
2008-01-21  3:16                   ` Glenn Morris
2008-01-21  4:11                     ` Nick Roberts
2008-01-21 10:00                     ` Thien-Thi Nguyen
2008-01-21  2:41               ` Juanma Barranquero
2008-01-21  3:01               ` Nick Roberts
2008-01-21  9:07   ` Richard Stallman
2008-01-21 15:51     ` Dan Nicolaescu
2008-01-21 17:37       ` Miles Bader
2008-01-21 17:53         ` Tom Tromey
2008-01-21 20:06           ` Stefan Monnier
2008-01-21 19:50             ` Tom Tromey
2008-01-22  0:33         ` Dan Nicolaescu
2008-01-24 14:43     ` Mark A. Hershberger
2008-01-24 15:00       ` Juanma Barranquero
2008-01-24 15:34         ` dhruva
2008-01-24 19:52           ` Stephen J. Turnbull
2008-01-25  0:43             ` Juanma Barranquero
2008-01-25 22:47             ` Richard Stallman
2008-01-25 23:13               ` Alfred M. Szmidt
2008-01-25 23:36                 ` Miles Bader
2008-01-27  0:45                   ` Richard Stallman
2008-01-27 17:39                     ` David Kastrup
2008-01-27 20:06                       ` Nick Roberts
2008-01-27 22:21                         ` David Kastrup
2008-01-27 23:58                         ` Johan Bockgård
2008-01-28  7:17                         ` Richard Stallman
2008-01-28  7:17                         ` Richard Stallman
2008-01-28  7:57                           ` GNU Project [was: Re: What a modern collaboration toolkit looks like] Nick Roberts
2008-01-28 21:32                             ` Richard Stallman
2008-01-28  7:18                       ` What a modern collaboration toolkit looks like Richard Stallman
2008-01-28  7:30                         ` David Kastrup
2008-01-28  9:18                           ` Stephen J. Turnbull
2008-01-28 21:32                           ` Richard Stallman
2008-01-26  1:23                 ` Thomas Lord
  -- strict thread matches above, loose matches on Subject: below --
2008-01-01  3:09 Nick Roberts
2008-01-01  6:24 ` Eric S. Raymond
2008-01-03 20:32 Trey Jackson
2008-01-04  9:46 ` dhruva
2008-01-05 13:36   ` Eli Zaretskii
2008-01-05 15:04     ` dhruva
2008-01-05 15:13       ` Eli Zaretskii
2008-01-06  1:17     ` Miles Bader
2008-01-04 13:43 ` Gianluca Della Vedova
2008-01-05 14:30 ` Richard Stallman
2008-01-06  5:03   ` Trey Jackson
2008-01-06  6:58     ` Nick Roberts
2008-01-07  4:57       ` Trey Jackson
2008-01-07  5:54         ` Nick Roberts
2008-01-06 18:09     ` Richard Stallman
2008-01-07  5:16       ` Trey Jackson
2008-01-07  6:15         ` Nick Roberts
2008-01-07 15:41         ` Stefan Monnier
2008-01-29  5:43 Werner LEMBERG

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=20071230122217.3CA84830B9A@snark.thyrsus.com \
    --to=esr@snark.thyrsus.com \
    --cc=emacs-devel@gnu.org \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).