Skip to content

Instantly share code, notes, and snippets.

@nelsonic
Forked from scottashipp/softwareengineering
Created September 30, 2019 11:52
Show Gist options
  • Save nelsonic/630e8519437fdd83424e6319d8e705b3 to your computer and use it in GitHub Desktop.
Save nelsonic/630e8519437fdd83424e6319d8e705b3 to your computer and use it in GitHub Desktop.
Software Engineering Quotes for fortune
%
Simple things should be simple, complex things should be possible.
The Wiki Way: Quick Collaboration on the Web, Bo Leuf, Ward
Cunningham
%
Simplicity is the soul of efficiency.
Austin Freeman
%
I have yet to see any problem, however complicated, which, when you
looked at it in the right way, did not become still more complicated.
Poul Anderson
%
... with proper design, the features come cheaply. This approach
is arduous, but continues to succeed.
Dennis Ritchie
%
It's hard enough to find an error in your code when you're looking
for it; it's even harder when you've assumed your code is error-free.
Steve McConnell
%
You're bound to be unhappy if you optimize everything.
Donald Knuth
%
Computers are good at following instructions, but not at reading
your mind.
Donald Knuth
%
A good way to stay flexible is to write less code.
Pragmatic Programmer
%
Measuring programming progress by lines of code is like measuring
aircraft building progress by weight.
Bill Gates
%
But in our enthusiasm, we could not resist a radical overhaul of
the system, in which all of its major weaknesses have been exposed,
analyzed, and replaced with new weaknesses.
Bruce Leverett
%
How does a project get to be a year late?... One day at a time.
Fred Brooks
%
The best performance improvement is the transition from the
nonworking state to the working state.
John Ousterhout
%
If the code and the comments disagree, then both are probably
wrong.
attributed to Norm Schryer
%
... nearly everybody is convinced that every style but their own
is ugly and unreadable. Leave out the but their own and they're
probably right...
Jerry Coffin (on indentation)
%
Ugly programs are like ugly suspension bridges: they're much
more liable to collapse than pretty ones, because the way humans
(especially engineer-humans) perceive beauty is intimately related
to our ability to process and understand complexity.
Eric S. Raymond
%
Just another day writing tomorrow's legacy code. % Coding for
a living is learning for a living.
Paul Robinson
%
If you can't write clearly, you probably don't think nearly as
well as you think.
Kurt Vonnegut
%
It is imperative in science to doubt. It is absolutely necessary,
for progress in science, to have uncertainty as a fundamental part
of your inner nature. To make progress in understanding, we must
remain modest and allow that we do not know.
Richard Feynman
%
You never actually find a perfect answer to a problem. You just
find the answer that has the fewest problems.
James Gosling
%
A good programmer is someone who always looks both ways before
crossing a one-way street.
Doug Linder
%
A good scientist is a person with original ideas. A good engineer
is a person who makes a design that works with as few original
ideas as possible.
Freeman Dyson
%
The hardest problem in computer science is not begin an opinionated
jerk about everything.
Nick Takayama
%
Making hackers work in a noisy, distracting environment is like
having a paint factory where the air is full of soot.
Paul Graham
%
In carpentry, you measure twice and cut once. In software
development, you never measure and make cuts until you run out
of time.
Adam Morse
%
A Fallacy of Software: If it works, and we don't change anything,
it will keep working.
Jessica Kerr
%
Writing software as if we are the only person that ever has to
comprehend it is one of the biggest mistakes and false assumptions
that can be made.
Karolina Szczur
%
Your code has two users: the computer, and every other person
who has to work with what you wrote.
Sam Morgan
%
In a complex system you don't get to change just one thing - ever.
Michael Feathers
%
A distributed system is one in which the failure of a computer
you didn’t even know existed can render your own computer unusable.
Leslie Lamport
%
Make sure you know what's inside the box before trying to think
outside of it.
%
The cure for boredom is curiosity. There is no
cure for curiosity.
Dorothy Parker
%
Simplicity is prerequisite for reliability
Edsger W.Dijkstra
%
Rules of Optimization:
Rule 1: Don't do it. Rule 2 (for experts only): Don't do it yet.
M.A. Jackson
%
More computing sins are committed in the name of efficiency
(without necessarily achieving it) than for any other single reason -
including blind stupidity.
W.A. Wulf
%
The competent programmer is fully aware of the strictly limited
size of his own skull; therefore he approaches the programming task
in full humility, and among other things he avoids clever tricks
like the plague.
Edsger Dijkstra
%
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
%
An API that isn't comprehensible isn't usable.
James Gosling
%
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
%
Hofstadter's Law: It always takes longer than you expect, even
when you take into account Hofstadter's Law.
%
Copy and paste is a design error.
David Parnas
%
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 Software Process"
%
Eagleson's law: Any code of your own that you haven't looked at for
six or more months might as well have been written by someone else.
%
Any fool can use a computer. Many do.
Ted Nelson
%
Incorrect documentation is often worse than no documentation.
Bertrand Meyer
%
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.
Brian W. Kernighan
%
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
%
Make everything as simple as possible, but not simpler.
Albert Einstein
%
First, solve the problem. Then, write the code.
John Johnson
%
Plan to throw one (implementation) away; you will, anyhow.
Fred Brooks
%
Remember that there is no code faster than no code.
Taligent's Guide to Designing Programs
%
More good code has been written in languages denounced as bad
than in languages proclaimed wonderful.
Bjarne Stroustrup, The Design and Evolution of C++ (1994)
%
Smart data structures and dumb code works a lot better than the
other way around.
Eric S. Raymond, The Cathedral and the Bazaar
%
It's hard to read through a book on the principles of magic
without glancing at the cover periodically to make sure it isn't
a book on software design.
Bruce Tognazzini
%
A language that doesn't have everything is actually easier to
program in than some that do.
Dennis Ritchie
%
... the purpose of abstraction is not to be vague, but to create
a new semantic level in which one can be absolutely precise.
Edsger W. Dijkstra, "The Humble Programmer" (1972)
%
... the cost of adding a feature isn't just the time it takes
to code it. The cost also includes the addition of an obstacle to
future expansion. ...The trick is to pick the features that don't
fight each other.
John Carmack
%
Increasingly, people seem to misinterpret complexity as
sophistication, which is baffling - the incomprehensible should
cause suspicion rather than admiration.
Niklaus Wirth
%
One of the most dangerous (and evil) things ever injected into
the project world is the notion of process maturity. Process
maturity is for replicable manufacturing contexts. Projects
are one-time shots. Replicability is never the primary issue on
one-time shots. More evil than good has come from the notion that we
should stick to the methodology. This is a recipe for non-adaptive
death. I'd rather die by commission.
David Schmaltz
%
The fundamental problem with program maintenance is that fixing
a defect has a substantial (20-50 percent) chance of introducing
another. So the whole process is two steps forward and one step
back..
Fred Brooks
%
The difference between a good and a poor architect is that the poor
architect succumbs to every temptation and the good one resists it.
Ludwig Wittgenstein
%
Refactoring provides enough energy to a system for it to relax
into a new and more comfortable state, a new local minimum.
Kevlin Henney, "The Imperial Clothing Crisis" (2002)
%
Beauty is more important in computing than anywhere else in
technology because software is so complicated. Beauty is the ultimate
defense against complexity.
David Gelernter, Machine Beauty, Basic Books (1998)
%
Fools ignore complexity; pragmatists suffer it; experts avoid it;
geniuses remove it.
Alan Perlis
%
...Simplifications have had a much greater long-range scientific
impact than individual feats of ingenuity. .... Simplicity and
elegance are unpopular because they require hard work and discipline
to achieve and education to be appreciated.
Edsger W. Dijkstra
%
Any intelligent fool can make things bigger, more complex, and
more violent. It takes a touch of genius - and a lot of courage -
to move in the opposite direction.
Albert Einstein
%
The structure of a system reflects the structure of the
organization that built it.
Mel Conway
%
The unavoidable price of reliability is simplicity.
C.A.R. Hoare
%
Controlling complexity is the essence of computer programming.
Brian Kernighan
%
Complexity is a sign of technical immaturity. Simplicity of use
is the real sign of a well design product whether it is an ATM or
a Patriot missile.
Daniel T. Ling
%
Every good work of software starts by scratching a developer's
personal itch. %
Simplicity does not precede complexity, but
follows it.
Alan J. Perlis
%
Computer Science is the first engineering discipline in which the
complexity of the objects created is limited solely by the skill
of the creator, and not by the strength of raw materials.
B. Reid
%
Technical skill is mastery of complexity, while creativity is
mastery of simplicity.
E. Christopher Zeeman
%
Architect: Someone who knows the difference between that which
could be done and that which should be done.
Larry McVoy
%
If the automobile had followed the same development cycle as the
computer, a Rolls-Royce would today cost $100, get a million miles
per gallon, and explode once a year, killing everyone inside.
Robert X. Cringely
%
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
%
A common mistake that people make when trying to design something
completely foolproof was to underestimate the ingenuity of complete
fools.
Douglas Adams
%
If our designs are failing due to the constant rain of changing
requirements, it is our designs that are at fault. We must somehow
find a way to make our designs resilient to such changes and protect
them from rotting.
Robert C. Martin
%
If you cannot grok the overall structure of a program while taking
a shower, you are not ready to code it.
Richard Pattis
%
How good the design is doesn't matter near as much as whether the
design is getting better or worse. If it is getting better, day by
day, I can live with it forever. If it is getting worse, I will die.
Kent Beck
%
Good programmers know what to write. Great ones know what to rewrite
(and reuse).
%
Nothing resolves design issues like an implementation.
J. D. Horton
%
By the time [the Leaning Tower of Pisa] was ten percent built,
everyone knew it would be a total disaster. But the investment was
so big they felt compelled to go on. Since its completion, it cost
a fortune to maintain and is still in danger of collapsing. There
are no plans to replace it, since it was never needed in the first
place. I expect every installation has its own pet software which
is analogous to the above.
Ken Iverson
%
In theory, there is no difference between theory and practice. But,
in practice, there is.
Jan L. A. van de Snepscheut
%
If you lie to the compiler, it will get its revenge.
Henry Spencer
%
Trying to outsmart a compiler defeats much of the purpose of
using one.
Kernighan and Plauger, The Elements of Programming Style
%
Once a new technology starts rolling, if you're not part of the
steamroller, you're part of the road.
Stewart Brand
%
Get into a rut early: Do the same process the same way. Accumulate
idioms. Standardize. The only difference(!) between Shakespeare and
you was the size of his idiom list - not the size of his vocabulary.
%
Just because the standard provides a cliff in front of you,
you are not necessarily required to jump off it.
Norman Diamond
%
If you have a procedure with ten parameters, you probably
missed some. %
There are two ways to write error-free programs;
only the third works.
Alan J. Perlis
%
Should array indices start at 0 or 1? My compromise of 0.5 was
rejected without, I thought, proper consideration.
Stan Kelly-Bootle
%
Good engineering is not primarily making good decisions, it's
seeking good feedback which lets you quickly discard bad decisions.
Kent Beck
%
Point of view is worth 80 IQ points.
Alan Kay
%
We just have to accept that developer skill is a far more
significant variable than language choice or methodological nuances.
Michael Feathers
%
Testing does not cost, it pays, both during development and over
the system’s lifecycle.
Mary Poppendieck
%
If your tests look cumbersome and complex, it reflects on the
design of your system.
Jez Humble and Dave Farley
%
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
%
I did say something along the lines of C makes it easy to shoot
yourself in the foot; C++ makes it harder, but when you do, it
blows your whole leg off.
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
%
You can't have great software without a great team, and most
software teams behave like dysfunctional families.
Jim McCarthy
%
That's the thing about people who think they hate computers.
What they really hate is lousy programmers.
Larry Niven and Jerry Pournelle Oath of Fealty
%
Einstein argued that there must be simplified explanations of
nature, because God is not capricious or arbitrary. No such faith
comforts the software engineer.
Fred Brooks, Jr.
%
As we said in the preface to the first edition, C wears well
as one's experience with it grows. With a decade more experience,
we still feel that way.
Brian Kernighan and Dennis Ritchie
%
Optimization hinders evolution. % C++ tries to guard against
Murphy, not Machiavelli.
Damian Conway
%
I have always found that plans are useless, but planning is
indispensable.
Dwight Eisenhower
%
Any fool can write code that a computer can understand. Good
programmers write code that humans can understand.
Martin Fowler
%
Perl is another example of filling a tiny, short-term need,
and then being a real problem in the longer term.
Alan Kay
%
It is practically impossible to teach good programming style
to students that have had prior exposure to Basic; as potential
programmers they are mentally mutilated beyond hope of regeneration.
Edsger Dijkstra
%
Comparing to another activity is useful if it helps you formulate
questions, it's dangerous when you use it to justify answers.
Martin Fowler
%
There will always be things we wish to say in our programs that in
all known languages can only be said poorly.
%
Every program is a part of some other program and rarely fits.
%
Style distinguishes excellence from accomplishment.
James Coplien
%
Every program has (at least) two purposes: the one for which it
was written, and another for which it wasn't.
Alan J. Perlis
%
The most amazing achievement of the computer software industry
is its continuing cancellation of the steady and staggering gains
made by the computer hardware industry.
Henry Petroski
%
Technology is dominated by two types of people: Those who
understand what they do not manage. Those who manage what they do
not understand.
Putt's Law
%
The perfect project plan is possible if one first documents a
list of all the unknowns.
Bill Langley
%
Program testing can be used to show the presence of bugs, but
never to show their absence!
Edsger Dijkstra
%
There's no obfuscated Perl contest because it's pointless.
Jeff Polk
%
Software and cathedrals are much the same - first we build them,
then we pray.
Anonymous
%
If debugging is the process of removing bugs, then programming
must be the process of putting them in.
Edsger Dijkstra
%
No matter how slick the demo is in rehearsal, when you do it in
front of a live audience the probability of a flawless presentation
is inversely proportional to the number of people watching, raised
to the power of the amount of money involved.
Mark Gibbs
%
It is easier to write an incorrect program than understand a
correct one. %
If you need more than 3 levels of indentation,
you're screwed anyway, and should fix your program.
Linux 1.3.53 Coding Style documentation
%
A Perl program is correct if it gets the job done before your
boss fires you.
Larry Wall
%
I have a pretty major problem with a language where one of the
most common variables has the name $_
Brian Hook, about PERL
%
Testing is the process of comparing the invisible to the ambiguous,
so as to avoid the unthinkable happening to the anonymous.
James Bach
%
The programmer, like the poet, works only slightly removed from
pure thought-stuff. He builds his castles in the air, from air,
creating by exertion of the imagination. Few media of creation are
so flexible, so easy to polish and rework, so readily capable of
realizing grand conceptual structures. (This very tractability has
its own problems.)
Fred Brooks
%
The evolution of languages: FORTRAN is a non-typed language. C
is a weakly typed language. Ada is a strongly typed language. C++
is a strongly hyped language.
Ron Sercely
%
He who hasn't hacked assembly language as a youth has no heart. He
who does as an adult has no brain.
John Moore
%
BASIC - A programming language. Related to certain social diseases
in that those who have it will not admit it in polite company.
Anonymous
%
With enough eyes, all bugs are shallow.
Eric S. Raymond
%
The camel has evolved to be relatively self-sufficient. On
the other hand, the camel has not evolved to smell good. Neither
has Perl.
Larry Wall
%
Don't get suckered in by the comments ... they can be terribly
misleading.
Dave Storer
%
We know about as much about software quality problems as they
knew about the Black Plague in the 1600s. We've seen the victims'
agonies and helped burn the corpses. We don't know what causes it;
we don't really know if there is only one disease. We just suffer
and keep pouring our sewage into our water supply.
Tom Van Vleck
%
If something is worth doing once, it's worth building a tool
to do it. %
If you think good architecture is expensive, try bad
architecture.
Brian Foote and Joseph Yoder
%
When we use a language, we should commit ourselves to knowing it,
being able to read it, and writing it idiomatically.
Ron Jeffries
%
Beware of bugs in the above code; I have only proved it correct,
not tried it.
Donald Knuth
%
The ideal engineer is a composite ... he is not a scientist,
he is not a mathematician, he is not a sociologist, or a writer;
but he may use the knowledge and techniques of any or all of these
disciplines in solving engineering problems.
N. W. Dougherty
%
One of the great skills in using any language is knowing what
not to use, what not to say. ... There's that simplicity thing again.
Ron Jeffries
%
Good engineering is characterized by gradual, stepwise refinement
of products that yields increased performance under given constraints
and with given resources.
Niklaus Wirth
%
Programming languages should be designed not by piling feature
on top of feature, but by removing the weaknesses and restrictions
that make additional features appear necessary.
Revised Report on the Algorithmic Language Scheme
%
A designer can mull over complicated designs for months. Then
suddenly the simple, elegant, beautiful solution occurs to him. When
it happens to you, it feels as if God is talking! And maybe He is.
Leo Frankowski (in The Cross-Time Engineer)
%
It should be noted that no ethically-trained software engineer
would ever consent to write a DestroyBaghdad procedure. Basic
professional ethics would instead require him to write a DestroyCity
procedure, to which Baghdad could be given as a parameter.
Nathaniel S. Borenstein
%
The problem with using C++ ... is that there's already a strong
tendency in the language to require you to know everything before
you can do anything.
Larry Wall
%
Unix was not designed to stop people from doing stupid things,
because that would also stop them from doing clever things.
Doug Gwyn
%
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
%
First you listen to the users; then you ignore them.
Ken Arnold
%
The hardest part of design ... is keeping features out.
Donald Norman
%
Computers are high-speed idiots, programmed by low-speed idiots.
%
You know you're on the right track with code changes when you
spend the majority of your time deleting code.
%
The key to understanding recursion is to begin by understanding
recursion. The rest is easy.
Koenig/Moo, Accelerated C++
%
Always code as if the person who ends up maintaining your code will
be a violent psychopath who knows where you live.
%
Programs should
be written and polished until they acquire publication quality.
Niklaus Wirth
%
... programming requires more concentration than other
activities. It's the reason programmers get upset about 'quick
interruptions' - such interruptions are tantamount to asking a
juggler to keep three balls in the air and hold your groceries
at the same time." Steve McConnell, Code Complete %
Avoiding
complexity reduces bugs.
Linus Torvalds
%
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
%
It's harder than you might think to squander millions of dollars,
but a flawed software development process is a tool well suited to
the job.
Alan Cooper
%
One: demonstrations always crash. And two: the probability of them
crashing goes up exponentially with the number of people watching.
Steve Jobs
%
About 90 percent of the downtime comes from, at most, 10 percent
of the defects. Barry Boehm %
Time pressure gradually corrupts an
engineer's standard of quality and perfection. It has a detrimental
effect on people as well as products.
Niklaus Wirth
%
In a software project team of 10, there are probably 3 people
who produce enough defects to make them net negative producers.
Gordon Schul
%
It's not the prevention of bugs but the recovery the ability to
gracefully exterminate them -- that counts.
Victoria Livschitz
%
When debugging, novices insert corrective code; experts remove
defective code. Richard Pattis %
Product quality has almost
nothing to do with defects or their lack.
Tom DeMarco
%
Every big computing disaster has come from taking too many ideas
and putting them in one place.
Gordon Bell
%
There has never been an unexpectedly short debugging period in
the history of computers.
Steven Levy
%
It has been discovered that C++ provides a remarkable facility
for concealing the trival details of a program such as where its
bugs are.
David Keppel
%
Whoever thought of putting coders in noise-transparent cubicles
needs to be beaten with a cluebat.
Anonymous Slashdotter
%
Using Unix is the computing equivalent of listening only to music
by David Cassidy.
Rob Pike
%
Conceptual integrity is the most important consideration in
system design.
Fred Brooks, "The Mythical Man-Month"
%
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
%
Experience doesn't necessarily teach anything.
Gerald M. Weinberg, "Understanding the Professional Programmer"
%
No matter what the problem is, it's always a people problem.
Gerald M. Weinberg
%
I think there is a world market for maybe five computers
Thomas Watson, Chairman of IBM, 1943
%
There is no reason why anyone would want a computer in the home.
Ken Olson, Present, Chairman and founder of Digital Equipment
Corporation, 1977
%
But what... is it good for?
Engineer at the Advanced Computing Systems division of IBM,
commenting on the microchip, 1968
%
I have traveled the length and breadth of this country and talked
with the best people, and I can assure you that data processing is
a fad that won't last out the year.
Editor in charge of business books for Prentice Hall, 1957
%
While a calculator on the ENIAC is equipped with 10000 vacuum
tubes and weighs 30 tons, computers of the future may have only
1000 vacuum tubes and weigh only 1.5 tons.
Popular mechanics, 1949
%
Hiring people to write code to sell is not the same as hiring
people to design and build durable, usable, dependable software.
Larry Constantine
%
If we play genie and grant client wishes, we are apt to construct
castles of code in the air.
Larry Constantine
%
In fast moving markets, adaptation is significantly more important
than optimization.
Larry Constantine
%
A primary cause of complexity is that software vendors uncritically
adopt almost any feature that users want.
Niklaus Wirth
%
The best meetings get real work done. When your people learn that
your meetings actually accomplish something, they will stop making
excuses to be elsewhere.
Larry Constantine
%
A dynamic duo who work well together can be worth any three people
working in isolation.
Larry Constantine
%
Prolific programmers contribute to certain disaster.
Niklaus Wirth
%
Wirth's law: Software gets slower faster than hardware gets faster.
Niklaus Wirth
%
If builders built buildings the way programmers wrote programs,
then the first woodpecker that came along would destroy civilisation.
Gerald Weinberg
%
Documentation is the castor oil of programming. Managers think
it is good for programmers and programmers hate it!
Gerald Weinberg
%
The best way to get a project done faster is to start sooner.
Jim Highsmith
%
Managers often form a [programming] team which by any reasonable
judgment cannot perform the designated task in the allotted
time. Inevitably the team is given an extension when the time
limit is reached and the reality must be faced. Had it been faced
earlier, the work could probably have been organized differently -
in recognition of the longer schedule - and thus produced, in the
end, more quickly.
Gerald Weinberg
%
Programming can be fun, so can cryptography; however they should
not be combined.
Kreitzberg and Shneiderman
%
Let us change our traditional attitude to the construction of
programs. Instead of imagining that our main task is to instruct
a computer what to to, let us concentrate rather on explaining to
human beings what we want a computer to do.
Donald Knuth
%
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
%
The job of the average manager requires a shift in focus every
few minutes. The job of the average software developer requires
that the developer not shift focus more often than every few hours.
Steve McConnell
%
It's OK to figure out murder mysteries, but you shouldn't need
to figure out code. You should be able to read it.
Steve McConnell
%
Testing by itself does not improve software quality. Test results
are an indicator of quality, but in and of themselves, they don't
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, don't buy a new scale; change your diet. If you
want to improve your software, don't test more; develop better.
Steve McConnell
%
A brute force solution that works is better than an elegant
solution that doesn't work.
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
%
Brooks Law: Adding manpower to a late software project makes it
later!
%
It's 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
%
Software projects fail for one of two general reasons: the
project team lacks the knowledge to conduct a software project
successfully, or the project team lacks the resolve to conduct a
project effectively.
Steve McConnell
%
In software, the chain isn't as strong as its weakest link;
it's as weak as all the weak links multiplied together.
Steve McConnell
%
... the designer of a new system must not only be the implementor
and the first large-scale user; the designer should also write the
first user manual. ...If I had not participated fully in all these
activities, literally hundreds of improvements would never have
been made, because I would never have thought of them or perceived
why they were important.
Donald Knuth
%
An organization that treats its programmers as morons will soon
have programmers that are willing and able to act like morons only.
Bjarne Stroustrup
%
Design and programming are human activities; forget that and all
is lost.
Bjarne Stroustrup
%
Before software can be reusable it first has to be usable.
Ralph Johnson
%
If you think your management doesn't know what it's doing or
that your organisation turns out low-quality software crap that
embarrasses you, then leave.
Edward Yourdon
%
The most important single aspect of software development is to
be clear about what you are trying to build.
Bjarne Stroustrup
%
Most of you are familiar with the virtues of a programmer. There
are three, of course: laziness, impatience, and hubris.
Larry Wall
%
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)
%
Real programmers can write assembly code in any language.
Larry Wall
%
We all agree on the necessity of compromise. We just can't agree
on when it's necessary to compromise.
Larry Wall
%
I think it's a new feature. Don't tell anyone it was an accident.
Larry Wall
%
Theory is when you know something, but it doesn't work. Practice
is when something works, but you don't know why. Programmers combine
theory and practice: Nothing works and they don't know why.
Unknown
%
The process of preparing programs for a digital computer is
especially attractive, not only because it can be economically and
scientifically rewarding, but also because it can be an aesthetic
experience much like composing poetry or music.
Donald Knuth
%
For every complex problem there is an answer that is clear,
simple, and wrong.
H. L. Mencken
%
Good programmers use their brains, but good guidelines save us
having to think out every case.
Francis Glassborow
%
Up to a point, it is better to just let the snags [bugs] be there
than to spend such time in design that there are none.
Alan M. Turing
%
Don't document bad code--rewrite it.
Kernighan and Plauger
%
The price of reliability is the pursuit of the utmost
simplicity. It is a price which the very rich may find hard to pay.
C.A.R. Hoare
%
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
%
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
%
Premature optimization is the root of all evil in programming.
C.A.R. Hoare
%
You cannot teach beginners top-down programming, because they
don't know which end is up.
C.A.R. Hoare
%
The key to performance is elegance, not battalions of special
cases.
Jon Bentley and Doug McIlroy
%
A complex system that works is invariably found to have evolved
from a simple system that works.
John Gall
%
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
%
Inside every large program, there is a small program trying to
get out.
C.A.R. Hoare
%
Programs must be written for people to read, and only incidentally
for machines to execute.
Abelson and Sussman
%
The software isn't finished until the last user is dead.
Anonymous
%
It is better to have 100 functions operate on one data structure
than 10 functions on 10 data structures. %
Brian Russell's Laws
of Software Relativity (cf. Belady and Lehman's Laws of Software
Evolution)
* 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.
Usenet post
%
The bitterness of poor quality remains long after the sweetness
of meeting the schedule has been forgotten.
Anonymous
%
Why do we never have time to do it right, but always have time
to do it over?
Anonymous
%
The goal of product management is customer satisfaction. The
product management role is positioned to achieve this by acting
as the customer advocate to the team and as the team advocate to
the customer. It is important to distinguish between the customer
and the end user--the customer is the one who pays for the product
while the end user is the one who uses the product.
Anonymous
%
The goal of Computer Science is to build something that will last
at least until we've finished building it.
Anonymous
%
Re-use before you buy before you build.
Anonymous
%
Better train people and risk they leave - than do nothing and
risk they stay.
Anonymous
%
There is not now, and never will be, a language in which it is
the least bit difficult to write bad programs.
Anonymous
%
Building large applications is still really difficult. Making
them serve an organisation well for many years is almost impossible.
Malcolm P Atkinson
%
We have to stop optimizing for programmers and start optimizing
for users.
Jeff Atwood
%
A program is never less than 90% complete, and never more than
95%
complete.
Terry Baker
%
Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs, and the Universe trying
to produce bigger and better idiots. So far, the Universe is winning.
Rich Cook
%
Optimism is an occupational hazard of programming: feedback is
the treatment.
Kent Beck
%
A good threat is worth a thousand tests.
Boris Beizer, about publicizing test cases to programmers
%
More than the act of testing, the act of designing tests is one
of the best bug preventers known. The thinking that must be done
to create a useful test can discover and eliminate bugs before they
are coded - indeed, test-design thinking can discover and eliminate
bugs at every stage in the creation of software, from conception
to specification, to design, coding and the rest.
Boris Beizer
%
If you can't test it, don't build it. If you don't test it,
rip it out.
Boris Beizer
%
Bugs lurk in corners and congregate at boundaries.
Boris Beizer
%
Walking on water and developing software from a specification
are easy if both are frozen.
Edward V. Berard
%
Agile methods derive much of their agility by relying on the tacit
knowledge embodied in the team, rather than writing the knowleadge
down in plans.
Barry Boehm
%
Poor management can increase software costs more rapidly than
any other factor.
Barry Boehm
%
Just because you don't know a technology, doesn't mean you won't
be called upon to work with it.
Mike Bongiovanni
%
The most likely way for the world to be destroyed, most experts
agree, is by accident. That's where we come in; we're computer
professionals. We cause accidents.
Nathaniel S. Borenstein
%
The first 90 percent of the code accounts for the first 90 percent
of the development time...The remaining 10 percent of the code
accounts for the other 90 percent of the development time.
Tom Cargill
%
Documentation is like sex; when it's good, it's very, very good,
and when it's bad, it's better than nothing.
Dick Brandon
%
The hardest part of the software task is arriving at a complete
and consistent specification, and much of the essence of building
a program is in fact the debugging of the specification.
Fred Brooks
%
A little retrospection shows that although many fine, useful
software systems have been designed by committees and built as part
of multipart projects, those software systems that have excited
passionate fans are those that are the products of one or a few
designing minds, great designers.
Fred Brooks
%
Good judgment comes from experience, and experience comes from
bad judgment.
Fred Brooks
%
Any sufficiently advanced bug is indistinguishable from a feature.
Bruce Brown
%
Analysis occurs only when the domain expert is in the room
(otherwise it is pseudo-analysis)
Brad Kain
%
The only new software development projects undertaken are those
that haven't been done before or those whose predecessors are not
publicly available. This business reality, more than any other
factor, is what makes software development so hard and risky,
which makes attention to process so important.
Sam Guckenheimer and Juan Perez, in Software Engineering with
Microsoft
Visual Studio Team System %
I find that writing unit tests actually
increases my programming speed.
Martin Fowler
%
When to use iterative development? You should use iterative
development only on projects that you want to succeed.
Martin Fowler
%
All programming is maintenance programming, because you are rarely
writing original code.
Dave Thomas
%
Even the best planning is not so omniscient as to get it right
the first time.
Fred Brooks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment