Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Your job was probably outsourced for the reason you suspected (theregister.com)
99 points by samizdis on July 24, 2022 | hide | past | favorite | 197 comments


I had terrible experience with projects outsourced to india... But on the other side I got amazing experience with indian talents... hired at European salary level like rest of the team.

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.


You probably already know this: This has less to do with India or Indians and more to do with the fact that outsourcing a whole project tends to go to low bidders and hiring is held at a high bar. This is just self selection. Pay top dollar and you’ll get really good results with outsourcing as well.


tl;dr - Large IT consultancies profit on arbitrage between their salary costs and your billing rates. And give zero damns about your project's success.


In my personal experience theres always a honey moon period with these devs until they start taking on other clients as yourself. Then the technical debt starts to creep in and you end up as a hostage, unable to switch them out and unable to run your business without them without incurring huge downtime that will impact your revenues.

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.


Same here, complete project outsourced, outcome was a security and code quality nightmare. While incorporating individuals in the team and follow the same workflow had good results.


I see this happening all the time, majority of the people working in service based companies are bad at all the steps of development of any kind of software project. But there is an other side to it. Form a long time I am trying to get into consulting, companies don't want to see the background of us(devs). Majority of the times there is no response or they want to see some "white papers".


Would recommend you look at more focused consultancies that do one thing, very well.

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.


>Poland and Ukraine pay between $22,000 and $23,000 per year

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.


The same article said the US average was $110k, which in many markets won't even hire a junior.


That’s the median according to the BLS. In some US markets, $110k will get you a very experienced dev. Cost of living is wildly different in a midwest suburb vs the northeast corridor or the Bay Area.


What’s that work out to with inflation?


You have to know what numbers these are. It's not uncommon that people use net pay numbers in Europe. I've seen OECD and UN papers comparing net in one country with gross in another. There might even be that to compare with US pays, you have to use a third number - employer's expenses, because some taxes are paid directly by employer in some countries.


Reporting in!

4yrs, currently doin .NET in hardware/semiconductors industry company


Exactly, monthly salary of anyone worth their salt starts at 15k PLN which is 38k USD annually.

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)


You can find in Italy for sure. I just found lot of offer on Linkedin for Junior developer at 25k€/years.


> I just found lot of offer on Linkedin for Junior developer at 25k€/years.

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?


I don't think so, it's a standard rate, we have low salaries. Anyway, one of the problems about our job market is that the cost to the company is very high. If you get 25k/year, the company have to pay around 50k/year.


$23k is roughly how much my junior data scientist relative makes here in Poland.

No idea where they got that number from.


The figures in the article are indeed complete baloney. A competent Cloud SRE right now offshore in $(not quite Ukraine) is billing about 500 per day, and we are happy.


Exactly. Reasonable quality starts at $50K and if someone is really good you probably want to pay them more so they'll stay.


Looking for one?


Wife works in a bank (not gonna name it here) who outsourced development to India.

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.


The sign of someone who doesn’t know anything about software dev is when they suggest outsourcing as an easy way to cut costs, regardless of country. “We can get 10 people there for every person here!” Alarm bells should start ringing. It can be done but it takes very strong planning and foresight. Otherwise start dusting off the resume.


Unfortunately the MBA who pushed for offshoring has usually switched jobs before the project inevitably blows up in their face. One horror story I had some tangential knowledge of involved hiring a team of ~20 full-time Indian devs, based on that logic that they were a fraction of the cost. After months of receiving bug-riddled junk, the company started looking into what the problem was. Upon investigation, it turned out that several of the devs only existed on paper, the rest were mostly triple or quadruple assigned to multiple projects (despite paying for them being full-time), and it was really 2-3 guys who would write code, email it to the other devs, and have them commit it in order to make it look like the whole team was working.

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.


My favorite Indian outsource story was when I was consulting for a local firm and they paid me to design and plan how to kick off a project. I recommended hiring 5 skilled US software engineers and it could be done within a year.

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.


...and only requires triple the management, analysis, oversight, and QC. I guess they assume their onshore people will work harder.

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.


This. The outsourced team continued to kick the can down the road. It is almost as if they themselves are milking the US company for paychecks lol.

These companies deserve each other.


And the 10 people for every person here...

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.


Agree. If you identify a great talent who happens to live on the other side of the globe, hire that individual as an FTE. Outsourcing to some body-shop firm is always a mistake. At least I've never seen it work.


