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,
- 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
--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
--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.
- Not everything that can be counted counts, and not everything that counts can be counted.
- Imagination is the preview of life's coming attractions.
- 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.
- 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
--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
-- 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)
- Brian Russell's Laws of Software Relativity (cf. Belady and Lehman's Laws of Software Evolution)
-- Usenet post
- As a software project approaches release, its mass increases.
- The energy required to release a software project is inversely
proportional to the time before a scheduled release.
- It takes infinite energy to release a finished product on time;
therefore, all software projects are both incomplete and late.
- Time is relative to the observer of a software project. The last
month of development appears to an outside observer to take a year.
- If a software project becomes too large, it will collapse into a
black hole. Time and money are absorbed but nothing ever comes out.
Back to Software Evolution Lab Homepage