We do something similar. Any bug that is submitted by a customer (rather than QA, or a trial team, or other developers) is analyzed. 50% of our bugs are due to poor requirements. 25% are due to poor design. The other 25% are just coding problems.<p>Most of the requirements problems derive from lack of understanding about the tradeoffs in the current system or lack of understanding what the customer actually wants.<p>Most of the design problems are a result of excessive complexity. People often forget to simplify and refactor prior to adding a new feature. They end up having to keep a larger system in their brain when designing than they otherwise need to. Therefore they miss interactions that exist or forget to handle them in the new design.<p>Most of the coding problems would have been caught had unit tests been clearer and closer to 100% branch&#x2F;code coverage. It is amazing how many bugs lurk in the last 5% of testing.<p>It is actually quite fun to tell a product manager that they are the cause for a bug :) Usually it is the developer that