With the rapid development of new technologies, the rule of not deploying to production on a Friday seems to become less observed. It is considered obsolete and simply covering up flaws in code development and testing. Is this opinion correct? In our company, we still ask the developers not to deploy to production on Fridays, because it is associated with various, including financial, risks for our clients.
We aim to increase the profits of our clients.
In our work, we have seen various errors occur after deploying updates. For example, in one of the cases, it was an online store website, where the “add to cart” button disappeared from the description of the goods. Such an error, if not corrected quickly, brings financial losses.
There are two types of problems that may appear:
1. Failures that are easily tracked, because they are shown by system monitoring or they have led to numerous complaints from users of the service. If such critical errors occur after a Friday deployment, then technical support and programmers will try to fix them as quickly as possible, however, they would have to work on the weekend.
2. Errors that are difficult to notice, but they cause problems in the work of the website and loss of profit. For example, errors only occur when a customer visits the site from a certain type of device, let’s say an iPhone, or a particular operating system. For this customer, the error may make it impossible to buy on the site or look through the products. Such errors are hard to notice, but they are harmful to the business. This is especially undesirable on weekends because most likely the problem will go unnoticed and will not be fixed until the next week.
Deploying updates on Fridays increases the risk of financial losses because of possible errors in the work of the service. Increasing the profit of our customers is one of our main goals, and anything that can negatively affect the profit is unacceptable.
How we recommend working with updates
- Test your code. It is necessary to test the new code before deploying it on production servers
- Deploy an update gradually. If the system architecture allows this, you should first deploy the update on a small part of the system. For example, deploy the new code on one or two servers, so that the updated service takes over 5-10% of the customer flow. Thus, if an error occurs, it will not affect the entire system and can be eliminated, and its consequences will be minimal. If the update works fine on the part of the system, it may be gradually deployed on all the production servers.
- Do not deploy on a Friday. Whatever the testing, it cannot give a 100% guarantee that the new code won’t bring any problems to your service. In order to minimize losses, we ask our clients’ IT teams to deploy updates from Monday to Thursday.
We are always happy to help. If you have any questions, ask us, we will answer and give recommendations for improving the performance of your website, services, and servers.