The following text is copyright 1998 by
Network World, permission is hearby given for reproduction, as long as
attribution is given and this notice is included.
Complexity as a weapon
By Scott Bradner
For years I've lamented
the growing perceived and actual complexity of things. The engine compartment
and the dashboard of my 1998 Dodge Caravan are a far cry from the ones in my
1917 American LaFrance or even in the late 1970's Ford van I once owned. In spite
of this, operating the Caravan is actually easier than operating the LaFrance
or the Ford. The operation is simple in spite of the underlying complexity.
That does not mean that the underlying complexity is not a worry - I used to be
able to repair the engine on the Ford but did not even bother to get the
detailed owner's manuals for the Caravan.
Sometimes there seems to
be no reason for the level of complexity. One of the most common and
frustrating examples of this is setting the time on a VCR. The vendors seem to
go to great lengths to ensure that the majority of VCRs will blink 12:00
whenever they are powered up. In the past I've assigned the blame for this to
engineers with no human factors training doing interface design. But in some
cases there may be more to it than that. It seems some people may be plotting
to make some systems more complex as part of a somewhat Machiavellian business
strategy.
Two weeks ago someone in
Microsoft leaked an internal document discussing possible strategies that Microsoft
could use to counteract the push by some organizations and companies to an open
source software (OSS) model of software development. An annotated version of
the memo has now been posted on the web under the somewhat pejorative name
"the Halloween Document" ( http://www.opensource.org/halloween1.html ). Most of the document
discusses assertions that Microsoft could make to blunt the appeal of the open
source process used by many Internet developers including Netscape, the Open
Software Foundation and Linux. But a small section mentions a danger in simple
systems.
The memo says "OSS
projects have been able to gain a foothold in many server applications because
of the wide utility of highly commoditized, simple protocols. By extending
these protocols and developing new protocols, we can deny OSS projects entry
into the market."
This is scary, not
because it is a Microsoft person saying this, but because it could explain all
too much of what we are now seeing in the standards development world. More of
the standards proposals we are seeing are far more complex than the problem
would seem to require.
Once upon a time
simplicity was a design goal for IETF protocols, best expressed in RFC 1958 "Architectural Principles of the
Internet", "Keep it simple. When in doubt during design, choose the
simplest solution." We now seem to have purposeful complexity, designed to
make it hard for small organizations or individuals to implement the protocols.
This is not a good thing.
David Isenberg, the
author of "The Stupid Network", asked me the other day "How many
IETF working groups are trying to make the net simpler?" The only working
group I could point to was diffserv. Its time to get simplicity back as a
design goal.
disclsimer: Harvard's
organization is anything but simple so the above must be my own thoughts.