According to Wikipedia Staging environment means : an environment or tier is a computer system in which a computer program or software component is deployed and executed. In simple cases, such as developing and immediately executing a program on the same machine, there may be a single environment, This structured release management process allows phased deployment (roll-out), testing, and rollback in case of problems.
Chris Lema explains this much better in simple terms : A staging environment is an environment that duplicates the production environment (same hardware, same software, same settings) so that any evaluation of code can be tested before being placed into production.
Pros:
- Testing causes less bugs to hit production
- Mitigates risk of breaking sites on upgrades (core, themes, plugins)
- Avoiding the issues and/or downtime that might otherwise result due to lack of testing environment..
Cons:
- It takes longer to update your website (as you need to test changes first).
- Staging sites may not be fully in sync with the live website.
Conclusion
All code changes should happen via version control (e.g. GIT) for easy revisions, testing, and deployments. You should always setup a staging/development site so you can make changes and updates without compromising your site’s integrity.
Image Credit
Creative Commons 3 – CC BY-SA 3.0