There are two types of companies
Fri, 03/29/2019 - 16:43
There are 3 main reasons to explain why this is important. They all relate to Amazon’s leadership principles but are easily applicable for everybody. There are two types of companies:
- Where there is a dedicated system administrator responsible for deployment in a production environment. This person can be contacted at any time.
- And where software engineers have to call the software they produce. But you cannot even imagine how critical it is.
Firstly, when something breaks it means that your customers are exposed and cannot perform a specific action. For example, the database storing the inventory of the entire warehouse was overloaded. Just imagine that in a couple of minutes you can lose hundreds and thousands of customers. If it ever happens to your site you will want to fix this particular error very fast.
This problem has a significant impact on your business. So, if you are pragmatic it makes sense to publish on the pages the names of people who are more versed in the code. They know what changes have been made recently, can quickly determine the cause of the error and fix it. Did you know that 87% of the traffic comes from a single client? But there are times when the database reaches 95% of the CPU and is on the verge of destruction.
In this high-pressure situation, you must remain calm to make the best decision for the client. You also do not have time to request access or approval, therefore, in order to remove misunderstandings give production access to your developers. This is why we need DevOps.
Secondly, if you are responsible for the code that you send, then think twice before starting any line of code in production.
You can enter it for a test but what is the guarantee that your client will not save this link? And if he tries to go through it be prepared that mistakes on the site cannot be avoided.
Do not put dirty hacks in your code because it will work. Invest in test coverage, automation, CI/CD, real-time logging monitoring and alarming, because you have to know for sure when something goes wrong. The idea is to know about all 'bugs'. And if you do you will have clear priorities. This 'call' gives you the opportunity to fix the errors.
Insist on the highest standards
Thirdly, if there is a problem (and believe me it will be), you will correct the error once and for all. You do not want to waste your time twice for the same reason.
It all starts with determining the root cause. Many recommend using the method '5 Whys' to find the main reason. It's easier to come up with a list of actions to avoid this in the future. It serves as reference material and documentation. Death documents are reviewed by groups on a monthly basis and can help all employees of the company.
Moreover, you will be sure that you are ready for any incident. Try to create your own list based, for example, on the idea of a checklist, it guarantees that you will not forget anything in case of an emergency.
There is no “small error” or “minor error”. They all hide something more substantial like a lack of quality that once accumulates and has unpleasant consequences.