People who don’t build software for a living have a quite
understandable attitude that you should write your program, fix
all the bugs, then ship it. Why would you ever ship a product
that has bugs in it? Surely that is a sign that you don’t care
about quality, right?  Those of us who work on non-trivial
software projects naturally see this a little differently. There
are many factors that determine quality of software, and some of
them are counter-intuitive. For example, the first thing to
realize is that you are not trying to get rid of every bug. What
you are trying to do is maximize the known quality of the
product at the time you ship it. If the last bug you have in the
product is that a toolbar button sometimes doesn’t display
correctly, and you fix it, then you ship the product, how
embarrassed will you be a little later when you find out that
the code fix you took to get the toolbar to display causes your
application to crash when used on machines with certain video
cards? Was that the right decision?