On the Contributions of Reuse Research and Development to the State-of-the-Practice in Reuse

Jeffrey S. Poulin, Lockheed Martin Federal Systems, Owego, NY

Reuse Research and Development (R&D) has had a positive affect on many practical problems faced by industry. Early work on library methods gave the field a focus, and allowed it to grow. More recently, research on reuse practices, organizations, domain analysis techniques, and metrics have found a place in the daily routine of large industrial development organizations [Poulin97]. Techniques such as object-orientation and software architectures often rely on software reuse as a unifying goal or objective. Finally, technologies such as visual programming languages (e.g., Visual Basic (VB)) provide a natural medium for developers to unconsciously practice reuse. As Ed Yourdon observes, "the real benefit of languages such as VB/Powerbuilder may be software reuse rather than the visual paradigm" [Yourdon96].

I would like to expand on the dynamic relationship between R&D, large-scale software development, and software reuse. We know that new technologies often take a very long time before they move from R&D into general acceptance and practice. During this time, our perceptions and expectations with respect to the technology often change dramatically.

A Growing Need for Technology "Experts"

The world's appetite for software seems to have no bounds. This need for software eventually will (if it has not already) outgrow our development abilities. Meeting this "software crisis" will require a far more radical change in our approach to software development than anything we have conceived of to date. However, I see us meeting this challenge in much the same way as the world met another radical technology, the telephone.

In 1876 Alexander Graham Bell filed for and obtained a patent for his version of the telephone. Seizing upon the opportunity to promote his new invention, Bell introduced the telephone to the world later that year at the Centennial Exhibition in Philadelphia. Bell's telephone immediately became the talk of the international scientific community and one of the most amazing things in America. Within a year of the centennial exhibition, Bell had installed 230 phones and had established the Bell Telephone Company. Four years after its creation, 60,000 phones existed; by the turn of the century that increased to two million.

Despite its novelty and its rudimentary audio quality, the telephone took a quick and fierce hold on American society. Within 25 years (about the same time it took for computers to move from the raised floors of a few select corporations to the desktop) the telephone became a necessity. However, people needed to work through a switchboard operator in order to place a call. This meant that with the explosive growth of the telephone came an explosive growth in the need for operators. By 1910, New York Telephone had 6,000 women working on its switchboards. Projections showed that if the growth in telephone use continued, a significant portion of the population would have to become operators in order to keep up with the enormous number of calls. The telephone company avoided this crisis by assigning everyone a phone number and fielding the rotary-dial phone. This meant that everyone essentially became an operator.

The computer, like the telephone, has brought a radical change to way the world conducts its business. However, computers have traditionally required highly technical training to operate and program. With nearly everyone demanding specialized software and custom applications, the world will soon find itself hopelessly short of people with this technical training. I predict that we will address this crisis much as we did with telephone operators. In short, we will make programming computers accessible to everyone, whether or not they have a technical background. Our challenge comes in developing the technologies to make this possible.

Everyone Becomes a Programmer

Many technologies have progressively made programming more accessible to the computer novice; a couple of these deserve mention. The designers of COBOL intended to make a language in which "managers could program, too." The spreadsheet allowed financial analysts to "write" their own programs to do what they used to do with pencils and budget sheets. Visual languages gave computer novices the ability to quickly build useful applications with tools on their personal computers. The World-Wide-Web (WWW) has helped make the computer more accessible to everyone, and in so doing provided non-threatening opportunities to do simple programming.

Not surprisingly, the WWW helped popularize the notion of everyone becoming a programmer. Before the advent of what-you-see-is-what-you-get (WYSIWYG) editors for WWW pages, people who wanted to truly experience the WWW had to create their own pages using HyperText Markup Language (HTML). However, WWW pages can do much more than simply present information; they can interface with other applications and with computers all over the world. People who had never programmed soon found themselves authoring simple Common Gateway Interface (CGI) scripts so that they could launch their favorite programs from HTML. Even those that missed the CGI experience now find themselves using JavaScript, if for no other reason than they want to jazz up their pages with bells and whistles that they discovered while surfing the Internet.

I predict that this trend will continue and must continue. Why? Because the world cannot meet its own demand for software unless we make programming so easy that everyone can do it without even knowing that they have "written a program." The technologies that we create today will eventually allow us to do things that currently require the services of professional software developers; many of these technologies will come from the R&D and experiences of the software reuse community.

References

[Poulin97] Poulin, Jeffrey S., Measuring Software Reuse: Principles, Practices, and Economic Models. Addison-Wesley (ISBN 0-201-63413-9), Reading, MA, 1997.

[Simon97] Simon, Kirk, and Karen Goodman, "The Telephone," The American Experience Series, WGBH/Boston and the Corporation for Public Broadcasting, 1997, http://www.pbs.org/wgbh/pages/amex/technology/telephone/abprogram.html.

[Yourdon96] Yourdon, Ed, "Lipstick on a Pig or a Real Silver Bullet?," American Programmer, Vol. 9, No. 11, November 1996, pp. 25-29.