wow, that's a broad question!
For me, I'd be balancing the need to get feedback faster, the benefit provided by UAT, and the cost. I'd also be looking at the skill level of the 'testers' and what they expect.
So I'd start with a conversation:
- What is the goal of UAT?
- What are the expectations of the customers?
If the customers really just a want a demo where they see all the core functions working, then we might do a more brief, shorter, planned, demo-like UAT less often. If you want to use this process to find bugs, do it more often.
My personal preferance is to bring UAT testers into the team and have them test along with the software, but that might not always be possible.