Today British Airways was all over the news. Fortunately no airplane tragedy happened. Unfortunately an IT tragedy happened. Specifically all systems went down worldwide due to a power supply issue.
Now, if you've worked on IT for more than a couple of years you'll have to wonder. How did they manage this? Do they have only 1 database with a laptop running all operations? What happens with backup data centers? Backup systems? Multiple locations? Support? System resilience? How is it possible one power supply issue to drop everything?
According to hacker news (and people experienced with BA IT) BA has been outsourcing a lot its operations to Poland and India (via Tata). That's a major problem for any organisation for various reasons.
The number one reason why outsourcing is a problem is the reason why companies do it. Upper management, completely detached from reality, thinks that systems development and maintenance is a trivial process (or at least less difficult/critical than the rest). As a result IT operations and development become a fertile ground for cutting jobs onshore and moving them offshore. This is dangerous.
Maintaining and building systems is extremely complex. For your developers, designers, analysts etc to be able to know where the complexity is, and provide to best possible solution, they have to be close to the users of the system. That is (in BA's example) your operators, the ground stuff, the pilots, the passengers, everyone. If you are not super close to your customers and understand their pains your system is useless. It doesn't add any value, it makes everyones life harder.
OK, so you need people close to your main market, close to customers. One potential solution is to keep a strong core of your team onshore, and outsource parts of it. That doesn't mean keeping a million business analysts to your HQ. That means having software architects, developers, Quality Assurance, DevOps etc. These people have to be responsible for the quality of the solutions provided. They have to oversee everything and orchestrate the different people in all those different countries.
What's actually happening? At best there is one person, responsible for everything. Obviously that person is not able to cope with all that needs to be done so the quality drops.
A team works best when they are a team. They have to spend time together, solve problems together, socialise, have fun, get to know each other. When that happens, magic happens. I can tell you from experience that you can't be a team with people that you have never seen face to face. You can't be a team with people that you have a 4 hour window to talk with, because India and London have four and a half hours difference. Also you can't discount the massive difference in culture.
It's important at this point to know how offshore contracts work. The offshore companies take on a project with a very specific deadline. As long as they are within that deadline, they earn money. Past that day though they lose money and they have no incentives anymore. As we all know, of course, there is no project delivered on-time.
The result is that eventually you are going to end up in the unfortunate situation where you are in a hurry and they want out. That's when lawyers talk and projects die. That's where quality doesn't exist and a simple power failure or a null pointer exception grounds all flights and makes you lose millions (plus the legal fees, because lawyers ain't cheap).
It's not uncommon for outsourcing companies to assign their resources (yes your team mate) to two or more different projects at the same time. You can now understand why people are dragging their feet. You are not their team mate, you are a bad client.
They resent you, you resent them, your manager resents you, their manager resents them, you hate your job, you leave. Everyone loses. Apart from the lawyers. They never lose.
So what's the solution you might ask. We have to understand that cutting costs and being lean is an actual necessity for every company. Also this is a global market now. Borders are but an illusion.
Instead of using this global market for outsourcing your critical operations, to a random company, build an offshore team. Pick a place, any place and invest there. Invest to the country, build a nice office and hire the best talent in the country. People will love you, they will work their shoes off and they will be super loyal. You will add value to their lives, to that country and the local community. And the costs?
The costs are going to be a fraction of what you will EVENTUALLY pay for outsourcing. Because in the final cost of your outsourced project you need to add the extra money for contract negotiations, legal fees, hiring extra people to fix the bad quality system and finally the brand damage that you will eventually have to deal with.
P.S The problem with outsourcing is not country specific. India and Poland have awesome talented people. Especially India has a few of the brightest minds on earth right now. The problem is that awful managers in big companies are making the wrong decisions. They support bad companies that offer awful jobs to people in the respective countries. This way they perpetuate an awful situation.