On working with existing systems

From: Eric Armstrong (eric.armstrong@eng.sun.com)
Date: Fri Aug 25 2000 - 20:08:54 PDT

I just had a small realization, and I thought I'd share
the observations that led to it.

It seems to that a lot of people who come out with new
systems try to include import functions so that they
can data from other systems into theirs.

But you know what? The success of the system is hardly
ever determined by your ability to read other people's
data. The success is determined by what the system can

Now, if it is successful, crowds of users may demand
import capabilities. If so, it makes sense to deliver
it. On the other hand, all the effort that goes into
designing legacy-compatibility *at the outset* (note
the stress) is time that takes away from the real
success-proposition: the system functionality.

Finally, to explain that stress on "at the outset",
let me make it clear that future compatibility with
one's *own* system is an absolute requirement. Oracle
made it big by protecting people's investment in their
data, so that old databases were directly usable 90%
of the time when an upgrade came out. And the other
10% of the time, the conversion was totally automated!

Once people put information into the system, the
system has to honor that effort. It has to protect
and preserve that data by whatever means necessary,
defending it against file corruption, hardware failures,
and software failures.

But making it interact with old systems? No. That is
the hallmark of all the "first tier" technologies that
never go anywhere. In the hardware world, every 4 or
5 years a new processor came out, and for the first
year there was always a few companies selling computers
with both chips. Those systems always sold like the
turkeys they were, and in 12 months the only players
left standing were the ones with systems designed around
the new chip -- if it was any good.

There are major new technologies available today that
we can design the system around. Working to achieve
legacy-system compatibility (at this early stage) only
hamstrings the design, siphons away energy that could
be devoted to increasing functionality, and has only
dubious value with respect to increasing the system's

This archive was generated by hypermail 2.0.0 : Tue Aug 21 2001 - 17:57:53 PDT