I was recently asked “How should we setup our IT environments” ? I followed up with the answer below.
Note* Some of the terms are interchanged and cause confusion. Your most basic setup is DEV-STG-PRD. You will hear variations of this depending on various factors. You may hear DEV (Development) interchanged with INT (Integration) or STG (Staging) interchanged with QA (Quality Assurance). You may hear someone interchange Staging with UAT (User Acceptance Testing).
Most confusion comes from the staging environment and what happens there. Once changes are promoted to STG, it must be load tested, QA’d and UAT’d. In some environments, QA and UAT are separated to not tie up other projects that also need to move to STG and make it to production. This is why it is **very important to always double check your work before you hand it to any person or environment.
A company may structure their environment like this: I am separating all environments for the purpose of clarity.
1. DEV – Developer workstations, laptops, etc.. (where code actually get’s written)
2. INT – Code has been checked in to source code and this is where real testing begins, deployment plan (sign off) required.
3. STG/QA/UAT – After all applications are tested by the development team, it is handed to STG for Quality Assurance testing by BA’s (Business Analysts) where they can ensure all requirements were met by the development team. Once the BA’s are satisfied, the code/release/change is handed to our user test group for UAT in the Staging environment.
4. PRD – Once UAT is signed off, the change is promoted to production and hopefully by that time your team will have become very confident with our changes to ensure 99.99% uptime in Production.
*Your Environment: your team should understand and be in accord with our chosen naming convention. It is imperative for us all to know what servers user’s are talking about when they mention they are “Using QA” or “in the middle of QA”.
At a minimum a shop should adopt all numbers 1-4 but using this notation:
1. DEV – Where we test what we develop/change in the environment.
2. STG – Where we QA and where we UAT.
3. PRD – Where the business runs.