The camel has evolved to be relatively self-sufficient. On the other hand, the camel has not evolved to smell good. Neither has Perl.
All programming is maintenance programming, because you are rarely writing original code.
Don't document bad code - rewrite it.
We all agree on the necessity of compromise. We just can't agree on when it's necessary to compromise.
A good threat is worth a thousand tests.
About 90 percent of the downtime comes from, at most, 10 percent of the defects.
In fast moving markets, adaptation is significantly more important than optimization.
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.
The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich may find hard to pay.
When to use iterative development? You should use iterative development only on projects that you want to succeed.
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.
C++ tries to guard against Murphy, not Machiavelli.
Perl is another example of filling a tiny, short-term need, and then being a real problem in the longer term.
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.
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.
When someone says, "I want a programming language in which I need only say what I want done," give him a lollipop.
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.
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.
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.
Testing is the process of comparing the invisible to the ambiguous, so as to avoid the unthinkable happening to the anonymous.
Product quality has almost nothing to do with defects or their lack.
There has never been an unexpectedly short debugging period in the history of computers.
Every program has (at least) two purposes: the one for which it was written and another for which it wasn't.
I think it's a new feature. Don't tell anyone it was an accident.
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.
Follow AzQuotes on Facebook, Twitter and Google+. Every day we present the best quotes! Improve yourself, find your inspiration, share with friends
or simply: