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.
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.
Fully agree, but the people making the decisions at large corps are not developers, and are just as focused on costs as the Indian outsourcing firms pushing low cost devs. And in turn, those people are pushed by the board to make cost reductions, and board members understand this even less.
As a developer and architect, I've had this discussion many times over my years working in the enterprise space, and it always ended with me throwing my hands up and giving up.
It's easy to save money on developers, yet very quickly produce a net-negative result for the company.
Sadly, few companies have guardrails to prevent these sort of shortsighted choices. E.g. requiring parallel approval of projects by IT architects (whose existence admittedly carries its own hazard).
I think a lot of this effect is caused by wishful thinking from people embarking on business plans which they would realise are non-viable if they did the accounting properly. People are buying a fantasy instead of an IT system.
And that's not because the guy making it is shit. It's because while he's making it, the market is moving and I'm watching it, and when it moves enough I have to come over to him and tell him to change things.
That's why slow, costly things overrun by more and are later. It's because the world changes, and fast+cheap things are superior because even if they're worse, they exist and can therefore be changed to what the world is.
If you put in the time and pay the money to build an awesome system that is stable and usable for decades, there's only a small chance you'll be rewarded. First because no one notices when software is working. Second because you will probably have moved on to a different role at a different company after your wisdom is confirmed ten years later.
Saving money now is what gets attention.
Undoubtedly this is true, but there's an implication here in this context that somehow on shore, or more well paid developers don't create such technical debt, when in fact they do. It amazes me that I see team after team of competent well intentioned developers create one ball of mud after another. It's striking really.
I have known this as a junior, never really getting to know a technology before hopping to the next one, and I am still having to deal with this now that I have a bit more experience, trying to convince my colleagues not to be so quick to dismiss the modern for the newer.
Sometimes I feel like I do not know what we are doing although being one of the senior members of the team. Stuff quickly snowballs into mud... It's like there is not enough effort or time to deliver functionality while also staving off entropy
It is! But I don't understand... how? How does that happen? You should put good people together and get something good. But it is not always so. Very puzzling to me.
This is like heroin to these corporations. They use Jira and Rally to create a cult of numerology games that reduce tasks to filling time-boxed, random things- to-do. Be sure the Agile coach is drilled in the game and clueless about "technical-things". Add an equally clueless Product Owner whose background is Word and Excel and you'll create the best Big Ball 'O Mud anybody ever wished for.
And if you're running late, add a dozen or so new inexpensive -cough- "developers" from your favorite outsourcing firm.
If you have a bad CIO/CTO - you're screwed long term.
Having worked extensively with the major Indian vendors, with people from India in different settings, onsite and offshore, I observed that they simply focus on labor costs in Europe and elsewhere.
Salespeople tried to sell us dozens of teams with “cheap” developers of every skillset we wanted.
But that is not how software is done. I want outcomes not masses. I need creativity to work on tools expressed through software not cheaper developers.
I felt sorry for my Indian dev friends that the true value of these folks was left off the board.
Salespeople always tried to solve a problem with another “cheap team”. Enter SaaS...