Software Reuse
Volume Number: 9
Issue Number: 12
Column Tag: Inside Information
The “Re” Decade
Out with the old, in with the new
By Chris Espinosa, Apple Computer, Inc., MacTech Magazine Regular
Contributing Author
In 1982 I was working in the Macintosh group at Apple, managing the team that
was preparing the original technical and user documentation for the intro in 1984. I
spent a lot of time with Creative Services (for those who don’t speak Applese, that’s
the art department). At that point in history Apple’s graphic design was on the cutting
edge in the design community, at the point in American history where New Wave
Graphics were sliding slowly into the Yuppie era. The Macintosh design team was
acutely aware of this, and pushed the design ethic of Macintosh into the public
consciousness, with lots of white space, the characteristic Garamond typeface, and
Windham Hill music. When you opened the box, you could almost smell the sushi.
I realized that there was something very important about being in synch with a
social trend. The Macintosh became one of the key symbols of mid-Eighties Yuppiedom,
and doubtless a lot of its popularity came from the fact that it embodied the spiritual
values of the times-it was high tech but soft tech; it was more expensive than
alternatives; and it was from a small upstart company challenging the establishment
on its own turf. The reverberations of those values have carried the Macintosh ethos
nearly ten years, into a different era.
And it’s clearly a different era in the Nineties. Price doesn’t impute value like it
did ten years ago. More of the general public are computer literate; more of the
computer literate are computer experts, and make more sophisticated buying
decisions. Most importantly, the continuing recession, environmental awareness, and
a bad hangover from the eighties excesses has brought in a new ethic, based on
frugality, common sense, and the making of hard choices now for benefits far in the
future.
You can see this ethic in the Nineties mantra of “reduce, reuse, recycle.” Make
do with less. Don’t throw it away; be clever about adapting things to new uses. And
when you can, remanufacture old products into new ones. In public life, we talk about
reengineering corporations, reinventing government, and repaying the defecit. It’s as
if the “me decade” has turned into the “re decade.”
I’m convinced that the re-ethic that’s cresting over society will affect software
design, and that the people who surf the reengineering-and-reuse wave will travel the
farthest. When you look at the technologies of object-oriented programming, visual
applications design, and cross-platform development, they’re all directed at something
broader than using technology to make development faster or whizzier. They’re
fundamentally changing the ethos of programming from conspicuous code consumption
to frugal, common-sense use of resources over and over.
To software designers, this new ethos gives some guidance to what customers will
want to purchase in the coming years, and how they’ll purchase it. To tools designers,
it gives inspiration to new categories of architectures and tools that software designers
can use to reinvent the process of developing products.
Start with the basics: reducing waste. Up to a couple of years ago, the value of
starting from scratch - for example, to jump from DOS to Mac or Windows - was
greater than the value of retaining your investment in old code. But as programs get
larger and more expensive to maintain, it’s increasingly important to be able to take
advantage of new hardware or OS features with no changes. Apple’s transition to the
PowerPC is a huge shift, the kind that previously would have forced tens of millions of
dollars worth of rework just to run on the new machine. But with the bug-for-bug
compatable emulation built into the upcoming PowerPC models, and the C
environments from Apple, Symantec, and others, we’re trying to deliver basic benefits
with no work, and great benefits with a straightforward port.
Next, reuse: being able to write code once and use it again and again. Frameworks
like MacApp and Bedrock foster reuse in two ways: they let many developers reuse code
provided in the framework, and they let you write class libraries that you can bind
into several applications. Good developers encapsulate the worth of their company into
a few solid class libraries, with clean and abstract interfaces and killer
implementations, and base a family of products on the same core technology.
Finally, recycling and reengineering. The people who will succeed in the Re
Decade will be the ones who will take their products the closest to the customer as
possible, so that users can dynamically change the solutions to their problems as
conditions change. Unlike the Eighties when a “killer app” was mass-produced and
upgraded every year or so, the killer apps of the Nineties will be unique to the
situation and reengineered constantly. The most valuable products will be flexible,
reusable parts and efficient, clear tools to combine them. The OpenDoc architecture
being assembled by Apple, Novell, IBM, Word Perfect, Lotus, Taligent, and others
should provide you a unique opportunity to create the parts and tools that customers
will use to constantly reengineer their solutions.
It’s hard to tell how long an ethos will last. It’s possible that in a couple of
years, an economic recovery and some unforseen technical innovation will take us back
to the wild days when code was write-once and disposable, and customers would
happily pay for painful upgrades just to have the latest version. But somehow I don’t
think so. There’s a series of ads (for a whiskey, I think) where each shows a fashion
item in a cycle of styles from the 50s through the 90s, with the modern style somehow
wierdly the same as the 50s one. The tagline is “You always return to the basics.” I
think the ideas of reducing waste, reusing good work, and recycling valuable tools close
to the customer are the kinds of ideas that endure.