- Short Spec created
- Coding/Unit Tests created
- Acceptance Tests created
- 100% Acceptance tests passed
- Product Owner demo passed
- Known bugs fixed
I think the answer lies in making the right tradeoffs in terms of risk and having the right strategy in place in understanding feature complexity, ability to break things down into small consumable features that allow the team to achieve the level of confidence which includes QA and development and having the key indicators to be there. I believe that pushing quality up the chain in the development cycle is key , by having continual integration in place, understanding the user story in detail, so that unit tests, QA plans and code reviews as well as bugs address quality fundamentally early on.
Just because you have a definition of Done agreed to, doesn't necessarily mean you will get the quality you need out of the feature set and release you are looking for.
thoughts and comments welcome, and my final contribution in the post is a great book about the pitfalls of development which I think many people already are aware of, which is a great read :-).
Code Complete: A Practical Handbook of Software Construction
Comments?