Keynote:
Simplicity
A Way Out of the Chasm


Mary E.S. Loomis
Hewlett-Packard Laboratories, Palo Alto CA
loomis@hpl.hp.com and maryloomis@aol.com

Abstract

In spite of the valiant efforts of countless software researchers, there remains a very large gap between their research results and practice. The problem is not that there aren't enough practitioners to adopt the flow of technology. Quite the opposite; we have many more people on the planet designing and writing software than we have researchers on the topic. The problem is one of technology transfer and adoption of the researchers' ideas. In my opinion, the root of the problem is complexity. Researchers' ideas are presented with too much ceremony and too much jargon, and the ideas and techniques themselves are too complex. It's simply too hard for practicing software practitioners to use the researchers' contributions.

Practitioners are looking for simple, straightforward ways to make their lives easier. They want to develop better code faster. By contrast, many of the ideas offered by researchers at least appear to make the practitioner's life more complex, not simpler. The tradeoff between adopting a more complex approach to something you're already doing at least acceptably well and continuing with the status quo is obvious; complexity loses. We all know of examples where the simpler approach beats the more complex, witness the groundswell of enthusiasm for Java vs. C++, the adoption rates of Windows vs. Unix, the acceptance of wizards vs. objects, and so forth.

It's easy to argue that software engineering is stuck in the chasm, which is a stage in the adoption profile of technologies. There's a huge gap between the expectations of the early adopters of technologies and the expectations of mainstream users. Researchers are definitely in the early adopter camp; the great bulk of software practitioners are on the other side of the chasm. Most research results fall into the chasm. This is the reason that it's so very hard for the researchers' ideas to have any impact on the typical software practitioner. In my opinion, one of the important ways out of the chasm is simplicity.