My
email this morning is clogged with discussion about whether communication
networks should be intelligent or dumb. Dumb
seems to be winning. Of course most
of the participants view themselves as being at the periphery of the network,
where they argue the intelligence should be located.
Nobody wants to be the designer or owner of the "dumb" portion.
As
engineers we are schooled to provide solutions that are optimized and
intelligent. No test question ever
asks you to give a sub-optimum, dumb solution to the problem at hand.
Yet, curiously, in real life being dumb is often the best approach in the
long run. Time has a way of turning
today's intelligence into tomorrow's bottleneck.
As the computer scientist Christopher Strachey once said, "It is
impossible to foresee the consequences of being clever."
Ah,
cleverness! We seek it, and we
engineers are so proud of our clever solutions. Hank the programmer comes home one evening elated with a
small success. When his wife asks
what he did at work, he explains how he was able to save two bytes of memory by
truncating the year to only the last two digits.
"Memory is expensive stuff," he tells her.
"Just imagine all the savings if every program uses only half as
much memory to express the year." He
is proud of himself then, but as the year 2000 approaches, Hank cannot be found.
No one confesses to being Hank.
I
wonder how many of you, like me, have done some really clever programming trick,
and have felt the flush of pride that you were so smart to have thought of that.
Then a year or so later, having to modify the program, you can't remember
or reconstruct what it was you did. And
the clever thing, whatever it was, seems to be tangling everything up.
I
don't know what engineer first conceived of the idea of putting loading coils
into access lines for telephony. This
was a triumph of early circuit theory. The
inductance of the coil canceled the capacitance of the line, leading to a
flatter transmission passband. But
now that we need the whole band those loading coils have to be tracked
down like escaped criminals at great cost and bother.
The engineer responsible would be tracked down and jailed too, if anyone
could find him.
Other
people found clever ways to steal bits from the speech signal, or to take
advantage of the special characteristics of speech. Saved money at the time, and a lot of people felt good about
their work, got raises and promotions, and ended up running their world -- a
world hobbled and unprepared for the coming onslaught of data.
Imagine,
though, coming home at night after a mindless day's work of conformity.
"Well," you explain to your spouse, "I designed this
really dumb widget. Basically, I just copied stuff from a standard, and it
doesn't do anything special."
Imagine,
too, the subsequent performance review with your boss.
"Jones, this design of yours is really dumb, and shows an amazing
lack of foresight."
Not
exactly sure how to take this, you mumble, "Uh, thank you, sir."
The
words themselves are heavy with import. "Dumb"
is bad. "Intelligent" is
good. On the other hand,
"clever" has certain overtones. We
feel pride when we think of ourselves as clever, but aren't so happy when we
hear ourselves being described as "a clever person."
"Clever" seems to go too far; as if there is a nuance of
scheming. Perhaps the same thing
holds true in technology. Although
we seek to be clever, its actual realization often has consequences akin to that
of scheming.
From
time to time manufacturers try to make being dumb a virtue.
I remember particularly the fleeting popularity of the "dumb"
terminal, which reached its apogee in the time-shared computer era.
For a brief moment, owning a blue terminal, heavily advertised as being
as dumb as you could get, was the thing to do.
Now, of course, as a similar idea is being resurrected with the so-called
NC (network computer), no one calls it dumb.
That would be a dumb idea. The
implication, and perhaps the truth, is that you have ceded the intelligence and
control to others. That may or may
not be a good thing -- it just doesn't sound good.
The
issue of the location of intelligence has a lot to do with ownership, control,
and innovation. The real virtue of
a dumb network -- of which Internet is the prototypical example -- is that it
allows other people to innovate. This
is a great advantage if you belong to the "other people," but may not
seem so compelling if you are the network owner yourself.
The network owners argue in the classical tradition of engineers that
putting intelligence inside the network, where it can be cost shared, is the
most efficient design.
Centralization
may indeed be the optimum design. If
this were a college test, it would be the right answer.
But in real life there are a couple of difficulties.
First, there is the assumption that you know in advance what will be
needed, or are able to respond quickly enough to changes in technology and
applications. The other flaw is the
disproportionate power and flexibility of the periphery.
There are a lot more "other people" than there are network
people. Therefore, more money and
more innovation exist at the periphery. Internet
has shown how that power can be unleashed, so long as it isn't inhibited by
inherent limitations in network functionality.
The
arguments are more complex and less one-sided than I am able to convey here.
For now I am just concerned about the rules of life and engineering, the
fragility of cleverness, and the motivations that cause us to be ashamed of dumb
solutions.
When
I get home tonight, I'll tell my wife that I wrote this really clever column.
But perhaps in a few years I'll have to disown it.
Hopefully some of my dumber columns, and there are many to choose from,
will live on.
Robert W. Lucky