Deployability
The deployability of a software system is the ease with which it can be taken from development to production. It can be measured in terms of the effort–in terms of man-hours, or complexity–in terms of the number of disparate steps required for deploying code from a development to production environment.
It is a common mistake to assume that a code that runs well in a development or staging system would behave in a similar way in a production system. It is not often the case due to the vastly dissimilar requirements that a production system has when compared to a development one.
Factors affecting Deployability
Here is a brief look at some of the factors that differentiate a production system from a development one, which can often give rise to unexpected issues in deployment leading to Production Gotchas:
Optimizations and debugging: It is very common for development systems to turn off optimizations in code.
If your code is running in an interpreted runtime like Python, it is...