Mostly Software Engineering Quotes

Practice is the best of all instructors.


"The good news about computers is that they do what you tell them to do. The bad news is that they do what you tell them to do." -- Ted Nelson

You should use iterative development only on projects that you want to succeed.

Martin Fowler

When ideas fail, words come in very handy.

Johann Wolfgang von Goethe

Fast, Cheap, Good: Choose any two.


Its all very well in practice, but it will never work in theory.

anonymous management maxim

Few things are harder to put up with than a good example.

Mark Twain

In theory, there is no difference between theory and practice. But, in practice, there is.

Jan L.A. van de Snepscheut

Hardware, n.: The parts of a computer system that can be kicked.


0x2B | ~0x2B


Understanding responsibilities is key to good object-oriented design.

Martin Fowler

To invent, you need a good imagination and a pile of junk.

Thomas Edison

Beware of bugs in the above code; I have only proved it correct, not tried it.

Donald Knuth

Logic is the art of going wrong with confidence.

Joseph Wood Krutch

Experience is that marvelous thing that enables you to recognize a mistake when you make it again.

F. P. Jones

Any sufficiently advanced bug is indistinguishable from a feature.

Rich Kulawiec

Luck is the residue of design.

Branch Rickey

Prediction is very difficult, especially if its about the future.


We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil

Donald Knuth

Adding manpower to a late software project makes it later!

Fred Brooks

The best way to get a project done faster is to start sooner

Jim Highsmith

How does a project get to be a year late?... One day at a time.

Fred Brooks

The bearing of a child takes nine months, no matter how many women are assigned. Many software tasks have this characteristic because of the sequential nature of debugging.

Fred Brooks

Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away

Antoine de Saint-Exupery

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

Martin Fowler

Program testing can be used to show the presence of bugs, but never to show their absence!

Edsger Dijkstra

The belief that complex systems require armies of designers and programmers is wrong. A system that is not understood in its entirety, or at least to a significant degree of detail by a single individual, should probably not be built.

Niklaus Wirth

A primary cause of complexity is that software vendors uncritically adopt almost any feature that users want.

Niklaus Wirth

Good code is its own best documentation. As you’re about to add a comment, ask yourself, ‘How can I improve the code so that this comment isn’t needed?’ Improve the code and then document it to make it even clearer.

Steve McConnell

Its OK to figure out murder mysteries, but you shouldn't need to figure out code. You should be able to read it.

Steve McConnell

It is better to wait for a productive programmer to become available than it is to wait for the first available programmer to become productive.

Steve McConnell

Before software can be reusable it first has to be usable.

Ralph Johnson

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.

C.A.R. Hoare

You cannot teach beginners top-down programming, because they do not know which end is up.

C.A.R. Hoare

Why do we never have time to do it right, but always have time to do it over?.


Good judgment comes from experience, and experience comes from bad judgment.

Frederick P. Brooks

Simple things should be simple, complex things should be possible.

The Wiki Way: Quick Collaborate

Simplicity is the soul of efficiency.

Austin Freeman

Correctness is clearly the prime quality. If a system does not do what it is supposed to do, then everything else about it matters little.

Bertrand Meyer

One principle problem of educating software engineers is that they will not use a new method until they believe it works and, more importantly, that they will not believe the method will work until they see it for themselves.

Humphrey - W.S.-The Personal S

I have always found that plans are useless, but planning is indispensable.

Dwight Eisenhower

The perfect project plan is possible if one first documents a list of all the unknowns.

Bill Langley

Always code as if the person who ends up maintaining your code will be a violent psychopath who knows where you live.


Every big computing disaster has come from taking too many ideas and putting them in one place.

Gordon Bell

Conceptual integrity is the most important consideration in system design.

Fred Brooks-The Mythical Man-M

Testing is the process of comparing the invisible to the ambiguous, so as to avoid the unthinkable happening to the anonymous.

James Bach

We try to solve the problem by rushing through the design process so that enough time is left at the end of the project to uncover the errors that were made because we rushed through the design process

Glenford Myers

Programs should be written and polished until they acquire publication quality.

