Quality Gates and DoD
Whats the difference between Quality Gates and DoD. I am SM on a Scrum Team and we are going to create a DoD and I have described it to the developers as a checklist that ensures we deliver a high quality product and that it is realistic to live up to and should include all the things needed to create a Done increment. We got talking about quality and quality gates were mentioned which I dont have much expereince of and I am keen to know the relationship (if any) and the difference between Quality Gates and DoD.
Scrum begins with Done. A good quality gate stops defects going out, a good DoD stops them ever coming in.
Gates are a means of stopping something from moving forward. As @Ian Mitchell mentions, in software development Quality Gates are primarily used to stop defects from going out. They are typically applied at the code level and are often enforced via the build process. They are typically defined as:
- All tests must pass
- All defects are addressed
- New tests exist for all newly added or modified code
While these could be part of a Definition of Done, they would not be the entire definition. A Definition of Done can also contain items such as:
- Marketing has all the information needed to create their campaign
- Support is ready to support the new functionality
- All code is behind a feature toggle
- All changes meet the corporate design standards
- Stakeholders have reviewed all changes
- Product Backlog has been updated based upon these changes
Quality Gates and Definition of Done are not mutually exclusive. There is a symbiotic relationship between them. However in Scrum the Definition of Done is the item that communicates to all of the organization and stakeholders what the Scrum Team means when they say "we are done with this increment".