One of my first jobs gave me a task to work on and integrate some stuff they outsourced for dirt cheap.

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.


Anecdotally, I only keep hearing horror stories of Indian outsourced dev work.

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?


I'm guessing there are many tiers of quality and reliability in Indian consulting companies. The good ones are loaded with work, don't need to advertise, and are found by their customers through word of mouth. Or else will only talk to big clients.

The shady ones are easier to find, coast on the reputation created by their better competitors, and don't deliver anywhere near the quality.


Because outsourcing anything sucks, whether to India or within the U.S.

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 tend to agree with this.

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.


A lack of proper skip level management at all levels.

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.


Bakshish. On-shore Indians in appropriate positions getting kickbacks for “selecting” a vendor they have a relationship with.


The record profits are because they charge north of $60,000 for developers they pay less than $10,000 per year. The biggest winner of outsourcing is the outsourcing companies, the other one is the management doing outsourcing, cashing in bonuses and running away on time.


Why do they continue getting fat contracts even if the general consensus is that it doesn’t work out well?

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.


> Why do they continue getting fat contracts even if the general consensus is that it doesn’t work out well?

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.


Because people don't post about consistently and successfully run outsourced projects on hacker news


they continue getting fat contracts for blaming rights


Increased outsourcing will almost surely be a consequence of the significant shift to remote work.

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.


Not even long term. This upcoming recession will flip everything over.

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.


You assume proximity was the only benefit.

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.


I'm not so sure about the relationship between native English and maintainable software, or in general being a great software developer.

Israelis aren't particularly fluent in English, more than others. Yet Israel is considered a great source of talent.


In a way, writing software is translating human speech into machine speech. Any good software developer is fluent in the "machine" part, but trying to "translate" from a language (and culture) you don't master is a recipe for disaster.


