When developing a process for deployment of production code, several key concepts should be held as critical:
Above all else, the most important thing is a working production system. This is where all business value is derived and therefore, it must be maintained in a suitable state.
The main working branch of the code base should always be ready to be deployed. Changes committed to this branch must not prevent the deployment of code. If they do, immediate priority should be directed at fixing the broken code. If