Niklaus Wirth

Wirth's law: Software gets slower faster than hardware gets faster.

Niklaus Wirth

Testing by itself does not improve software quality. Test results are an indicator of quality, but in and of themselves, they do not improve it. Trying to improve software quality by increasing the amount of testing is like trying to lose weight by weighing yourself more often. What you eat before you step onto the scale determines how much you will weigh, and the software development techniques you use determine how many errors testing will find. If you want to lose weight, do not buy a new scale; change your diet. If you want to improve your software, do not test more; develop better.

Steve McConnell

Good visual layout shows the logical structure of a program.

Steve McConnell

Even when you have skilled, motivated, hard-working people, the wrong team structure can undercut their efforts instead of catapulting them to success. A poor team structure can increase development time, reduce quality, damage morale, increase turnover, and ultimately lead to project cancellation.

Steve McConnell

In software, the chain isn not as strong as its weakest link; it is as weak as all the weak links multiplied together.

Steve McConnell

The most important single aspect of software development is to be clear about what you are trying to build.

Bjarne Stroustrup

Don not document bad code -- rewrite it.

Kernighan and Plauger

Adding last-minute features, whether in response to competitive pressure, as a developer s pet feature, or on the whim of management, causes more bugs in software than almost anything else.

John Robbins

Measuring programming progress by lines of code is like measuring aircraft building progress by weight.

Bill Gates

Copy and paste is a design error.

David Parnas

Any code of your own that you have not looked at for six or more months might as well have been written by someone else.

Eagleson's law

Incorrect documentation is often worse than no documentation.

Bertrand Meyer

It\'s not at all important to get it right the first time. It\'s vitally important to get it right the last time.

Andrew Hunt and David Thomas

There\'s an old story about the person who wished his computer were as easy to use as his telephone. That wish has come true, since I no longer know how to use my telephone.

Bjarne Stroustrup

UNIX is simple. It just takes a genius to understand its simplicity

Dennis Ritchie

When someone says, "I want a programming language in which I need only say what I want done" give him a lollipop.

Alan Perlis


The software is done.

We are just trying to get it to work.

-Statement made in a Joint STA

I am a slow walker but I never walk backwards

Abraham Lincoln

The road success is always under construction


There is nothing like a dream to create the future

Victor Hugo

A programmer’s job is to communicate with other programmers, not just a machine. Programming, then, is a human task done by humans for humans. It does not need to be an escape from a society. It can be a means of connecting. Oh, and writing good code at the same time


C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows your whole leg off.


If you think good architecture is expensive, try bad architecture.

Brian Foote and Joseph Yoder

A clever person solves a problem. A wise person avoids it.


If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization

Gerald Weinberg

A good way to stay flexible is to write less code

Pragmatic Programmer

Documentation is the castor oil of programming. Managers think it is good for programmers and programmers hate it!.

Gerald Weinberg

If Java had true garbage collection, most programs would delete themselves upon execution


In a room full of top software designers, if two agree on the same thing, that\'s a majority

Bill Curtis

If at first you don't succeed, call it version 1.0

Pat Rice

One: demonstrations always crash. And two: the probability of them crashing goes up exponentially with the number of people watching.

Steve Jobs

I think there is a world market for maybe five computers.

Thomas Watson, Chairman of IBM

9 women CANNOT make a baby in ONE MONTH.

Fred Brooks

Abraham Lincoln reportedly said that, given eight hours to chop down a tree, he’d spend six sharpening his axe.

TidBITS 654, quoted by Derek K

The significant problems we face cannot be solved by the same level of thinking that created them.

Albert Einstein

It is not enough to do your best: you must KNOW what to do, and THEN do your best.

W.Edwards Deming

Walking on water and developing software from a specification are easy if both are frozen.

Edward V Berard

A good programmer is someone who always looks both ways before crossing a one-way street.

Doug Linder

If debugging is the process of removing software bugs, then programming must be the process of putting them in.

Edsger Dijkstra

Software is not complete.. until the last user is dead...


First, solve the problem. Then, write the code.

John Johnson