1. Development environment The development phase is the beginning of the project. In this phase, developers may continuously develop or test their new features without worry on any end users using it. So, the development environment was constantly changing as the developers added new features, and was certainly not stable since some features were only half finished at a given time. Clearly, development phase was not a good choice for end users to use it.
2. Staging environment In software, a staging environment is used to test out newer versions of software before it is moved live — into production. A staging environment is to maximize your chances of finding any bugs before release new features to production. So, it become clear that we needed an environment where we could have some people to test out new features before we release it to production. This was a soft launch of the new features.
3. Production environment At this point, it should be clear to you now the difference between production and staging and development environment. If all of the new features were approved, they were pushed to production and make it live for everyone to use and see.