How to properly do changes in your environment

This will be rather short post, but I hope it will be helpful. Basically, goal of this post is to explain importance of sequential changes to anything. And it is better to explain with example. Imagine you switched internet provider, bought new router and new Smart TV and you did it in one day. Now, let us say you have problems during streaming on your new TV.  Where is problem?

It could be new internet provider. For example, new provider can handle IPv6 differently. It could be issue with new router. It could be buggy. It could be your new TV or application you are using for streaming. It could be incompatibility of your new router and internet provider. It could be incompatibility of your TV and your router. Or it can be combination of all three. How to identify where is problem?

Well, to be honest, if you change so many things at once, it will be quite tricky to identify and fix source of that problem. And to simplify such search it is way easier to do these steps one after another.

For example, change internet provider but nothing else. Wait 2-3 weeks. If everything good, go to next step. If not, you know that it is probably internet provider issue. And even if there will be some incompatibility between your old router and internet provider you will still narrow you search considerably.

Next say upgrade your TV, similar story. If it does not work, there will be quite simple cases and you can identify problem way faster. Let it run for the same 2-3 weeks without changing anything else. And then do last step and change router.

I have seen merge of two different features at the same time to main branch. And then teams obviously blame each other for all problems. Obviously, they did solve all problems, but they did it way slower.

Similarly, I seen deploying two different but connected features at the same time with the same results.

Or for example optimizations. Do them one by one and test your application after each of them. Some optimization could break application in quite nontrivial way, and it will be easier to find where is problem if you apply optimization one by one.

And this will not apply only to IT. I Imagine person who did major service to a car and installed custom chip that controls engine at the same day. After 2 days car is behaving weird. Where is fault? That person will have no idea, and it will take a lot of time to resolve this issue. Car dealerships will blame chip and chip installer will blame dealership. And at the end there could be problem in both. But if that person will do these steps one by one, it will be possible to identify and solve it very quickly.

As result there is my advice: do all changes one by one with cooldown between steps for some reasonable time. It will save you a lot of diagnostic time.

I hope it helps someone.