I agree, people who are only fluent in one language (and who don't study anthropology) tend to ignore the huge cultural factor in these things.

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.


Outsourcing software development works great when you can specify exactly what you want ahead of time...

... software engineering history has been a lurching but ever more complete realization that the customer never knows exactly what they need ahead of time.


BINGO!!!

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.


There's a 4th butterfly effect: All those places you described are becoming more and more inhabitable due to global warming, political instability and lower quality of living. Almost all of them want sponsorship to move to the US or Canada and bring their families with them.

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.


I'm a CTO and looking to outsource to India, Middle East, Ukraine, Latin America. Is there a one stop shop for this? Or are you just manually hitting up people on upwork or freelance.com?

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.


I've done all of my hiring via UpWork and will continue to hire via UpWork. After about 2.5 years at this, I prefer talent in Ukraine and Vietnam. Post a project description with good details and pay and you'll have all the talent you can handle. I don't think being in the same timezone matters at all. I have no idea why you'd hire American technical talent when you can get the same talent at 5 - 10x less the cost.


can you share more details? how are you getting 5x~10x discounts and for which tech stack and roles? im still surprised at how expensive ukraine devs are compared to vietnam or india.


I'm a technical architect by trade. I write clean, concise and discrete product requirement document artifacts. If you can do this and you're able to convey clear parameters of what needs to be done, you can easily score senior developer talent @ $30/HR.

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.


Fascinating. I was always under the impression that Upwork was filled with low skilled workers.

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.


You need a local partner you trust. Your partner is going to get a cut, and a big one, but otherwise you won't get good people.


I'd disagree here. "Your partner is going to get a cut" is the exact issue. I feel like if you're the CTO, you're going to want to own the relationship between you and talent. You can find very good people on UpWork at $40/HR across all technical disciplines.


You've had many issues that violate trust, and you're still looking to outsource?


> why not just go the next step and hire in Latin America?

For IP law? It’s much easier to protect IP against employees of the same justice system.


Most of the developers are just translators from business requirements into react code.

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.


Respectfully, I see this as an oversimplification. Though, I can definitely understand why someone would say this and I do agree to some extent.

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.


> Most of the developers are just translators from business requirements into react code.

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.


Sounds more like you haven’t worked so far on a sufficiently complicated engineering project otherwise you would know that translating those business requirements is actually the difficult part in the software engineering profession and not coding.


Just expressing the business requirements in a way that can be implemented as software code, with all the edge cases and exceptions covered is the really difficult part.


> business requirements is actually the difficult part in the software engineering profession and not coding.

Both are the diffucult part. Especially since "business requirements" ofent is Agile newspeak for "no spec and fuzzy demands".


I don't see how the translation is easy. If anything, accurate and precise requirements gathering is one of the hardest parts of software. How many times do you 100% correctly interpret client needs. Better yet, how many times does the client even interpret their own needs correctly and then communicate that?


Those "business requirements" vary greatly in their specificity. Dealing with the ambiguity and making reasonable judgment calls is the kind of thing you can usually expect from a more expensive engineer


You may be right up to a certain extent but requirements always have small details which are very specific to the project which will probably be missed by a generalised AI. Also taking care of things like security performance etc it's something that most fresh developers out of bootcamps will fail at. Finally requirements are rarely complete or accurate, meaning you need to have experience in order to interpret them correctly (reading between the lines in a way). So if actual coding is automated via AI at some point in the future, humans will shift from coding to requirements interpretation to feed the AI. Essentially it will be another level of abstraction.


This is completely true. Myself being a software developer. You can only add value by tailoring your code for easier maintainability. Aside from that, you’re just translating business requirements into some program.


Even if that were 100% true, people don't actually know what they want. "Business requirements" undeveloped in the minds of non-technical people are just ideas. There are immeasurable differences between what people think they want, what they actually want, what they need and what can realistically be done. Coaxing these out happens during the whole development process (even in a waterfall approach), because people are never as accurate as they need to be... Otherwise, they would not need software engineeers.


Tech is more than automating business processes 1 to 1. Many times domain experts don’t even know what’s possible, as a dev you need to work together on the requirements to go beyond their imagination.


Price is a bad reason to outsource it just shifts cost from developer headcount to management headcount. There are two really, really good reasons to consider offshore outsourcing:

* 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.


This means you get 3 teams working on the same thing one after the others. This isn't factory work where that is actually possible, where you know that piece A will get done in exactly 8 hours by Team A, everyone on Team B knows how to make thing B from piece A and 8 hours later Team C makes finished product C from that.

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.


Have you experienced real benefits from a 24 hour cycle? I've worked in environments like that and I feel like you're not actually gaining anything except a new layer of asynchronous communication requirements. It's not like you get more man hours after all.


Yep. Twice. Once for a big job ad scraping operation (we did this for ofccp compliance) where 24 hour dev enabled our scraping to not miss when our competitors would take 24-48 hours to re-tool when a targeted site changed. The second time was a webdev agency where we routinely were able to win business and delivery by promising to be done in 1/2 the calendar days as our competitors on the same bids. In the second situation I wouldn't have been able to hire enough people locally to just double the local man-hours anyway (small midwest town).


The first one is clearly a situation tailor made for 24/7 because your requirements change in such short periods. This is similar to how companies that offer 24/7 technical support benefit from 24/7 dev availability.

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.


> 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.


"24 hour development cycle."

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.


I used to work for a Python shop where developers were routinely replaced by workers from an Asian country after quitting.

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.


I don’t care where you pay them you tend to get what you pay for.

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.


> 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.


It's weird, once they get integrated with a team and have regular communication, peer reviews, and defined goals, the software quality goes up. I wonder what explains this phenomenon.


[flagged]


Can you expand on your last paragraph? Exactly who is an asshole and why?


No. Not when the forum would flag open discourse because traditions dictate certain emotional tones are forbidden.

I don’t consider metaphorical sticking fingers in ears over colloquial language a sign of maturity. Social media moderation fosters thought ending behavior more so than “foul language.”

The result is what conforms closest to expectations.


I love how nobody commented.

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!


It’s mostly just going to drive up developer productivity, resulting in even more software.

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.


We've been hearing that for years. And yet here we are.

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.

[1] https://www.youtube.com/watch?v=BKorP55Aqvg


Massive! Take an upvote.


Is it in the form of a kitten?


Call me when it's there so I can retire.


Given all the recent article about AI generated code having bugs, I think it is going to be a while.


Not coding but another anecdote.

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 am an Indian and I don't have a formal CS degree. I studied Mechanical Engineering at a really small college. The biggest eye-opener I've seen is the lack of awareness and interest in almost everyone pursuing technology. Most of my country folk aren't in tech because they programmed an Atari as kids like I did. They're in tech because it's the only thing that pays. The same goes for most of these. It's sad, and it is also a big reason why most companies only see Indian teams as a way to cut costs, also slightly insinuating that you also accept quality cuts because you get devs who don't get the "download more ram" joke.

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.


Probably not relevant that this person was Indian considering the amount of American cybersecurity MS grads you’ll find who don’t know what nmap is.


I will cast an uninformed "yes" to this as an American. Long ago, I studied philosophy and discovered Vedic influences, along with pop-culture American visions of spiritual India. I was impressed by the thinking and erudition of Vedic (and Buddhist) scholars, and immediately found links to English and German scholarship. All together, I had an early-adult vision of India as a place with high literacy and a long religious and scholarly history. Meanwhile, my urban life in America confirmed daily that there are illiterate people who thrive on being loud, pushy and often fat -- of every national origin. As the years go by, my views have changed.

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.


I have often thought that most masters programs skimp on the fundamentals.

If the person has a completely different undergrad degree, this tends to show up.


They'll pay for it on the other end. If you hire junior overseas developers, and give them minimal product guidance and have no foundation technical leadership, it goes without saying what the quality of the deliverable will be. (To be clear, you could do all of this in the US with the same outcome too, though you'd have spent more money in the process). The applications blow over like a house of cards and the overseas developers don't last long what little business context (institutional knowledge) was adequately communicated isn't being transferred between the rotating staff. There are no free lunches.


