So what exactly is a staged deployment environment? It is basically an industry standard practice of separating your development, testing and production systems.
When using Git with this model you can create development, testing and production repositories and move your code between them as it moves through the stages. This helps to make the whole deployment process a lot easier to manage.
Coding is performed by a developer using Iguana on a desktop machine. The developer will commit changes in the Iguana builtin repository while working on the code. Once he is satisfied that the code is complete he will export changes to a shared development repository.
Some code testing will usually be performed at this stage to ensure it integrates correctly with (and does not break) other code. Any testing at this stage will have a technical code based focus and will be performed by another developer, or someone with a development background. Automated backtesting can also be performed.
Once the code is working correctly in the development environment it can then be exported to the testing repository.
Note: Some technical or backtesting can be performed at the next stage there there is no hard and fast rule, it is really what works best in your environment.
More thorough testing is done at this stage, with a much more business and user oriented focus. Basically you want to make sure that all the data is processed correctly according to the business requirements.
Integration testing to check that no side effects are accidentally introduced, will often include automated backtesting and/or be performed by technical users.
Quality Assurance, where you test that the business requirements are met, probably performed by more business oriented users.
Staging or Pre-production, where you test against a mirror of the production environment, this is basically a final test to ensure that code is safe to release, and usually involves production IT staff (DBAs, network admins, etc).
Once the code passes all the required tests then it can be exported to the production repository.
The production repository is used to track code releases. Only the production ready release candidates should be stored in the production repository.
To complete the release process the code will need to be copied to the live Iguana production server.
Note: Releasing code to live servers occurs after it is uploaded to the production repository, it could be days or even weeks later depending on business requirements.