Your job was probably outsourced for the reason you suspected
theregister.com
theregister.com
I'm now hiring more and more dev from India and they are in the top performers tier from my team. Just don't try to pay them peanuts... And respect them as any other good dev from western countries.
Avoid shops that have diner-style "We can do anything, and we're great at all of it!" marketing. And also ones which require a heavy PM footprint: that's a good sign they don't trust their own devs.
The former cares about capability; the latter just cares about minimizing labor costs and getting clients to sign.
Glad you had success, we did too, that is until we realized sprints were taking longer and longer, and we were fixing the same bugs over and over.
I don't know why this happens, they are top notch, everything is great and then they play mind games. Reading a bit about Indian culture, this type of trickery is actually not frowned upon but rather celebrated as "shrewdness".
So take any success with Indian teams with a grain of salt.
Good luck finding a developer in Eastern Europe with more than 2 years of experience willing to work for 23 thousand a year. And if that's a gross number (as I suspect it's supposed to be) - good luck finding anyone with even 1 year of experience.
Perhaps the reason there's lots offers for that kind of money is because no-one is willing to take the jobs at that rate?
4yrs, currently doin .NET in hardware/semiconductors industry company
E.g. for back-end: https://www.youtube.com/watch?v=rrTAuTXW_r0&list=PLZmMLJ6Fj9...
(UoP is normal employment contract, B2B is sole proprietorship company i.e. "tax optimization" gov't is afraid to close down)
No idea where they got that number from.
Everyday I hear horror stories, from logistical problem to admin problem to losing money in the millions problem, morale fading away and people are leaving.
Heck, there was one month where my wife couldn’t work at all due to email problems because of that. One month free salary, we’ll take it.
It’s been 2 years and still a shitshow.
What also isn't appreciated besides the immediate dead pool effect outsourcing creates, is that it creates a scapegoat for the onshore people.
When your IT department is down the hall and you throw them under the rug, they walk down and ... meetings... ensue.
When they are around the world and subservient (because they are cheap and everyone knows it, so it's assumed they're bad and you can blame anything on them), then everyone will use that as an excuse, ESPECIALLY since all the extra management/requirements/analysis burden falls on them.
The issue with failed projects in the mythical man month is and has ALWAYS been communication and understanding. 10 time zones and a language and cultural barrier does not make up for that.
It is amazing a 1970s era book remains so ignored. It should be taught in MBA school. No I mean MBA not MIS. I highly doubt it is.
It amazes me that accounting is treated as a core subject of MBA, while basic IT literacy and process is not, even though there is FAR more IT that accounting in a modern enterprise.
These companies deserve each other.
You can hire 10 minimum wage Americans for a good software dev. I would actually guess for QA I could do that and beat the Indian outsourcing team if you looked from any degree of competence.
Which brings me back to the nearshoring. It would be fascinating to try to do some nearshoring in a small rural town, just for devops and other things. There is a lot of people with technical aptitude in the rurals, I know we dump on the US education system but it still is passable, and likely better than India's.
The end result was months of wasted time, an awful lot of wasted money, and no way of getting it back, thanks to India's notoriously corrupt judicial system.
CEO wound up hiring 80 (yes 80!) full time Indian devs on the recommendation of his Indian CTO. They paid me to review the commits after a week and a quick scan showed it was totally plagiarized from a public repo and had zero value. The CTO responded by firing me.
6 months later the CEO asks me to get drinks. The CTO turned out to be a scam artist, all the devs were junk, wasted hundreds of thousands of dollars paying for an army or worthless devs, and the CTO sued the CEO for fraud (???) perhaps as a first strike in a potential lawsuit he knew would come.
Yet Indian outsourcing companies continue to show record profits and revenue every year.
Why do they continue getting fat contracts even if the general consensus is that it doesn’t work out well? Is it just another “no one gets fired for using IBM” scenario?
Because usually even the sum of a "fat contract" + cost of dealing with issues is lower than the amount of money saved by outsourcing, or at the very least the amount of money spent on dealing with issues is part of the general company "administrative/dealing with bullshit overhead" estimate and so doesn't show up on the balance sheet anywhere.
The only reason you don’t hear horror stories about outsourcing to the US is because no one does that since there is no reason to.
Most companies that are offshoring to India are doing really well (which is almost every major IT company). The difference is that they aren’t “outsourcing”. They’re simply developing teams there that work in collaboration with and using the same principles as their teams in the US.
As long as you offshore in a way that keeps incentives aligned (which is rarely the case with outsourcing), you will probably do equally well.
I remember seeing outsourced work done by a Canadian consultancy for a Canadian startup, where in the contract it was required to write passing tests: the tests where testing nothing and were tautologies, so of course always passing.
The shady ones are easier to find, coast on the reputation created by their better competitors, and don't deliver anywhere near the quality.
Same reason McDonald's, Pizza Hut and Taco Bell continue to earn tens of billions in profits each year. Despite the fact that even their most loyal customers surely know (on some level) that their product is barely edible slop, and is probably shortening their expected life span with each and every bite.
C* / VP is the one looking at the budget and deciding out-sourcing makes sense.
The problems with out-sourcing results are technical and detailed and only obvious to those at the other end of the reporting chain.
To a C* / VP, they see "Weird, my projects keep missing their schedules for no discernable reason."
To a developer, they see "This code is obvious shit and devs are missing basic hygiene practices."
There's no link from the latter to the former. And so out-sourcing continues.
Almost immediately I found what was either a backdoor, or the most glaring security vulnerability I've seen in a while. The application had a way, accessible by anyone who can access the URL (anyone with internet access) to disable a number of security features that were there to prevent certain types of attack.
If it is normal for companies to be hiring people at good salaries to work on zoom remotely from, say, Montana, why not just go the next step and hire in Latin America?
There are plenty of brilliant software engineers in Latin America (I have met and worked with many), and even if the company is not motivated strictly by cost savings, they can just get better engineers at any given price point. They speak English well enough and work on zoom from a reasonable time zone, like any usa-based candidates
USA-based software engineers have been the initial beneficiaries of the COVID push to remote work (and this will continue), but the long term benefits will go to the brilliant people in other countries who no longer are hampered by geography.
There are 3 ways I can look at it.
1) Agglomeration effects are real. And physical proximity matters. And having all these really smart people in the same physical space led to results that were greater than not having them in the same space.
This is the belief tech companies held. And that’s why they were willing to pay people in the Bay Area 5-10x what they would pay people not in the Bay Area. And that’s why they pushed for a return to office.
If this is true, then US workers have shot themselves in the foot by pushing for WFH because they’ve voluntarily eliminated their advantage over cheaper workers offshore.
2) Physical proximity doesn’t matter. Agglomeration effects don’t exist. Companies were duped into believing that there was something special about American water.
If that’s the case, the the beneficiaries of this misconception, US workers, have voluntarily chosen to clarify that it’s not true. That the companies paying them extra were kind of foolish to do so.
3) For whatever reason, the smartest people only lived in the Bay Area for reasons that had nothing to do with geographical advantages of physical proximity to people (lets say it was the high salaries that drew them to it, but this has a huge chicken and egg problem). So the people earning those high salaries deserved those high salaries purely on their merit.
But this isn’t any better. With the push for WFH, all it means is that they will be pushed out to cheaper places to live. Everyone seems to think that this cheaper place will be out in a suburb in Arizona, but in reality, Brazil is gonna be even cheaper and in the same time zone (and in many ways better). Portugal is really nice. Lots of Indians might decide to keep their US salaries and live back in India where they can have a better lifestyle and have their children spend time with their grandparents.
And all these people may be willing to take a marginal salary cut to do so, because they will still be much better off.
Those marginal salary cuts will add up.
Personally, I believe #1 is the answer. But either way, it’s gonna be a lot worse for a lot of us.
Fluent English, shared cultural norms, and work culture vary wildly between countries.
The farther I’ve gone in my career, the more I’ve realized that “clean code” and “maintainable software” comes down to well written prose, in code.
Why do names authors pay US ghost writers when they could outsource to Brazil? The difference between “very proficient” in English and “fluent” is night and day.
Israelis aren't particularly fluent in English, more than others. Yet Israel is considered a great source of talent.
Indian people already have a hard time getting hired in your own country, you think your boomer boss is going to go out of his way to get them? I strongly doubt this.
Outsourcing has been tried for a long time, if it was a permanent solution it would have become the norm. Not to say that there is never a time for it, but software is, ironically, where I think it's the least likely to work out, precisely for the reasons you cited.
... software engineering history has been a lurching but ever more complete realization that the customer never knows exactly what they need ahead of time.
The work has to be well-defined and expectations clearly set, but we all know that it's rarely the case that the work is well-defined and that expectations are clearly set. What you end up with is an expensive disaster - and you can't correct from it either: you'll be black-listed in your community and people will be very leery of ever working for you again.
These lessons have been learned and re-learned for the past 30 years now - going back as far as Yourdon's Decline and Fall of the American Programmer - which was published in 1992.
so in the long run what really differentiates outsourced labor vs local is really down to culture and the type of working environment that is created. This really cannot be underestimated. If hiring Indians or Brazilian engineers was the be all end all, there wouldn't be any jobs here in North America.
I don't know what the end game is but for sure WFH really makes these cultural differences pronounced. They can't read between the lines. They don't get the jokes. They make grammatically mistakes and stuff gets lost in chats.
Personally experienced this working with French speakers. Their level of English is god awful and majority of the time were spent trying to figure out what the hell they were saying. It worked for a while but eventually it burnt out a lot of the English speaking staff.
For IP law? It’s much easier to protect IP against employees of the same justice system.
I also think that the barrier to entry is so low that anybody that can read English documentation, have intermediate-senior level experience, can get the job done. It's just that in some cultures, there is clearly some effort to make themselves indispensable by increasing technical debt and not caring about security with the end goal of they being the only devs who can keep the lights on at your company.
Curious as to what part of Latin America has the talent, in my experience of hiring Brazilian developers, they've been just awful, much more so than Indian devs but they've also been known to play "games". I don't know who to trust right now.
My back-end developer writes Serverless IaC with Python Lambdas for $40/HR. Our app developer writes Swift for $25/HR.
We manufacture a proprietary IoT sensor. I pay $30/HR for an embedded developer to write C in TI CCS. I pay a fixed rate for board layout / schematic / BOM edits.
A hard truth is coding skills are commodity if you know how to modularize and write spec. You don't need perfect English to write beautiful Python / Swift / C. I don't need you in the same timezone because you're pushing to a git repo and we review it when we wake up.
For permanent talent, they're more than happy with $40/HR. They like working with people who know what they're doing, they like that I write a PRD and leave them alone until deadline, and they believe in what we're doing.
How do you get your BOM to production? I've always wanted to create my own circuit boards but have no idea where to start or how the process works.
Absolutely incredible the information I'm walking away here. I'm definitely going to look into outsourcing on Upwork now, especially I'm hearing you are actually having consistent success.
Nothing hard about that. Learning how to implement CRUD with validation in <insert framework / stack> is not software engineering.
That’s why it can be easily replaced with bootcamp students and — surely — later with AI. Because if it’s just a translation there’s no need for a human translator.
This is where the real software engineering practice takes place, understanding what the business needs while staying within scope and being able to deliver a solution that's functional and maintainable long term.
I see a world in the not-too-distant future where new apps are built entirely by AI, but there will always be a need for people to translate non-technical business requirements into action items and software decisions. And legacy apps developed entirely by AI? Maybe we'll see it my lifetime but I kind of doubt it.
The thing is, I think there is a lot of subtlety in most implementations. Those subtleties come from unique requirements outlined by the client/business need/ or existing patterns.
As someone who has implemented a lot of CRUD functionality, I can honestly say there is very little code overlap between any two projects. Sure, the frontend calls the same CRUD endpoints. The backend essentially performs the same DB edits... but there's a lot to be considered before and after this. And no, it has nothing to do with just validation. It's about UX, performance, maintainability, extensibility, etc. All considerations when writing the code. When you're done the CRUD project, it's distinct. I think there's empirical evidence for this in the sense that the most we can abstract CRUD, is through CMSs. I've worked with a lot of clients that have great CMSs but still need to retain developers to support the CRUD ops and everything in between.
Is this the same type of "software engineering" employed as someone writing a custom backend for a electronic stock exchange? Likely not, though that's a whole other discussion.
Both are the diffucult part. Especially since "business requirements" ofent is Agile newspeak for "no spec and fuzzy demands".
* Hire the best. Not every great dev is from North America. There is fantastic talent out there, and you can hire them. Now that most dev teams are used to working remote, it's not nearly as difficult to hire great developers in other parts of the world.
* 24 hour development cycle. Teams can operate 6-12 hours offset, and you can go faster. This only works if the offshore team is as good at what they do as the home team.
The second doesn’t seem to be an advantage for 24/7 availability. You would have achieved the same if you had hired the second team in a different country but in the same time zone as you. Arguably, with the more synchronous communication (I, on team A, have a question for someone on team B that’s blocking me can get the answer immediately instead of having to wait for my next shift) you may have been done even earlier.
What really worked was building something, showing the customer at 3pm, getting a change list and having all the changes done by 9am the next day. Also being able to do a design session and have all the prototype views done the next day really made customers happy. Another thing that was nice: we could have a bunch of stuff built at night and then test and fix it the next day (or vice versa).
You do have to assign tickets a little differently. You want avoid making tickets so big that a developer can't finish one in a day - or you can get into where there's lots of blocking. Regardless, I think the 24 hour cycle worked pretty well for us, and if I start another dev shop, I'll do it that way again.
A lot of the benefit was probably forcing everyone to do a couple of smart things: great CI, smaller tickets and complete work in one work day whenever possible. No dangling tickets. Avoid even having tickets where a developer can block another as much as you reasonably can. All of these things would have made a single timezone team better, too.
You'll get bogged down in communications overhead, things not being done exactly at the time you'd need it, then you gotta do something else or do it yourself etc. Basically there's not a real benefit to 24h operations for software development.
Now for 24/7 production support that's great on the other hand, because nobody has to wake up in the middle of the night.
I think worldwide teams are actually harder to bootstrap because while sitting right next to each other is overrated in my book, being in similar timezones is hugely beneficial for normal teams. Many people can not work completely async properly and benefit from overlap where they can interact directly. Depending on who you're able to hire this won't be a problem but we're not all able to hire those awesome people or enough of them. So in that case, let's assume you're in the US, east or west coast doesn't matter that much but it would be much better to hire one more person in a similar timezone, say in Brazil that has overlap with you than to get one guy in Turkey where you're offset by an entire 'work day' and he's the only guy in that timezone.
That shifts, if you can bootstrap an entire team in that other location. But make them work on a separate product or service, not on the exact same thing the other team you already have does and expect them to throw stuff over the fence back and forth every day.
EDIT: And you should expect them to deliver the same quality as other teams. Quality they can stand by. I.e. the exact opposite of what Indian or Eastern European outsourcing usually is. And then, when you have a team that can actually deliver properly like that, you're actually not paying that much less but now all your business people are still over in the US and can't communicate properly with those teams.
Boom. This. is. the. future. International teams i have worked on run circles around the 8-5 crowd. The async affect of forking off a feature at night and getting in depth progress by the am is amazing. It doesn't even matter if the people in Asia or central europe finish, but by the am, there is a working prototype. When they are sleeping we are analyzing the ui/behavior/analytics points - when they awake we have all those things ironed out. If needed we can do a sync of blockers all together. If they need answers, people on the east cost or in england can quickly answer. It is pretty neat to see it work - but the team needs to be quick to react, quick to respond, quick to prototype, quick to trash things that don't work. It is a culture. I don't think this will work at most companies, most do, blocker crash, wait cycles.
Results were mixed. The quality of their work was mediocre, which is impressive considering how cheap they were. Their biggest weaknesses were their inability to follow [well-documented] processes and their poor communication skills, which was a bit of a nightmare for middle management.
All in all, if your company is a bodyshop, you will probably benefit from outsourcing some projects to an even cheaper bodyshop. If your company is looking for people with that "X factor", you will just get frustrated and lose money.
Been a part of too many “reshoring” projects after budget Indian devs bungled the code base beyond recognition.
Also have worked with phenomenal Indian devs who were paid the same as me.
I have almost never seen a company where people are paid exactly the same... Usually there are differences. I'm pretty sure your Indian buddies didn't have exactly the same salary.
If you pay 80% less to Indian remote worker it would stupid to expect the same result. But maybe you are in some bullshit corporate environment and don't even want the results, you just want to look like you are saving the corporate some money or whatever. Often these outsourcing choices are about corporate bullshit.
However if you are looking for results, you could hire top people from cheap cost of living like India or so with maybe 10% or 20% cheaper than the western counterparts. I'm pretty sure that's possible, you don't save 50% but you can for sure get a little bit more bang for the buck if you are willing to do the work of filtering good candidates remotely.
AI, new tools, and globalization is going to destroy the software developer class. Alright, great. I'm now the 3000th person since the late 80's to predict this!
Even without AI, with modern languages, frameworks and SaaS/PaaS the amount of code writing you need to do is quite diminished, as opposed to plumbing and troubleshooting things that won’t work with other things.
When an AI can understand and implement the customer's "parallel red lines some of which are perpendicular and some of them are green"[1], only then we're doomed.
Until then, we're secure.
Was visiting another universities networking lab (switches, routers, computers) for CCNA study.
There where was an Indian student doing a MASTERS IN IT there. MASTERS. He asked about a firewall issue, where he could not SSH into it. And he said "SSH ONLY WORKS IN LOCAL NETWORKS" so it must be that and not that he confed the fw wrong.
MASTERS in IT. Shows the quality of schools/degrees.
I'm not making excuses for them, it's just the way it is. I spoke at a conference yesterday and very few people I work with even bothered asking what it was about.
I always knew India was a populated place, but I did not understand that it means there are low-education and low-culture people in such numbers. I have met far more people from India now than I had in the past, and their human stories show me how I had been fortunate to see great writing, thinking and devout practice from India, but that is not the whole story.
This is a long intro to basically seeing both India and America as a place with strikingly different people, next to each other, filling the cities. Very high skill, very high education, visiting a store right next to very low skill, very low education people, in great numbers.
I respect my colleagues from India and I trust that they can also respect Americans. There is no single story here, and low quality outsourcing did cost me personally as a coder in the USA for decades.
If the person has a completely different undergrad degree, this tends to show up.
Like domestic labor was never a factor, one project just wouldn't have been pursued because the overhead costs would have ruled it out.
I know people think about their massive enterprise getting cheaper labor, but its prudent to think about smaller shops and smaller clients who simply wouldn't have built anything if it wasn't for cheaper labor.
Good luck making software for local market.
The rest of the comments ring true - if you pay peanuts, you get monkeys. I recently read somewhere that software salaries are US > China > India > EU. A lot of people in US still carry the colonial mindset and that ship has sailed long past. For India, you are paying between 40% - 70% of an equivalent US developer pay if you hire them directly. You are likely to be paying more if you go through a contracting agency and the only reason to do it is because you want people fast and for a short term.
This seems to read that EU software salaries are lower than China or India? That may be true for some EU countries, but definitely not all (or even on average).
Anecdotally, I was in a large company with offices in India. None of the management was Indian.
Even more worrisome is code review companies seem to be mostly complete crap. Finding glaring RCE's in code in code that's passed multiple reviews is jarring for me. Mostly because I'm more on the operational/support side of things and write more scripting than code.
For example, if I work at an accounting firm and we build our own account software (or modules, or whatever), is this development work not mission-critical? If the solution is good, our processes will become dependent on the tools, and the tools will need to be maintained and even improved.
So then, what can be outsourced? Team-building exercises? Not sure, but in any case, this "mission-critical" mindset should err on the side of always doing software development in-house. Which seems to me like a wise decision long-term, though it may seem too rigid a view in the short term.
I'd love a serious answer, but I am aware that software quality is almost impossible to measure, and quantifying the skills level of developers might be even harder.
Even though the latter is probably still an approximation to the actual skills level of a developer.
Indian developers are as capable as any other developer. But the whole reason why they were hired in the first place, to lower costs, mean that they will always be second rate citizens in the environment. Not because they are bad at their job - but because they are a way to cut costs. There will be no budget for innovative projects, heavy training, bonuses will be limited. They won’t have access to what’s going on, they won’t be able to have greater impact.
A good engineer may be born anywhere. A lot of us here learned tech by reading .TXT files on 486 computers. The problem with outsourcing is outsourcing itself.
> In various ways — through body language and boasting about their wealth, by smacking their pieces loudly against the playing board and making light of their opponents’ misfortune — the rich players began to act as though they deserved the good fortune that was largely a result of their lucky roll of the dice.
> At the end of the game, when researchers asked the rich players why they had won the game, not one person attributed it to luck.
https://www.marketplace.org/2021/01/19/why-rich-people-tend-...
It just seems odd in a game that's fairly profoundly a luck-based game even without messing up the rules, like Monopoly, that 100% of players would have that low self-awareness.
The talent pool is much more competent in the US because of filtering and tough competition at a high level.
Nothing surprising because I have yet to find an outsourcing dev shop that have good professionalism and take pride in their work. It's about churn and bill rate, not about the quality.
have you seen median tenures startups have on Linkedin profiles? 1.5 years is great
(1) Why do people think subpar programming from outsourcing companies will always hold true? The more business/experience these shops acquire the more likely the engineers develop better software practices. The developers writing crappy code have an opportunity to learn how and why it is bad. Over a long enough period the environment will eventually produce excellent developers I would argue.
(2) What happens to the displaced talent? If big corp decides to slash its talent and compete in the software world with the equivalent of a zerg rush (many outsourced engineers versus one onshore engineer), what if they are really sowing the seeds of their own destruction? If amazing engineer with business domain knowledge and enough to comfortably live on savings for 6-12 months is laid off, perhaps they decide to join a competitor or even start their own competing software?
The people that work at these firms (TCS/Wipro for example) are very high turnover. The bad people get punted, the good people leave as soon as they can get a better job.
And as explained elsewhere, the bean counters don't add up the increased load on the managers, the reduced execution/delivery, the dead pool effect of chasing away not only your good IT people, but the good non-IT people that were effectively "interfacing" with IT (not a small skill) that get frustrated with the extra communication barriers.
There are other ramifications: the onshore people will use the offshore as excuses (deservedly or otherwise). This will create adversarial or paranoia relations, a lot of the IT - not-IT projects require trust and openness to get to the final product.
The offshore people also know that the onshore people are "stuck" with them, and they have 12 timezones and a language barrier and to hide behind. They know that if the onshore bitches about them to the upper management, upper management are going to tell them "tough shit this is the way it is make it work".
Point Two: oh yes, your best people will leave (dead pool effect) not only on IT but in your main business who don't want to deal with the huge overhead increase. And that is to the benefit of your competitors. And they'll go to your industry competitors because that's there depth of skill. And they'll be resentful and motivated.
---
But we need to get real about the markets in America. Almost every market is a cartel, duopoly, or monopoly. They aren't looking to dominate the world and compete, they are about defending their market share, and making their stock option prices/expected performance.
So companies won't view IT as a weapon. You deploy IT as a weapon if you're competing, like Amazon or startups. Large enterprises will do outsourcing in the same way they do pointless reorgs/restructures. It moves the deck chairs, as long as it doesn't hurt things TOO much, they next management team will come in and get to invest money to clean things up.
Tesla is another example where a company used IT like a weapon. It's software integration in the cars far outstripped main auto and caught them with their pants down. But they had to, because they were penetrating a fairly ossified market. Their self-driving may be a lot of smoke and mirrors to some, I see it and think "wow that, while absolutely not ready for primetime and a long way off, is very impressive", but it is undeniably being invested in because Tesla sees software as a weapon.
This is pretty much meaningless. I would much rather see something about cost of living or overall median salary vs developer median. Also, it seem a lot of devs in the US live in HCOL areas, dragging up up the average of even median.
It's not like these are slave farms or sweatshops. Those much smaller salaries can buy a much better standard of living because they don't have to enrich greedy Bay Area landlords.
Sure but as seen in this very thread there is communication issues, business logic issues etc
Even if a company can do remote employees in the same country, its very different to do overseas.
FYI: I am not American.
> and quality of life
I certainly hope that you're not suggesting that San Francisco in 2022 is a nice place to live (or commute to), even on 300k income. Cue the south park episode.
This may be true now, but it has not been that way for all of the last 15 years. Top talent was moving here for at least a decade because it was the epicenter of tech, and the vast majority of them aren’t going anywhere.
SF has many very well documented problems that I’ve definitely done plenty of ranting about. But SF still has a lot going for it, and it does not make up the entirety of the Bay Area. Aside from the near perfect weather, you have easy access to an unbeatable amount of natural beauty. Yeah, maybe you could get a big, comfortable house in Texas for a fraction what you could buy here, but then what?
You must have never dealt with the pains of maintaining a house. I wouldn't call it comfortable because of all the crap that goes wrong and you constantly have to deal with.
Speaking of which, that reminds me of something relevant here: One thing California gets right is that they actually enforce their housing regulations. Good luck with that when you rent a house in another state, the landlord refuses to fix the HVAC system, threatens to evict you for complaining about it, and multiple law firms tell you that they can't do anything without proof of a life-threatening illness (despite the laws being spelled out clearly in favor of you).
As far as the weather goes, people need to toughen up. I grew up in Northern Michigan, and almost anything is better than that in the lower 48, and I don't even consider MI weather to be that bad by world standards.
One of the problems was anytime the India company got anyone competent, that person would jump ship to a better offer within a couple of weeks. They would then have to find someone else. The only reason that I know this is my team had to interact with them for some integration reasons. Hi can I talk to Akash, he is no longer here your contact is now Kanta.... forever and ever.
The code was also...interesting to look at. Talk about unmaintainable lol. The app was loudly launched when "done" then never used then quietly taken offline a couple years later.
The problem is not that there are no good devs in India, the problem is that there are no good devs in India working for $10k a year. At least not for long.
India is a very poor country overall. There is a huge amount of dog eat dog derived from the fact that they are only being hired for the low cost and no other consideration.
To directly answer your question, the CEO had them do one other project before for another company and it went ok. I guess I wasn't there for that.
Companies that have had success “outsourcing” to India open up their own office and hire permanent employees.
Even though most of what we use, cheap or not, comes from China. And many devs, talented or not, are from India.
I recall a tenured professor at a well known university who liked to bring the Indian accent along (he’s a white dude) when explaining “how bad India is at writing software”….
There are a gazillion very talented Indian developers, but they're (usually) not the ones working at budget outsourcing shops...
It’s no different than anything else. A home builder needs contractors to scale and needs to learn how to manage contracts and vendors as well. If you’re selling services as a contractor, how you work for a auto company is different than a bank or a government agency.
The answer to your question is always “yes”. The contractor oversold its ability and failed to retain talent. The CEO believed what he wanted to hear and didn’t didn’t due appropriate due diligence as he either didn’t trust or has already fired his own people.
I’ve never seen a successful “lets outsource this to X to save money” initiative that was a success from a best value perspective. (Many succeed in saving short-term money though) I have seen “let’s outsource this function outside of our wheelhouse” projects awarded to offshore companies that have worked out well.
Example. What the progress update this week?
Oh we stopped working on your project.
ummm..why?
Another offer for more money came in.
Yeah thats when you tell them you have a project you are on and you can do theirs until next week.
hahahaha very fun citizen, you know how it is though.
ummm no I don't. So when are you going to start again.
Probably a couple of weeks, I'll let you know.
So are you going to refund me the money for the SLA violation in your contract?
hahahaa you know nobody does that. You really are funny citizen.
Umm...yeah...
I've seen outsourced code where some logic was spread over 800 lines of copy/pasta horror for what should have been about three functions and two for loops.
When you look at the GNAFAM, for all that is wrong at these companies, they're ruling the software world and they must doing something right. Apparently outsourcing wasn't exactly the reason for these to become successful.
I assume some work for Indian companies doing ordinary development work, banks, government, manufacturing.
Also competent people in Indian are not so cheap any more. The days of IIT Bangalore top 10% of class graduates working for $5K a year are long gone. The $8K average salary is going to lead to a world of hurt.
> prove he was a hotshot
First time I heard the term "offshore", the VP who used it sound like he was so clever. It should be noted the company was gone within two years. People who worked with this VP at another company didn't want to talk about when I ran into them later.
Yes, but IIUC, the going rate for FAANG quality mid-level engineers is still about the same as entry level startup engineers in The Bay, LA, NYC, Seattle, etc (most of the US SWE workforce).
Supervision - people in the USA have to oversee the offshore work, maybe even travel overseas, and video calls at 11 PM two or three times a week gets real old real fast, or else the people in India have to work difficult hours three times a week for conferences and they are exhausted and miserable.
Mon: We need to add this X change to the project.
Tues:I Just got in and saw your email. I have a question about something in it.
Wed:Here is the clarification you asked for.
Thurs:Thanks for the clarification. I've updated the change request please sign.
Fri:Here is the sign off.
Mon:ok we are getting started on it.
Meeting the acceptance criteria with guess and check isn’t hard.
Acceptance criteria often don't exist or are wrong. Incidentally, when someone says "business requirements are easy", that's a pretty big tell they have never worked on a complicated project.
Even an 'easy' project, it's not easy. Edge cases, security, performance, dealing with error conditions, dealing with bad external vendor/data. "We'll just import data from vendor X". Yeah, that can never go wrong!
What stopped us every time was the coding part.
Imagine having perfect business requirements, and preparing perfect acceptance tests. Once your feature is delivered you safely ship, and after a week or two come up with improvements.
You prepare to redo the cycle, except your outsourcing firm is busy and you need to ask elsewhere. They come up for twice the expected price and want to rewrite half of the logic. From there, it will basically cost more and more each time to make the feature evolve, as arguably it will have become complex and touched by many hands.
A solution to that is to keep a stable outsourced team. Except it’s not actually stable, people come and go and quality vary. Either way you keep someone on your team busy making sure you don’t get screwed. More often than not, that person has coding skills, that could be used to actually clean code the feature instead.
Basically, outsourcing only made sense if we had no way to hire more at any reasonable price, or for one-shot project with no future behind.
It’s not intractable, but we wouldn’t have been hiring full remote teams of 10 or 20 people so the effort doesn’t scale much, and the price difference really isn’t worth the hassle.
PS: looking back at the last 2 years, many employees have looked at moving long term to another country while keeping their current jobs. I’m pretty sure even in these cases (= established relationship, proven skillset etc.) most companies bailed on dealing with the international ongoing paperwork.
Bearing in mind if we’re going for 3x cheaper we’re not getting people that are super competitive on the global market:
Your other costs are not just lawyers: you’ll often need near perfect task definitions and acceptance criteria. That takes time (=money) and it requires a degree of upfront knowledge of the system that is way higher than if you’re working with devs you’re interacting with 6 times a day.
You’ll often realize that you messed up the specs on some edge case or they messed the implementation, and you get a redo a full cycle for the correction. And all that could be opportunity cost as well for your PO dealing with that team.
That remote team also probably won’t have the same access to your production than your local team for many reasons, including legal ones.
You’ll also have to adjust for timezones, regular trips etc. You then factor in the stress on wether your staff wants to babysit a remote team.
All in all, it’s not as clear cut as just stacking salaries, except if you’re IBM or Accenture, where the result doesn’t really matter much and the above quagmire is your core competency.
PS: hiring a $150k/year remote team is another story, of course.