One thing I noticed is missing from the outsourcing discussion, which I noticed after I started doing it myself, is that they don't factor in how many transactions just simply wouldn't have happened if it wasn't outsourced.

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.


Imagine being software company now in Poland all good devs that can speak English are getting insane rates by the local standards. All the software houses having rates that local company cannot afford.

Good luck making software for local market.


Everyone has a story about how software projects go off-track and generally, it is not the nationality of the developers that matter. But here is an interesting observation - you do not manage a remote, outsourced team of developers as if they were local. We know about this from software architecture too - a remote object is not the same as local object, no matter how much of abstraction you write to hide the fact. The abstraction is even more leaky for people.

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.


> I recently read somewhere that software salaries are US > China > India > EU.

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).


The history of outsourcing would be a great book, starting with the H1B visa, their conversion to permanent status as green card holders, becoming managers themselves, and then the manager preferring to outsource additional staffing due to affinity, thus completing the cycle. Repeat.


Are you saying legal immigration caused outsourcing? That's a bold claim.

Anecdotally, I was in a large company with offices in India. None of the management was Indian.


I don't know the answer, but it seems like the parent might have it backwards. A handful of outsourcing companies control a massively disproportionate number of H-1Bs, and lobby heavily on expanding H-1B policy. They can place the US based H-1Bs to complement their local teams back in India.


I'm not sure I understand your comment, but I do know that you must be oversimplifying the comment you're replying to.


Outsourcing is a tool. It is pretty bad to outsource the crown jewels, if it is a tech company that needs to innovate to stay competitive. Not so bad if it is about managing off the shelf components that are set up by consultants.


Also with cheaper outsourcing I'd assume all your remotely developed source is being stolen, and you have to assume being sold off.

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.


Part of the issue with the mindset of never outsourcing mission-critical tasks is, if something is not important, why are we doing it? Do we just like wasting money?

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 love anecdotes and I have some of my own, but does anyone have real data-backed arguments for why Americans still get hired for 10x a comparable developer in India? Are we, (I’m an American developer) really 10x as productive?


> One experiment by psychologists at the University of California, Irvine, invited pairs of strangers to play a rigged Monopoly game where a coin flip designated one player rich and one poor. The rich players received twice as much money as their opponent to begin with; as they played the game, they got to roll two dice instead of one and move around the board twice as fast as their opponent; when they passed “Go,” they collected $200 to their opponent’s $100.

> 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-...


I'm really suspicious of that study, even if I mostly think it's emblematic of the real-world effect it's supposedly studying. Was the difference in rules/situation communicated to the players? What exactly were they asked at the end of the game? I just find it hard to believe people would be that crass in what they know is an artificial environment where they know there are stark and obvious advantages. This feels like the Stanford Prison Experiment where the results are "too true to check".


I actually completely agree - I'd be curious to see replications. Though after a couple decades of life, I don't find it hard to believe people would be that crass.


