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" ( ). 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.