A very funny story. But in general, I have worked in such companies in my time and generally understand how to interpret such situations. Well, from the perspective of a Software Architect.
I will tell you how a programmer with experience in optimizing processes in a large company.
The network of offices of any large company can be seen as a distributed system of servers with poor and unstable “hardware”. Each branch in this concept operates on its own program, which is generally a clone of one common program or its regional variant. Each such program at the local level works with its own set of data, and all this data is skewed and crooked. Accordingly, the program must take these errors in the data into account and not break down.
Any errors in the code of such a common program are painful because the entire network suffers. It takes years to polish it.
How well should such programs-processes cover all kinds of non-standard or rare situations? Obviously, you can’t foresee everything, so they wait until the number of incidents exceeds a certain threshold and then start to systematically solve it. If it doesn’t exceed, it’s cheaper to ignore it. Otherwise, the complexity of the processes will be such that errors will occur more frequently locally.
If the threshold is exceeded, it’s necessary to release and distribute a “patch”. This patch might fix one thing but break another. Therefore, the patch needs to be tested on a small network of branches, and then gradually extended to larger ones. It all takes a long time because it’s necessary to gather statistics and feedback, understand if it doesn’t break anything important, etc.
And in such a system, there’s always a huge list of features that need to be implemented and introduced. Essentially, it’s a very long backlog. Put yourself in the shoes of the owner of such a network – would you rather choose a feature that positively affects the revenue (plus 0.05%) or a feature that affects the satisfaction of 0.05% of customers?
Plus, very often inconveniences and issues simply don’t cross this threshold simply because a proper feedback system isn’t established. Customers don’t complain because “it has always been this way” and because “there’s nothing to compare to, they are the only ones in town”. Employees don’t complain because it works anyways, why add more work for themselves.
Besides, such a distributed system is constantly subjected to “attacks” and “hacking”. Not only by end-users but also by its operators – branch employees. This is when vulnerabilities begin to be used for personal gain. Often, it’s not even illegal. As in the situation with “tax optimization”, here, it involves using Russian ingenuity to exploit weaknesses in the processes for personal benefit. And it works like with the chairs from Ikea, which people take for a weekend picnic only to return them back to the store on Monday.
Any very large system is just full of such problems. They can only be solved by breaking the system into smaller pieces, which would compete with each other for the quality of service. This is how franchises are structured – take McDonald’s for example. It’s also important for more than one company to operate in the same field – competition fixes everything. This would fix “Post of Russia,” which is a monopolist.
