This sadly happened to me many times. Since the quality of many Indian teams was extremely abysmal, I found out that many so-called developers had no IT background at all, as you wrote. They went through a 2 to 4 weeks HTML/CSS/JS Bootcamp, and, very important allegedly in India, received a certificate, that qualified them as “Middle Web Developers”.
Big IT Indian firms usually will choose one or two highly talented developers for a project team and others just hop around them. Usually these projects aren't also very engineering-intensive and becomes boring once the base framework is created for creative folks. Good devs don't stay longer in a company at least during initial years simply they're in good demand and gets double the package with every jump. Eventually they'll make it to Indian subsidiaries of US companies like Microsoft/Google or, they'll start their own expert consultancy/product companies.
For the record I've worked out of India exclusively and have charged up to about $100 hourly rate from my US clients. I've gone through above process - my last job being at Microsoft India (2011-2016)
If they can deliver X amount of value they can also charge X for their service. This means if you hire an Indian for $10 an hour you're going to get value equivalent to $10.
Since productivity per member drops as you increase team size you can't just hire a bigger team to get yourself out of this problem. The true number of developers that your project needs is probably constant and quite low.
If you hire cheaper but less experienced developers then it might simply take 6 times longer to finish the project than if you had hired an Indian developer that charges $60 per hour. This is usually where the project fails. Managers expect the project to be done in 6 months but this estimate is based on competent developers with 3 years of experience, not beginners who are working on their first project and first need to gather 3 years of experience to adequately finish the project.
Really the only way you can get a real bargain is by hiring someone, letting them gain experience without giving them a raise. The difference between market rate and actual developer salary is where you save the most money. The tricky part is creating a environment in which people want to stay.
I think the most promising signs for the local industry is that it’s starting to produce some rather successful home grown startups. Which are much more likely to attract local talent than the outsourcing body shops are.
While I'm sure some will say that 3.2k is ridiculous in country X, I personally met people in all of the above countries working for less while being more experienced.
Hell, I look at the delta between what my firm bills me out for and what I take home, and it's about 12% of my fully loaded day rate.
So 3200 becomes $4800 (or just under $57k a year) - that's still a good deal given what you'd get.
I've worked with eastern and central European developers and some of them are phenomenal (the skill breakdown is about equivalent to UK devs as a pool maybe tending towards them been slightly better but there will be some element of selection bias in that, language barrier is the biggest hurdle, many of them speak/write good English - my partner is Hungarian and her written English is at least as good as mine) but when the tiniest miss-understanding on requirements is costly during development and potentially devastating in production that really starts to matter.
20 USD / hour * 8 h/day * 21 days/month * 12 months = ~ 40,000 USD / year.
Of course, experienced ones don't receive that might higher salary either. About 5 years of experience would probably get you around double to triple the starting salary.
That isn't sustainable - we will just see things equalise with Germany and then where is the competitive advantage? So cutting costs by pushing technical work to eastern EU isn't sustainable, at least in the 10 year time frame.
I am sure EPAM and the tech industry there will adapt to the shift but they will not be as the new Infosys.
I don't mind much about the wage gap between countries when I do local work, but it gets ackward when working with remote teams.
Like I may earn $20k/yr here for what my teammates abroad would be making $100k/yr.
> The bigger problem with this is that the IT systems are not as well defined or a closed system
This is the big issue. At the end of the day creating truly good usable software is both an art and a science. Data structures, algos and theory, but also thinking outside the box, asking inquisitive questions, challenging product and design.
This doesn't lend itself easily to mass export. Also, culturally, I've found that the West has a different way of thinking about things. In India, questioning your superiors is not something that is done often, but in the West it's common to challenge your boss on ideas.
Dig not that many layers deep, and you'll expose the ill-defined and open systems in those industries. This is true nearly everywhere in nearly any human endeavor. This is why the Japanese kodawari concept (meticulous care in craftsmanship, design and service) is even feasible across an entire culture for centuries and counting. Once you really start caring about the customer, your entire center of gravity in your relationship with them changes, and you start stepping through the process through their eyes to anticipate their needs and empathize with how they likely feel through the process you set up for them to go through.
This is very different from the Western "attention to detail" concept. Personally for me, the Western concept has less of a connotation with focus upon caring and empathizing to "listen for" the details, and more upon a situational awareness to "watch for" the legalistic steps of a spelled-out procedure (perhaps rooted in an Industrial Age paradigm?).
That's a really good point. We haven't even settled on how to weed out bad programmers through a formal structure yet, and we still sometimes hear about companies setting KPIs based on LoC or bugs fixed. I'm not sure if it's even possible to have an objective framework to evaluate an outsourced system apart from "meets the spec" which is usually not very helpful unless there is in-house expertise spending a mountain of effort building the spec in the first place.
While you can in theory do your IT things with no passion at all, and kill all creativity and still be productive, it often ends up being just 'mass' like you describe, a transformed version of the classical western 'consultants' that usually end up being companies that focus on sales and billable hours and never really deliver what the people needed (referring to earlier HN posts about accenture and deloitte).
I get that at some point all companies converge on the same generic point of being in the business of making money at all costs, and making it 'measurable' via sales, hours and contracts. It doesn't matter if it's software, financial, legal etc. At least not to them at that point.
The bigger problem with this is that the IT systems are not as well defined or a closed system as the other examples might be. A ledger would be simple to verify in comparison: you apply a fixed set of rules to a fixed period of data and it must result in something within a known range. With software you can do a little bit of determining that the 'borders' of your 'box' of functionality would be, but to do an exhaustive verification is so far from profitable that it's only done in a few highly regulated systems like flight controllers.
So now we have a system where a lot of money and power vectors are involved that would (somewhat) work for legal and finance and the likes (i.e. the classical big ones that existed long before software did) and a constant attempt to apply it to IT and hide everything they don't like about getting the wrong results. It still eats resources like the other kinds of work, but doesn't produce the results you would expect for the resources that went in to it.
Software doesn't operate in a vacuum, disconnecting users, buyers, sellers, or stakeholders in general is bad for everyone and because of endless change and interaction the whole model of 'buying a product' hasn't been realistic since 2000, and with connected OT (think SCADA and the likes) it won't even apply to embedded systems anymore.