How does UAT fit in PBI workflow/sprint considering it's part of DoD and needs to be performed by SME's who are not part of the team?
Considering that a Subject Matter Expert (SME) is not part of the scrum team; how does that relate to a PBI's workflow (which needs to be done within the sprint) when that SME is expected to perform the User Acceptance Test (UAT)?
If a UAT is required by the Definition of Done (DoD), it seems to create a requirement either for the SME to be on the scrum team or to scrap the UAT from DoD. How could this be addressed?
UAT shouldn't be part of the Definition of Done.
Developers commit to and are required to conform to the Definition of Done. Even if the Developers represent some users of the system, they are rarely able to represent all users and there are external dependencies on completing UAT. Subject matter experts, customers, and representative end users are all people who may participate in UAT activities.
Since the expectation is that at least one Increment that conforms to the Definition of Done is created each Sprint, it doesn't make sense to have the creation of that Increment in the hands of people who are not making the planning and executing the Sprint.
Does the SME share the Developers' commitment to create a Done increment? Do they also hold themselves accountable for product quality?
- If so, the SME is in reality one of the Developers on the Scrum Team, regardless of whether or not this accountability is acknowledged.
- If not, the Developers will be committing to create a Done Increment, of immediate release quality, with an attendant risk that the UAT they deem necessary for this standard will be undertaken by a third party who is not accountable for ensuring the commitment is met.
Summary: User Acceptance Testing is a outdated concept and should not be included in any current Definition of Done if it is expected to be done by individual(s) outside of the Scrum Team.
Both @Ian and @Thomas are correct. I'm going to approach this from a slightly different perspective but first I want to give you a little of my background. I've been in software development since 1986. I spent almost half of that in Quality Assurance managing and doing testing of the work that Developers did. So, when I say the following it is coming from experience.
User Acceptance Testing is an outdated concept. It is from the days where a development team works on something for months at a time and then shows the customer this big delivery. Since the customer has not seen anything in a very long time, they feel it necessary to carefully look over the delivery to determine if it is what they want at that time.
Enter the current century, modern day agile development activities, and Scrum. If the customer is being involved in the development process, there should be less need for User Acceptance Testing. They are involved in defining the requirements so they can ensure that the requirements are well understood by the team that will be building. The customer is kept aware of what is being discovered while work is going on so they can be involved in any decisions that have to be made based on new information. The customer is involved in the Sprint Review so they can discuss what has been "done" and provide feedback accordingly. There really shouldn't be a need for a separate phase where the user tests and accepts the deliverable.
Now, add to this that most modern day software is not being built for a single customer. Nor are features added for a specific customer. Given that there are many different users, how do you determine that a Subject Matter Expert is an expert for all of the users that will access the software? The Subject Matter Expert might be able to validate that mathematical calculations are correct or that information displayed is according to standards, but can they validate that the way the every user will interact or use the software is correct?
Modern User Acceptance Tests that would normally be executed by a Subject Matter Expert can be done by individuals on the Scrum Team. All it takes is an interview with the Subject Matter Expert where the tests that they would do is captured. Then automated tests can be written for everything that can be automated and manual can be done by someone on the Scrum Team for anything else.
No where in any quality assurance related documentation or regulations have I seen that an individual has to do User Acceptance Testing. Some standards will require the process but it does not have to be done by an specific individual at a specific time. All that is required is that some level of tests are done that are defined by the users and that it can be proven that they were completed. I will admit that I may be wrong because I have not been involved in every industry so there could be an exception that I don't know about. But I would be surprised.