You outsource your software development to some country with quite low average monthly salary. Say some country in eastern Europe, where average salary is $500 / month.
Then you only hire from the top CS programs in the country and pay them, say, 3 times the national average - so $1500 / month. Given 150 work hours in a month, that comes out to $10/hour gross pay.
You get good engineers, pay less, and they earn more than they'd get from pretty much any domestic employer.
If the average software dev in the US makes, dunno, $70k / year, then that would be the equivalent of getting hired on a $210k / salary.
Of course, it's not all smooth sailing - but I think the important part here is to keep in mind that pay is relative. What could be a pitiful salary in rich western countries, could be a very good salary other places.
You are underestimating how difficult it is to communicate with people from different cultures.
I did an electricity project with developers from the Ukraine. We spent a week being confused because the Ukrainiens expected the electricity bill to be calculated based on the size of your house and how many animals you have. The concept of a domestic electricity meter was completely foreign to them.
I also worked with a Ukrainian graphic designer who had no understanding of copyright law.
> You are underestimating how difficult it is to communicate with people from different cultures.
US devs are highly overestimating the value of being American. They don't understand that a Ukrainian dev working at 80% performance because of cross-cultural issues for 50% salary is still a good deal. And when the company becomes international then the whole argument becomes reversed because the US devs become a minority and it's them who fails to adjust to others. Sure, it's difficult to hire a good dev from abroad, but when this gets done right, it saves a ton of money. For example, an American company can buy a smaller, healthy foreign company, and with the company, all the knowledge of operating in the local job market.
There are tons of posts on Reddit "I'm American and I graduated in Computer Science and I was promised $200k jobs but I can't get hired at all" from people who fail to understand basic economics of big companies.
Not necessarily, because the bottleneck ends up becoming the Americans once again. Because the business is here, they have to be the ones to identify and fix mistakes, as well as do culture translation. So you end up saving employees of one category but then having more of another category.
One of my professors used to work at RadioShack and they had large teams in India. The software quality was good, but the interoperability was really, really bad. Not surprising since communication was awful due to time zone differences.
She, and her team in America, spent a huge amount of time normalizing their output to the American output. And you have to go in that direction because the company is in America.
> Ukraine. We spent a week being confused because the Ukrainiens expected the electricity bill to be calculated based on the size of your house and how many animals you have. The concept of a domestic electricity meter was completely foreign to them.
What are you talking about? Private apartments and houses in Ukraine had domestic electricity meters installed since soviet times.
> Say some country in eastern Europe, where average salary is $500 / month.
Then you only hire from the top CS programs in the country and pay them, say, 3 times the national average - so $1500 / month.
This is 10-15 years out of date. And even then it was hardly ever as straightforward as that. And only ever applied to junior and maybe mid level developers or those who couldn’t effectively communicate in English. High skilled one were significantly more mobile and were basically competing with a much more global pool of developers. They could relatively easily move (if not to the US then at least Western Europe so your potential savings were usually limited to the difference in CoL + some premium).
This led to pretty high inequality based on skill/experience e.g. to top CS graduates could expect their income to increase by 3x if not more over the next 5 years after graduation.
Average wages for workers in Eastern Europe are way higher than $500/mo, never mind software engineers. Poland is $1,400, Hungary $1,200, Bulgaria $1,100, Romania $1,600, Lithuania $2,200, Estonia $2,000, Latvia $1,700. If you assume that software engineers will earn at least double the average wages of all workers, you're looking at $2,200-4,400 as a base. Paying 3x that to get the top people would mean $6,600-13,200/mo. Ultimately, you'd be paying $44-88/hour to execute your strategy.
Countries like Bulgaria and Hungary are both in the EU allowing workers to travel to Germany, France, etc. to get jobs. They aren't trapped behind immigration laws that don't allow them to move to places with higher salaries.
Even if you look at India, $10/hour wouldn't get you the best engineers. Mediocre engineers are earning that after a few years experience. Maybe you'll say that you'll pay triple that and that $30/hour is still cheap. Sure, $54,000/year is a cheap software engineer, but I think the best engineers have better options than being seen as a cost savings for some American company.
Frankly, it isn't necessarily about the money itself. It's about the attitude. If a company sees software as a cost center to be optimized/cut, their software will be crappy. If you're just focused on cutting costs, it's not just about how much you're paying engineers per hour. It's also about whether you let your engineers work on something that makes the product better, but might not be strictly necessary. For example, maybe there's a process the customer has to go through and many do it wrong because it's confusing. Will you let them spend the time to re-write it? Or will you say that it works so you don't want to spend money on that and customers will put up with it?
In theory, you could have more engineers and allow them to do more if they were cheaper. I've found that (in practice) when companies are looking to optimize salaries like that, they're also optimizing the time spent on things as well. They don't see their software as a strategic advantage to be invested in. They just see a cost center to be cut and that won't just be salaries, but also hours worked.
It also creates a crappy atmosphere where workers often don't care about getting things done beyond what they need to keep their job and not get yelled at. You're looking to work the system for yourself and minimize costs and they'll get a similar attitude where they try to work the system and do as little work for you as possible.
I'm not saying that you couldn't create a great company in Eastern Europe or India - they exist. But I think if your attitude is one of outsourcing a cost center, you won't get what you're looking for. Pay is relative, but it's higher than you think and you don't want to fall into the trap of just thinking that software is a cost center.
Plus, you don't even have to go that far to get cheaper engineers. You can pay half of what you pay Americans in France or Germany.
You outsource your software development to some country with quite low average monthly salary. Say some country in eastern Europe, where average salary is $500 / month.
Then you only hire from the top CS programs in the country and pay them, say, 3 times the national average - so $1500 / month. Given 150 work hours in a month, that comes out to $10/hour gross pay.
You get good engineers, pay less, and they earn more than they'd get from pretty much any domestic employer.
If the average software dev in the US makes, dunno, $70k / year, then that would be the equivalent of getting hired on a $210k / salary.
Of course, it's not all smooth sailing - but I think the important part here is to keep in mind that pay is relative. What could be a pitiful salary in rich western countries, could be a very good salary other places.