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 dont speak Applese, thats the art department). At that point in history Apples 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 its clearly a different era in the Nineties. Price doesnt 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. Dont 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. Its as if the me decade has turned into the re decade.
Im convinced that the re-ethic thats 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, theyre all directed at something broader than using technology to make development faster or whizzier. Theyre 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 theyll 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, its increasingly important to be able to take advantage of new hardware or OS features with no changes. Apples 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, were 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.
Its hard to tell how long an ethos will last. Its 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 dont think so. Theres 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.