W3C home > Mailing lists > Public > www-ws-arch@w3.org > February 2002

Simplicity and related design principles (was RE: Strawman list of goals for WSAWG)

From: Champion, Mike <Mike.Champion@SoftwareAG-USA.com>
Date: Thu, 14 Feb 2002 20:08:33 -0500
Message-ID: <9A4FC925410C024792B85198DF1E97E402844F23@usmsg03.sagus.com>
To: www-ws-arch@w3.org


> -----Original Message-----
> From: Vinoski, Stephen [mailto:steve.vinoski@iona.com]
> Sent: Thursday, February 14, 2002 5:03 PM
> To: Austin, Daniel; www-ws-arch@w3.org
> Cc: Carroll, Tom
> Subject: RE: Strawman list of goals for WSAWG
> 
> 
> One of the goals (AG005) mentions simplicity and ease of use, but I
> don't believe those are necessarily architectural qualities 
> but instead
> are implementation qualities. I have seen complicated architectures
> implemented in simple and easy-to-use products, and I have seen simple
> architectures implemented in cumbersome and hard-to-use products. Have
> AG005 as an architectural goal is also impossible to measure. 
> I suggest we eliminate it.

There was a long (inconclusive?) thread on the TAG list about this.  See
http://lists.w3.org/Archives/Public/www-tag/2002Jan/0000.html  Tim Bray
says:

'However one may choose to characterize the architecture of the
web, there is universal agreement that qualitatively speaking,
it's pretty simple.

It's my opinion that this simplicity is one of the reasons it
has worked to date.  Further, that this simplicity needs
to be defended actively, since there are active pressures in
the direction of complexity creep.  The pressures range widely,
from vendors wanting to reduce the semantic gap between the Web
and their complex, overgrown data access protocols, to simple
facts of life such as large working groups.

Trouble is, simplicity is not quantifiable so it's hard to
write rules.  But I think the Web and the W3C would both have
been well-served if at a couple of points in recent years
some voice could have spoken ex cathedra saying "This is
too complicated.  Go back and throw some of it away or find
another way to fix the problem." '

The sense on that list seemed to be the same as several replies here:
simplicity is difficult to measure, but worth keeping as a goal (or design
principle, or something).  I for one strongly agree with Tim's position --
we we should actively defend the simplicity of the web (or "services web");
we may be given the opportunity to say "go back and throw some of it away"
and we should take it.

A couple of related design principles worth keeping in mind are:

"conceptual integrity"  -- the principle that anywhere you look in your
system, you can tell that the design is part of the same overall design.
This is not necessarily "simplicity", but in practice the re-useable design
components are likely to be fairly simple.  

"Occam's razor" -- the principle that additional components are not to be
added unless there is a compelling need, or perhaps "if given a choice
between two designs that meet the essential requirements equally well,
choose the simpler".

Finally, this is not exactly unexplored territory in software engineering;
my memory is a bit fuzzy on the details, but there are a number of software
metrics that basically count the number of nodes and links among them in a
design or program, then weight them in various ways. I'm not suggesting that
we research the state of the art and apply these formally, but there *are*
ways to measure complexity if we really need to.
Received on Thursday, 14 February 2002 20:08:36 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:24:54 GMT