Staging Environments

It is common practice to have a number of stages environments for software at different stage sof the lifecycle and stability. Each staging environment is used for a specific set of purposes by those users. The number of environments varies between projects, typically the main controlling factor is cost. More levels are expensive but may help with larger team sizes. Cloud hosting allows the ability to  dynamically create and decommission environments when required to allow cost savings.

The project should be clear who is responsible for the various staging environments including:

  • who pays for the environment
  • who manages the environment
  • who can access the environment
  • if the environment can be accessed internally or outside the client organisation i.e. on the general internet
  • the type of data on the environment (dummy data, test data, real customer data etc)
  • if the environment is backed up
  • the availability of the environment (24×7, 8×5)
  • the performance and load capability of each environment
  • how often software will be deployed to environment

Development

Frequent software updates through the day as the software is developed and updated, ofetn unstable and contains code that has not been fully debugged.

Test

An environment used by the testers to check the software has been fully debugged and meets functionality for that feature or change.

Integration Test

An environment for checking an entire system with a variety of updated and changed software modules. Foucs is on the entire end to operation and inter module functionality.

Release Test

Used to check that a full release candidate package can be installed on a target system, either as a new installation or an upgrade. Also to check rollbacks to earlier versions incase of issues following the deployment.

UAT

A system for user acceptance testing (UAT) by the client of a delivery or partial delivery.

Production

The production system that is LIVE and accessible to all users. Requires highest level of performance, and uptime so stability is important. May have a variety of failover and disaster recovery