In computing systems, a deployment environment is a computer system in which an application runs. There are several styles of environment which are used typically:
Using these environments, we can follow a software development procedure like below:
Get your development in a clean state. This means the repository should be an exact copy of repo code - no uncommitted/untracked changes, you should have a recent copy of the application database loaded in your dev environment, and be sure clear any caches or generated files.
Work on a single logical unit of work. For example, add an extension, edit code, disable a module, edit some CSS files, edit some text, etc.
Ensure functionality is as-expected, look for errors in logs, measure for performance regressions.
The change have passed the development and testing stage. Deploy to staging / integration for final check.
If deploy and final check are successful, you can roll out you application to the world. Sit back and enjoy your work!