Keynote: |
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.