Norway

oslo@kanari.com +47 416 15 503 Orgnr: 815084632 Dronningens gate 3 0152 Oslo

Sweden

Denmark

copenhagen@kanari.com +45 22 22 46 21 CVR-nr 36688637 Dampfærgevej 27-29, 2100 København Ø

Finland

helsinki@kanari.com +358 405922011 FO-nr: FI26831099 Mechelininkatu 1A 00180 Helsinki

Introduction to stability

Last modified: 23.10.20
Production code breaks – can you minimize the effect of it?

Production code breaks – can you minimize the effect of it? Instability for the end users give bad reputation and ultimately affects the revenue. Broken systems cause insecurity, and is usually a symptom of something else, such as lack of working processes. But sometimes it’s out of your control that would say if a third-party stop delivering their services or makes a breaking change.

If the end users are not satisfied with the delivery of the software and the stability of the software they will start to look in another direction for something that works, we’ve seen it happening many times. End users don’t want to be interrupted with whatever they’re doing, if it’s working, shopping online or whatever else the user decided to do. In today’s IT-era it’s easy to switch to another site that has a similar product or provide the same value. The competition is getting harder for it-businesses.

What can we do to improve the stability of our production system?

The very first thing to do is to think long term. This is a very easy idea, but companies fail to do it still. Rushing out new badly tested features and creating a monster that haunts you at night – ever been woken up by a production issue?

Having a long-term plan saves headaches and night sleep for the future. The very first thing to focus on is to have a stable infrastructure that the software will run on. This can today be solved in various ways with any of the cloud providers or any other provider that is specialised into having just that – stable infrastructure. Stable infrastructure is not the only thing – but stable software is as important.

How do we get stable software?

Think of this as an iterative process. You need to have several environments in order to test your code at different levels to make sure that the features are tested before it takes off to a production system and exposure the code to end-users. The lowest environment is development where the developers can benchmark the code and make sure that it works. Then there should be one or more test system when internal users can access the application and test it further and maybe do iterations with the developers on how it can be improved.

You would like of course to find any bugs and improvements as early as possible to be able to have a fast-iterative process. Then at last you have the production system – where you think your code is good enough to be published and used by the end users.

Thinking handling this manually? You’re doomed to get into problems in that case, human errors are inevitable and to reduce these you should have everything in code and under version control – you will still have problems, but much less. What should be under version control? As much as possible.

You will certainly have problems with the production environment if you haven’t, yet you haven’t been running the software long enough. With problems I mean failure rate increases, performance degradations and everything that affects the end users. You will notice after a while that you do not have control over everything that the user depends on. You might have full control over your datacenter, but do you have control over the ISP? the device that the end-user is using? the internet connection that the end-user decided to use and every component that is between you and the end-user as well? This is a multidimensional problem with so many dimensions that it is impossible to have control over every single piece that can break. But you need to focus on the parts that you really can improve.

In order to break down this multidimensional problem you need know what is happening in your production system and to really understand the problems your end-users experience, you need to have insight end-to-end, from every action on your website or mobile app into the database and all components in-between including third party integrations.

Kanari are experts on this area and know how you can get insights into your:

  • Applications
  • Infrastructure
  • Process – How you work to reduce problems

We know how you can archive more with less and know what bad performance and instability costs the business but it’s not only down to tools even though they get you further in this process. It’s the competence and the actions that makes the difference and not to forget having a long term plan.