Five years in software development has taught me one thing: the word “Software Development” is nowhere close to explaining the complexity behind the term.
Over the years, different methodologies and techniques carried out to make the process easier. In my last project, we were following the agile methodology for software development. We encountered many production issues after our first release. We thought we had a rock-solid approach to filter out as many defects in earlier stages.
So-called Rock Solid Approach
We had four major environments — Dev, QA, Staging, and Prod. The purpose of these environments is mentioned below:
- **Dev **— Used by programmers for development activity. They push their code in this environment for unit testing of their changes before moving it to the QA environment.
- **QA **— As the name suggests, this environment is used by the testing team for verifying the changes made by developers. This environment is primarily used for testing dev stories in each sprint and demoing the same to product owners.
- **Staging **— Once code is ready to go in the next release, then it needs to be placed in the staging environment. The staging environment is a mirror image of the production environment with all similar configurations. This gives the fair idea to test the code before actually putting up into production.
- **Prod **— The production environment is the live environment where the application is hosted for all the clients. If any issue comes into this environment, then it is of high severity.
#coding #pair-programming #software-development #programming #software-engineering