Well if I played a game of rigged monopoly, I would say and act exactly the same way, doesn’t mean I am oblivious, it just means I am making fun of the researchers


Or you just assume that's part of the structure of it. Doing a study and pointing out something that obvious feels weird. "I know you asked me to play this clearly terrible game, but it's a terrible game" feels like odd feedback. Or I'd assume it was some trick and the "poor" player had weighted dice or something.

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.


And you posted this why? Are you from a certain part of the world and mad? :)


I'm from a certain part of the world and I seem to lack the necessary psychology to justify why my pay is a couple times that of people who I work alongside (virtually) who are equally as competent as me.


Who do you need to justify it to? I'm sure your work would accept you offering to get paid multiple times less if you were prefer that. Or otherwise, do what you can to advocate for giving raises to the equally competent people on your team who are making less.


I suspect it's a basic primate tribal dynamic built into my firmware - us monkeys need to stick together and pull our weight so the tribe can survive. Of course it bumps up against some other greedy functions that are also built in.


There are several aspects to it, besides productivity. A company is more than a resource pool. It has workflows, cultural aspects. The engineers have commitments. People are chosen for cultural fit, and mentored into higher positions. Teams build internal relationships.

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.


Thing is that a developer in America is either an immigrant who has passed 10 stages of talent filtering to show up here, or an American who had to compete with these immigrants to enter the same schools.

The talent pool is much more competent in the US because of filtering and tough competition at a high level.


Also, is there any data confirming that equally well educated Indian developers are 10x cheaper than American ones? How does it compare to European ones?

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.


I can't comment about India but in Eastern Europe software engineers have a comparable purchasing power than in the US - it's just that it's achieved at ~50% of the wages because of cost of living differences.


It's not like I don't believe that. But I am interested in any data taking salaries and qualification/experience into account. Local costs of living are certainly important for the employees, but not so much for the employer (assuming that they impact the salaries level to some degree).

Even though the latter is probably still an approximation to the actual skills level of a developer.


That’s a great point, thanks. One collection-of-anecdotes from my company is 3x in the same role (10x was from the article), which might actually equate to a similar standard of living (with huge fuzziness given the different amenities of the two countries - I’ll never have a personal driver)


The same reasons we don't outsource all of our management and executive positions.


It's flawed logic to think that pay is (exclusively) based on productivity.


I've dealt with outsource work from India, Ireland, Eastern Europe. All are complete shit show. Western Europe is the only place I saw quality work and receptive to criticism in professional manner.

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.


