Acceptance Principles Avoid Repeating Bugs in Agile Development
In my work to integrate UX design into Agile scrum, (related post) I discovered that about 30% of the usability bugs found were seen in tests of previous features. The bugs were often small, but were distracting and had to be fixed.
This meant that mistakes were being designed into the product.
Acceptance criteria are the most concrete way to measure the completion success of an Agile story.
But while each Agile story has its acceptance criteria – yes/no questions about does the feature do X, or is X possible? – the stories needed something further, some form of general design guidance.
I introduced the concept of acceptance principles, which are purely guidelines, not measurements. Although designed to be de facto requirements of any story, a given principle may not apply to a particular feature. So they amount to best UX practices that need to become part of Development’s DNA so that repetitive mistakes are avoided.
From acceptance criteria, the tester will create test cases. From acceptance principles, the developer will add basic thinking to her repertoire: such as, consult a tech writer when drafting text for dialog boxes, or refer to the pattern library instead of using a solution from a previous project.
Acceptance principles are by their very nature brief, so they will invite thinking, and questions for UX, thus uncovering things the principle might not specify.
Agile is about balance. The completness standard is working software; Agile wants to document just enough to know what was built, preventing the documentation from being wasteful overhead. That is achieved not by strict rules, but by maintaining balance.
Acceptance principles are thus an ‘acceptance criteria conversation’, as noted in this interesting piece fom the Agile 2009 Conference: http://agile2009.agilealliance.org/node/622.
But how should acceptance principles be implemented? Whose responsibility are they? It will likely be the responsibility of UX to link principles to each particular story. That linkage will drive acceptance and usability testing to cover those points. If bugs are found, then the Agile nature bas broken down, and the fix must be implemented.
The design of acceptance principles is to prevent repetitive mistakes. It is through repetitive attention to the source of those mistakes that the cause will be avoided.





