• Part of buggy software is due to lack of enough relevant testing, no doubt. But also poor requirements management is probably the greatest cause. In turn, a big part of requirements is capturing what the customer really wants, with as little ambiguity as possible ("user-friendly interface" is not a verifiable requirement). Plus, to a lesser but still critical extent, what environment is needed for the software to do what it is supposed to do.

    I agree that the environment or system requirements can be much more difficult for "open-ended" (off-the-shelf) software, but the payoff in getting that as close to perfect as possible is a much better product.

    -------------------
    A SQL query walks into a bar and sees two tables. He walks up to them and asks, "Can I join you?"
    Ref.: http://tkyte.blogspot.com/2009/02/sql-joke.html