All software sucks.
Frequently, crashes are followed with a message like 'ID 02'. 'ID' is an abbreviation for idiosyncrasy and the number that follows indicates how many more months of testing the product should have had.
I think it's a combination of technical and social factors that leads to all the defects in deployed software.
Defect-free software does not exist.
However, writing software without defects is not sufficient. In my experience, it is at least as difficult to write software that is safe - that is, software that behaves reasonably under adverse conditions.
My reply is: the software has no known bugs, therefore it has not been updated.
The reality of most software development is that the consequences of failure are simply nonexistent.
I'm not saying we purposely introduced bugs or anything, but this is kind of a natural result of any complexities of software... that you can't fully test it.
The fundamental problem with program maintenance is that fixing a defect has a substantial chance of introducing another.
Yet we still see continuous reports of bugs.