Subject: Control of collaborative development projects?
From: "L. Peter Deutsch" <ghost@aladdin.com>
Date: Mon, 8 Dec 97 11:15 PST

> Okay, but how much work does it have to be to control the project?  Might it
> be possible that the project manager can write the APIs between various
> components?  It probably takes quite a bit of skill and experience to write
> APIs, but how much actual time has to be spent doing it?

This is a thought-provoking application of the dictum "The structure of a
program mirrors the structure of the organization that created it."  It
never occurred to me before that there was a relationship between the
technical properties of a piece of software and its suitability for
distributed evolution, but now that you've mentioned it, it seems obvious.
(In fact, it should have been obvious to me long since: >95% of the code
contributed to Ghostscript is device drivers, which interface to the rest of
the code through the one really well-documented and stably
backward-compatible API.)

In answer to your question, I've believed for decades that the APIs, not the
individual routines or even data structures, are the hardest and most
important part of a software system design, and require the most skill and
experience to specify in a way that won't break as the system evolves.

> Is it even possible to "stone soup" a big project, by writing some stub
> code, and releasing it to the world?

That might be a good way to collect ideas, but I think managed control of
the structure (as opposed to the individual routines or whatever) would be
required pretty early if the result wasn't going to be a mess.

-- 

L. Peter Deutsch         |       Aladdin Enterprises :::: ghost@aladdin.com
203 Santa Margarita Ave. | tel. +1-650-322-0103 (AM only); fax +1-650-322-1734
Menlo Park, CA 94025     |        http://www.cs.wisc.edu/~ghost/index.html
*Oppose bulk-mail abuse of your mailbox and newsgroups: http://spam.abuse.net*