Considering the current sad state of our computer programs, software development is clearly still a black art, and cannot yet be called an engineering discipline.
The most important single aspect of software development is to be clear about what you are trying to build.
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.
The task of the software development team is to engineer the illusion of simplicity.
Software development is technical activity conducted by human beings.
In theory there is no difference between theory and practice. In practice there is.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
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.
The trouble with programmers is that you can never tell what a programmer is doing until it's too late.
Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
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.
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law
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.
When I am working on a problem, I never think about beauty but when I have finished, if the solution is not beautiful, I know it is wrong.
The most fundamental problem in software development is complexity. There is only one basic way of dealing with complexity: divide and conquer
If debugging is the process of removing software bugs, then programming must be the process of putting them in.
One bad programmer can easily create two new jobs a year.
Design adds value faster than it adds cost.
Nine people can't make a baby in a month.
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.
Linux is only free if your time has no value.
To understand recursion, one must first understand recursion.
When debugging, novices insert corrective code; experts remove defective code.
When I'm working on a problem, I never think about beauty. I think only how to solve the problem.
The greatest risk we face in software development is that of overestimating our own knowledge.
Follow AzQuotes on Facebook, Twitter and Google+. Every day we present the best quotes! Improve yourself, find your inspiration, share with friends
or simply: