Re: Re: software design clarification

Nathaniel Smith <[email protected]> Sun, 13 May 2007 22:54:44 -0700
Newsgroups gmane.comp.documentation.synopsis
Message-ID <[email protected]>
On Sun, May 13, 2007 at 08:11:54PM +0200, Markus Elfring wrote:
> 
> >You haven't discussed the "Synopsis class library" yet. Neither the 
> >existing
> >API, nor any changes you suggest. So how could anybody be able to form an
> >idea about that ?
> 
> I see this as an ordinary way for software developers. A design 
> selection will be considered which will be implemented in classes and 
> aspects for the target programming languages.

Ah.  That's a wide-spread belief, but experience has shown that this
is a very bad way to develop software in practice.  The most
successful projects work by focusing on concrete use cases, developing
minimal solutions to achieve those use cases (by whatever means
necessary), and iterating.  (That FOSS programmers have generally
learned this lesson is one of the reasons why FOSS tends to be of
higher quality than proprietary software.)

It's not a new idea, though; you should read, for instance:
  http://www.tjinc.com/Drexel/ISYS425/Docs/05-Broo87.pdf
  http://www.cs.unc.edu/%7Ebrooks/Toolsmith-CACM.pdf
  http://c2.com/cgi/wiki?BigDesignUpFront
  http://c2.com/cgi/wiki?DoTheSimplestThingThatCouldPossiblyWork
  http://c2.com/cgi/wiki?IncrementalDelivery
Heck, pretty much all of this:
  http://c2.com/cgi/wiki?CategoryExtremeProgramming

Of course, there's much more in this area, but that should be enough
to get you started.

-- Nathaniel

-- 
So let us espouse a less contested notion of truth and falsehood, even
if it is philosophically debatable (if we listen to philosophers, we
must debate everything, and there would be no end to the discussion).
  -- Serendipities, Umberto Eco