I'm working in this space and from my experience with 200+ founders of early-stage startups, they don't just contract offshore bc of money, they really have no leverage to attract local talent + retain it for long :(

have you seen median tenures startups have on Linkedin profiles? 1.5 years is great


Outsourcing stories are interesting to me for a couple reasons.

(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?


Point one: Outsourcing companies typically win with bottom barrel bids so the bean counters have maximum organizational leverage to perform the transition and the execs get maximum balance sheet/stock option strike price effects.

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.


How easily can a developer in a lower cost-of-living country whose skills are on par with a top-tier dev in the US demand a commensurate salary from a US-based company? I’ve heard conflicting evidence on this matter.


Outsourced to Indian software company is not the same as software coded by an Indian developer. It is the business model of saving costs. If quality would have been a deal breaker the company owning the software could have tried SLAs that would have ensured that. These companies ensure lowest costs as they pay very very less like 4000 USD per year. At that price point they get mostly college graduates neither having majors in computer science nor having any prior coding experience.


What ever happened with US nearshoring in the rurals? It just fell to the lowest bidder effect with 12-timezones-off teams winning the race to the bottom?


"while the poorest-paying countries are led by Nigeria, which pays an average of just $7,255 annually to software devs – less than seven percent of the average US salary."

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.


In some of these countries the cost of living and the median salary are skewed. For example rent is cheap, but for very low quality places, while something that compares to USA is very expensive. Average price for a smartphone is $100-200 because most people buy that, but an iPhone or Google Pixel is more expensive than in USA. In many places software developers earn 2-3 times the city average and several times the country average, but their quality of life is very low, while the quality of the output of their work most of the time has nothing to do with the amount they are paid. In the same city one can find a few excellent developers, but paid less than mediocre ones working for a different company. In outsourcing companies, one can find a few excellent developers paid the same as the mediocre ones, all working for the same client. The end result is a randomness of quality that makes outsourcing a high risk bet.


I feel like there’s something weird with the dataset. It’s says the average US salary is $110k. That’s seems incredibly low.


There are a lot of “good enough” developers making a reasonable living in the 60k-90k range, and not actually that many developers making 200k+ to balance that out. Seems a bit low to me too, but it’s about what I would have expected the average to be a year or two ago.


Agreed, the dataset seems to date from 10y ago


Language classification is a bit weird - doesn't mean that Golang/Ruby/Python developers are better than C programmers - just that the companies with better funding or better products are using those languages. So, in other words, pay is not based on programmer competence or language superiority, necessarily.


Why pay 300k in Bay Area when you can pay much less in India or Turkey? Those guys are also more productive as well.

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.


I've worked with some fantastic engineers from Turkey (Türkiye?). They all made $300k+ working for US firms, because that's what their talent was worth and they knew it.


Why do Bay Area devs cost $300K+? It's not that cost of living is so much higher in the Bay Area. It's that most of the worlds top developers have chosen to live in the Bay Area. Sure, you can find fantastic developers elsewhere, but top talent has figured out they can optimize their income (and quality of life) by moving to the US West Coast.


If they were actually top talent, they wouldn't need to move there to get what they want (unless the goal is to work in-person at a specific company that happens to be in the bay area).

> 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.


> If they were actually top talent, they wouldn't need to move there to get what they want

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?


> Yeah, maybe you could get a big, comfortable house

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.


>Those guys are also more productive as well.

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.


You get what you pay for. My experience at multiple companies has been terrible with offshore developers.


In most cases you don't even get what you pay for, but a lot less.


I can't disagree with that. I think in many cases they are nothing more than a financial drag on the company.


It also doesn’t work.


I've had some unfortunate first hand experience with outsourcing to India. New CEO needed to prove he was a hotshot, fired one of my dev's and used the "savings" to outsource an entire project to an India "firm." The first project was a finance import tool for some real estate data. A 2 month project. 1Year later the project was still being worked on. Not only that the project had to be worked on by our in house devs to actually get it working after the Indian company claimed it was done.

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.


In my experience when it comes to software development you get what you pay for. It's why I ask for US salaries even though I live in a country with an incredibly low cost of living.


It’s difficult to overcome the difficulties created because of the the India time zone difference. It’s literally the AM/PM opposite for Silicon Valley companies. Real-time communication is a struggle, even with Slack or Zoom. You’re forced into asynchronous communication which automatically imposes a 12-hour cost because you don’t get a response until their daytime which is the next day for you. It’s good for Indian outsourcing firms because their incentive is time billing. Bad for your company because that JIRA ticket you have now takes 2x to 10x as long to resolve.


Yeah I didn't want to get into that but it can even be a 24 hr cost if the people in india are acting bad or incompetent. A single simple change request can actually cost an entire week.

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.


The bulk of the 'bad' outsourcing projects that I've seen suffered from a local problem: bad management. Properly managed outsourcing can work but you have to ensure that you have very good control. Hint: if you can't deal with remote workers then you can forget about outsourcing.


Yes but competent developers are not stupid, why would they work for a cheap outsourcing agency. If you want cheap you won’t get competent developers anywhere.


The competent people in India usually end up working for foreign companies directly in a development center, or for a WITCH type company in dev centers.

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.


> 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.

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).


Given the timezone, cultural, supervision, issues of offshoring, that makes it less of a bargain than it used to be.

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.


> The code was also...interesting to look at. Talk about unmaintainable lol.

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 cannot even imagine how much work GAFAM outsource. Don't know about Apple, only for Google and Facebook, and only for Eastern Europe, but dude, they often outsource both internal and external projects, even very visible parts of their business. Sometimes, the actual devs cannot talk about it nor put on resumes because of NDAs.


Also my experience with a Polish outsourcing firm that promised a lot to one of my client. Costed over 200k, one year late, full of bugs and security vulnerabilies. I was brought on the project later, fired the outsourcing firm and rewrote the whole codebase in 8 months and billed maybe 50k total. Outsourcing is rarely cheaper and certainly not on par with quality.


Oh he tried Poland too. I found a different problem with them. They don't even recognize what a business agreement is. The culture is matter of factly dishonest.

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...


Sounds like you are underpaid


I don't think the client was in the USA. If it was, of course it would be a tremendous bargain.


Dude they would have paid 200k for those 8 months!


So? He feels he was fairly compensated and he demonstrated that American developers can still be the best value per dollar invested. That's damned important and I thank him.


You are way, way too cheap. Orders of magnitude too cheap.


Spot on in your observations. Staff churn and significantly decreased product quality were two notable outcomes I've seen as well. Income growth is easier in markets that are industrializing, so it's even easier to jump ship than it is here. You can trip into a new role that might pay 20% more. So, the staff don't last long.


Was that an issue with them being Indian, or that your CEO did a terrible job of vetting the firm he hired?


When it comes to working with outsourced devs, nationality doesn’t really matter when it comes to dev competence.

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.


It is a hugely complex socioeconomic issue, nothing to do with race. Many of the people were quite nice to work with but were trapped in a race to the bottom that their entire tech industry is based on. I know from some of the people that I talked to that they literally quit to change companies over a less than $100 pay raise. Its that bad.

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.


You get what you pay for. our devops guy is in India. He does a great job and communicates well. I wouldn't say he's cheap though. We went with him because he was the best applicant and he's paid accordingly.


Not cheaper than his US equivalent?


we pay him in line with someone in the midwest would be making. its significantly more than someone in southeast Asia. Its worth it to make sure he doesn't jump ship.


Just like we love to say “cheap Chinese” for physical goods, we say “subpar Indian outsourcing…” for digital goods/tech support.

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”….


I think it's a different phenomenon. There are plenty of extremely good devs in India, it's just that they won't work for peanuts. They will be paid similarly to devs in some western countries.


The problem is outsourcing firms. The job market is so hot that developers jump ship all the time. You’ll also interface with a “project manager” whose job will be to forward what you say to the developers. And finally, outsourcing is an entry-level job—more experienced developers move to better positions.

Companies that have had success “outsourcing” to India open up their own office and hire permanent employees.


Managing contractors is a skill. India, being a major destination for offshore outsourcing has a business culture in this space that has to be managed both actively by people and by contract.

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.


From what I hear this is a pretty common experience. It would be interesting to hear the other side - when outsourcing works. I think it tends to be when the task is extremely well-defined, like "follow this standard workflow to deal with this stream of requests to grant/remove access".


Right. The impact of different cultures and worldviews cannot be overstated. Mental interpretation of general directives varies wildly enough between Americans of different backgrounds, different ages, different neurodivergences to create problems even with them all sharing the same language and culture. The further you go the less you can rely on everybody being on the same page.


> Was that an issue with them being Indian

There are a gazillion very talented Indian developers, but they're (usually) not the ones working at budget outsourcing shops...


He was probably getting paid on the down low. That's what precipitates a lot of these outsourcing deals. 4% off the top. I'm on the. consulting end of things now and thats SOP


Coding isn't the hard part, it's business logic.


Working for a while in a very small team, outsourcing has been discussed a lot.

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.


Why do you think that you can hire stable team in your country, but you can't do that in a distant country? Seems that problem roots in those "outsourcing companies". Avoid those companies then. Hire directly.


Setting up a payroll in a different country is a lot more effort than what most companies want. You can do consulting contracts instead, but it then becomes harder to find people who want long term contracts for single clients (those people need a solid reason to not choose a local company or a bigger global company that has a full payroll in their countries). Not considering you have to do the hiring in the first place.

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.


Difference between 10x $50k/year developers and 10x $150k/year developers is $1m/year. How much money would a company need to actually do an effort? Billion? Are lawyers who can fill some papers that expensive?


That’s only salary.

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.


I think that is still a middle layer problem. A root layer problem would be "pay your developers enough they don't leave", but that in general is in conflict with business practices optimized to make as much profit as possible next quarter.


IMHO idiomatic defensive coding is very hard.


Eh. Writing code that is maintainable and bug free is a skill.

Meeting the acceptance criteria with guess and check isn’t hard.


>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.


> 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!


Hardest yet: apply professional rigor and be actually given time to do so because apparently just hacking something together that looks to work is the best thing ever (in the eyes of managers and business owners).


Software engineering is a well understood science in many cultures. Parsing acceptance criteria written by someone of another culture and domain experience can be difficult for some, and it’s not something learned in computer science courses.


Imagine having good ACs, or any ACs at all. Wouldn't be me!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: