Generally we hear the terms development and production in large application systems where there will be separation based on the knowledge that people are working on as different teams. The term “Production” is commonly described as the environment where the actual application deployment takes place and “Development” is the local environment where the development team work on the project requirements to move it to the next application phase. The main principle that separates these two topics is ‘the modifications of production should be strictly limited, whereas the development needs to be open for progress and changes’.
Does every company follow the same procedure?
It is a ‘Yes’ for almost all standard companies regardless of their business backgrounds. When people hear about DTAP (stands for Development, Testing, Acceptance and Production) they usually relate the term to software application development systems. Although the test and acceptance environments can sometimes be absent based on the company requirements, the other two entities are very common in most of the system processes. Many organizations that are not involved in application development also follow these basic rules where senior most persons in the company with higher system expertise will be working in the decision making of final output.
Is it necessary to have separate environments for development and production?
There are many advantages keeping these two environments separate, but the basic fundamental fact is – never make changes to a working production environment unless the changes are well-tested and corrected for errors and bugs. If the work environment is not separated for development and production, then it becomes difficult to follow this simple rule. For instance, you make a proposed change and the system becomes totally unusable for all users during normal business hours which is not OK for the company business. So it is not advisable to make alterations without first putting it through different paces outside the production environment.
Difference between production and development environments:
- As the development always comes ahead of production, the end users or clients at that point are still largely theoretical. Once the development team complete their work on features and bugs, they move the system to testing and eventually to the deployment in production. The team working in development can only work on the mock server that imitates the production server but will not get the real availability to the production environment.
- When it comes to system access, the development environment is always loosely controlled to allow the employees perform their work on multiple tasks without any user restrictions, whereas in production the security is very stringent. The logging, monitoring, scalability, security and performance are always watched closely in production but development has the flexibility to go wrong in case of bugs or errors.
- Only the experienced persons who are well versed with the application are allowed to work in the production environment because they know thoroughly what needs to be done in case of system emergencies, whereas a naive person who has insufficient experience on the particular system can only work in the development but not in the production.