Definition of uat
User acceptance testing is an a process that validates the deliverable conforms and meets the business requirements initially laid out.
Proposed Agile Process with UAT
This proposal introduces a period of time after the sprint has ended to allow for UAT. It provides business analysts, product owners and stakeholders to look at the feature before going live on to the production website.
This also gives them the opportunity to raise bugs which we can triage and categorize into either an immediate hotfix or to be put into the backlog.
Current Issues & resolutions to those by using the proposal
Testing within the sprint
Issue
The awaiting approval status within the sprint against user stories is effectively forcing business analysts to perform UAT within the sprint.
This caused numerous problems because the features crossing multiple stories were being tested and bugs were being raised despite the entire feature not being complete.
Additionally business decisions were being made within the sprint without the knowledge of the product owner or stakeholders.
Resolution
Introducing UAT after the sprint ends allows not only business analysts but the product owner and stakeholders to look at the features together once we have declared them as finished.
We will only release completed features for UAT once the develop team has completed all user stories associated with that feature and are satisfied any major bugs have been resolved.
Stakeholder Involvement
Issue
Features were going straight into LIVE without allowing the stakeholders to accept with them first.
There were numerous example of the SCRUM team developing features against user stories but once going live, the stakeholders raised complaints about missing components or incorrect assumptions. The scrum team then had to work on hotfixes within the active sprint and forced us to drop some user stories.
Resolution
Any bugs found within UAT and are deemed critical should be raised as a P1 within the active sprint. They must be worked on immediately on a hotfix branch.
25% of the active sprint time should be allocated to each team member to allow us to fix any issues raised from UAT.
Technical Actions needed to adopt the proposal
We will now need to extend our use of development branches in order for the proposal to run smoothly.
In addition to our current workflow with branches we will now introduce Release branches.
These are created from the develop branch and represents the latest code ready for UAT. This will happen at the end of the sprint. Any left over work will require the developer to work on this branch and allow other developers to work on the develop branch for the next sprint.
Bug fixes are worked on this branch. They can be re-merged into develop at any time.
If accepted then it is merged into Master ready for deployment to Production.
The Master branch is also tagged for future reference.