Quotes For Software Engineers

And at the end of the day the Internet is still all about Software.
    --Marc Andreessen, from an interview in the NY Times, 12/11/2000.

Change in all things is sweet.

The addition of any function not visualized in the original design will inevitably degenerate structure. Repairs also, will tend to cause deviation from structural regularity since, except under conditions of the strictest control, any repair or patch will be made in the simplest and quickest way. No search will be made for a fix that maintains structural integrity
    --Belady and Lehman, Programming System Dynamics or The Metadynamics of Systems in Maintenance and Growth, IBM Research Report RC3546, 1971. Also available in: Program Evolution: Processes of Software Change, Ch. 5, APIC, Studies in Data Processing No. 27, Academic Press, London, page 113, 1985.

[The need to minimize software cost] suggests that large-program structure must not only be created but must also be maintained if decay is to be avoided or postponed. Planning and control of the maintenance and change process should seek to ensure the most cost-effective balance between functional and structural maintenance over the lifetime of the program. Models, methods and tools are required to facilitate achieving such balance.
    --Belady and Lehman, On Understanding Laws, Evolution and Conservation in the Large-Program Life Cycle, J. Systems and Software, 1(3), 1980. Also available in: Program Evolution: Processes of Software Change, Ch. 5, APIC, Studies in Data Processing No. 27, Academic Press, London, page 383, 1985.

I have not failed. I've just found 10,000 ways that won't work.
    --Thomas Edison

Not everything that can be counted counts, and not everything that counts can be counted.
    --Albert Einstein

Imagination is the preview of life's coming attractions.
    --Larry Eisenberg

Beauty rests on necessities.
    --Ralph Waldo Emerson

Most computer technologists don't like to discuss it, but the importance of beauty is a consistent (if sometimes inconspicuous) thread in the software literature. Beauty is more important in computing than anywhere else in technology... Beauty is important in engineering terms because software is so complicated... Beauty is our most reliable guide to achieving software's ultimate goal: to break free of the computer, to break free conceptually. Software is stuff unlike any other... Software's goal is to escape this gravity field, and every key step in software history has been a step away from the computer, toward forgetting about the machine and its physical structure and limitations -- forgetting that it can hold only so many bytes, that its memory is made of fixed size cells, that you refer to each cell by a numerical address. Software needn't accept those rules and limitations. But as we throw off the limits, what guides us? How do we know where to head? Beauty is the best guide we have.
    --David Gelernter, from ``Machine Beauty: Elegance and the Heart of Computing'', Discover 09/97

... many of the great ideas are not precipitated by the customer. While the customer knows what he wants, he doesn't always know what's possible. And that first dawned on me in my earliest days in business. When I was new at IBM, working in sales and taking a management training program in Sleepy Hollow, New York, I came back to my room grumbling about the lack of speed and reliability of the tape drives, and wondered why the engineers couldn't do something about it. My roommate stared at me with a look of total exasperation. "Boy, you guys in sales are all the same," he said. "You remind me of the farmer in 1850. If you asked him what he wanted, he would say he wanted a horse that was half as big and ate half as many oats and was twice as strong. And there would be no discussion of a tractor."
    -- David Kearns, former CEO of Xerox

Life can only be understood backwards, but it must be lived forwards.
    --Soren Kierkegaard

Really productive ideas, like internal combustion and the assembly line, are hard to find. It is no tragedy if we have to make do with second-rate inventions like the personal computer until the next Model T comes along.
    --Paul Krugman (12/12/1996 NY Times Editorial)

Every time you turn on your new car, you're turning on 20 microprocessors. Every time you use an ATM, you're using a computer. Every time I use a settop box or game machine, I'm using a computer. The only computer you don't know how to work is your Microsoft computer, right?
    --Scott McNealy, CEO of Sun Microsystems, Inc., from an April 1997 interview in Upside Magazine
    [Editor: you could probably safely say this about any company's desktop computer]

We must not forget that the wheel is reinvented so often because it is a very good idea; I've learned to worry more about the soundness of ideas that were invented only once.
    -- David L. Parnas (Why Software Jewels are Rare, IEEE Computer, 2/96).

I think that it's extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customer got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don't think we are. I think we're responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun. Above all, I hope we don't become missionaries. Don't feel as if you're Bible salesmen. The world has too many of those already. What you know about computing other people will learn. Don't feel as if the key to successful computing is only in your hands. What's in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.
    --Alan J. Perlis

The name of a Type instance is a Name instance representing the name of the Type; its value may not be a null name....The name of an Instance instance is optional, but where it exists it must not be a null name....An Instance instance with no name is always considered to have a unique name, distinct from any other Instance instance with no name.
    -- Rational UML Document Set, Semantics, Chapter 5.2

Destructors for virtual base classes are executed in the reverse order of their appearance in a depth-first left-to-right traversal of the directed acyclic graph of base classes....
    -- B. Stroustrup, The C++ Programming Language, p. 575

Our inventions are wont to be pretty toys, which distract our attention from serious things. They are but improved means to an unimproved end, an end which it was already but too easy to arrive at; as railroads lead to Boston or New York. We are in great haste to construct a magnetic telegraph from Maine to Texas; but Maine and Texas, it may be, have nothing important to communicate.... As if the main object were to talk fast and not to talk sensibly.     -- Henry David Thoreau, Walden, 1854

Our software structure goes to eleven.
     --Nigel Tufnel, This is Spinal Tap (As told to Robert Bowdidge)

Programmer's Drinking Song (sung to the tune of ``100 Bottles of Beer'':
   99 little bugs in the code,
   99 bugs in the code,
   fix one bug, compile it again,
   101 little bugs in the code.
   101 little bugs in the code....
(Repeat until BUGS = 0)     -- Anonymous

Brian Russell's Laws of Software Relativity (cf. Belady and Lehman's Laws of Software Evolution)
  1. As a software project approaches release, its mass increases.
  2. The energy required to release a software project is inversely proportional to the time before a scheduled release.
  3. It takes infinite energy to release a finished product on time; therefore, all software projects are both incomplete and late.
  4. Time is relative to the observer of a software project. The last month of development appears to an outside observer to take a year.
  5. If a software project becomes too large, it will collapse into a black hole. Time and money are absorbed but nothing ever comes out.
    -- Usenet post

Back to Software Evolution Lab Homepage