A Journey of an Application: Dev Envirnoment to Stagging Environment to Production Environment- Thin line Differences.

Rushi Trivedi
4 min readDec 2, 2020

There are three different environments that all the software developers probably deals with at some point during the whole application or software development life cycle. Each of these environments has its own properties, applications and significance. Once developer will know what the environments are used for, developer will make since why we have so many of them.

So basically for any software or application to being developed and released, has to pass through three main environments: Development — Stage — Production.

Lets understand each of the above environments in detail.

Development Environment

Usually spelled out as ‘Dev Environment’,this is the environment that’s on developers computer. Here is where developer will do all of thier code updates. It’s where all of developers commits and branches live along with those of developers co-workers. The development environment is usually configured differently from the environment that users/client work in.

It’ll be connected to some local database or a dummy database so that developer can write thier own code without messing up the real data. Since there will be multiple developers or people working in the development environment, all can also handle any branch merging.

Nothing developer do in the development environment affects what users currently see when they pull up the website. This is just for developer and the other team devs to see how new features will work and to try out improvements.

A lot of preliminary testing will happen in this environment. Developer don’t want to release your code before team make sure it works locally at least. Go through developers code as thoroughly as team mate can so that they can limit the bugs that squeak through to the next environment.

Stage Environment or Staging Environment

The stage environment is as similar to the production environment as it can be. Developer will have all of the code on a server this time instead of a local machine. It’ll connect to as many services as it can without touching the production environment.

All of the hard core testing happens here. Any database migrations will be tested here and so will any configuration changes. When an developer have to do major version updates, the stage environment helps you find and fix any issues that come up too.

If developer have a client, this is when developer would be able to give them a demo of how things work and look. They will be able to see how things will work when they make it live and they will be able to give you any feedback you need. Think of the stage environment as the place developer do the last checks and developer polish things up.

Production Environment

Every time developers talk about making thier project live, this is the environment developers are talking about. The production environment is where users access the final code after all of the updates and testing. Of all the environments, this one is the most important.

This is where companies make their money so developers can’t have any crippling mistakes here. That’s why developer have to go through the other two environments with all of the testing first. Once developers are in production, any bugs or errors that remain will be found by a user and developer can only hope it’s something minor.

Some developers like to do roll-outs to the production environment. That means they release changes to a few users and gradually roll them out the everyone. Not all of develoeprs updates have to be released into the production environment at the same time.

In some cases, developer might roll out thier changes on a schedule to handle load issues or to make sure that there aren’t any major issues sneaking through. Developer can release changes to the production environment without going through the stage environment if there’s an emergency although it’s not something developer want to do regularly.

Different organizations will deal with these environments in their own ways. Some of them have different names or there may be more environments than these. Regardless, develoepr know what they need to in order to make the best use of each of them.

As a side note, I know the stage environment can be a pain sometimes. It takes so much work to set up this fake production environment and write all of the tests for it. Although it is worth the time. It’s better to go ahead and get this step over with because it’ll save developers time bit more than developer will ever know.

Thank you folks……………………..

--

--

Rushi Trivedi

Full Stack Developer || Application and Software Developer || DevOps Engineer || Ex-Oracle || M.Tech. CSE