UAT (User Acceptance Testing) is one of the flawed processes in Waterfall project model. This is why UAT no longer exist in Agile project. As it happens, UAT is a subjective processes and based on the users approval for the system to Go Live. This creates a major roadblock if you are changing or upgrading your system. This is because users resistance contributes to the failure of UAT, creating a dilemma!
UAT is Bad for Change
UAT is notoriously bad for change management. By default, majority of human do not have high tolerance in change, especially those who are in operational role. You will find many test results referencing the expected behavior of the old system. Another common issue is the required update of SOP (Standard Operating Procedures) which is not updated resulting the confusing test steps to the users.
UAT is Seldom On Time
It is ironic that many users are have a day job and not full time testers. Thus, it is really hard for users to commit 100% to the testing schedule. Any fixes will result in regression testing for the users. As a result, testing fatigue sets in and develop into frustration for the users. It is normal to see many UAT delays due to the users commitments. If you really want a full time tester, you will not get a true user.
Many UAT process faces constant dilemma to pass X number of test cases working a Y durations. Delays are foreseeable and expected. UAT also do not fit change management and SOP changes well. Therefore, the push for Agile testing will be harder as a replacement of UAT in waterfall project.