UAT – The Secret to Stress-Free Deployment
You may have heard the acronym UAT tossed around, but what does it mean, and why is it so important? Here at PixelMill, we believe that having a UAT environment is critical. In fact, we argue it’s the not-so-secret prescription to taking the anxiety out of development.
What is a UAT tenant?
UAT is short for User Acceptance Testing, and it describes the last phase before a solution is released or published. In this phase, real users try out the solution and run it through its paces as it will be used to make sure it meets all of the business requirements and works as it is intended to work. While your live site is your production environment, your UAT environment would be a separate area where some of your users can test and try out new features and solutions before they get implemented on your live site.
Here at PixelMill, when we build O365 SharePoint solutions, we recommend that you maintain two different tenants–one for production that your users actually use on a daily basis, and one for UAT where a limited number of your users can test out new solutions. While this initially seems like you would be doubling the cost by maintaining two different O365 tenants, the purpose is actually to save you from having costly problems and unhappy users should you deploy a solution directly on your production site before users have a real chance to make sure it’s what you wanted and needed.
Why Use a UAT Tenant?
Having a separate UAT environment provides cost savings — and sanity savings — during the development phase as well. From a technical standpoint, having a separate UAT environment means that our and your developers can deploy SharePoint solutions and test them properly without having to perform additional (read: more development time and therefore more expensive) workarounds to limit those solutions to particular site collections so that the general user doesn’t accidentally come upon them before they’ve been tested. Because so many SharePoint Framework (SPFx) solutions are deployed to a tenant and are accessible from any site collection, or may even be deployed tenant-wide, having a completely separate O365 environment for user acceptance testing is even more important.
UAT in Action
One real-life example from our recent experience was when we developed a SharePoint extension to add a custom header to all site collections in a tenant. The custom header tied into other site collections to help populate the information in the header. If we did not have a completely separate UAT tenant, we would have had to maintain two copies of code just to have the custom header pull from the right sites. Further changes would have then required us to duplicate those changes in both sets of code, which would have doubled the work. We also would have had to slightly change the functionality of the UAT code to work within just the one test site collection without affecting the other production sites, which would have made further changes harder to track between the two versions of code. Having a separate UAT environment meant that we could stick to one code base, making it much easier for our developers! In every case where a client didn’t see the value of having a separate UAT environment, we’ve unfortunately burned many extra hours trying to get the solution to a state where users could test it without affecting the production version of the solution.
As one more final note, you may have also heard us at PixelMill or others also talk about a “QA (quality assurance) environment.” While there is a lot of overlap between QA and UAT, and at times some in the industry may use them interchangeably, we at PixelMill tend to think of QA as something that only our developers and testers work with internally as we’re building out the solution to make sure we’re working out the kinks and bugs and also meeting the functional requirements. UAT is the then the “polished” version of the solution that we finally present to you, in order to have final sign-off that the solution does meet all of the business requirements that we agreed upon. However, all projects are slightly different, and we’ve certainly had more agile projects where a client’s UAT environment was also used for QA as the client tried out our incremental changes and reported bugs. We’d love to talk to you to figure out what approach makes sense for you, but don’t be surprised when we strongly recommend having that separate O365 environment to act as your UAT environment!