Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Client replaced me with offshore team – what could I have done?
71 points by bemused_django on July 2, 2019 | hide | past | favorite | 63 comments
tldr: client has paid me $4k/wk for internal tools. They’re replacing me with a team based in India bc they can get 1 US pm and 2 devs for $4k/month. They think progress will be faster and less expensive.

They’ve been pleased with my results, and I’ve done everything from working onsite and modeling out their workflow to deployment on Heroku to Django api to front end development.

Without going into too much detail, what can I do to in the future to either 1) change my process so they don’t think this is a better option, or 2) suss out which prospects don’t have the stomach for the realities of developing their own software?

I’m not bitter, more just somewhat frustrated. I understand that from their perspective, that sounds like an obvious choice. I’m simply concerned with how I can operate/communicate more effectively going forward.



I am that client. Not exactly yours of course - but i am the client who is going to replace someone with India provider within next month.

Here is the context:

- Current worker is USA, Bay Area based and is good technically (4+ out of 5).

- Current worker is local and it is very convenient for us.

- Current worker is AMAZING talking to customers and putting off fires. His "talking" skills certainly exceeding his technical skills.

- The competing Indian provider is well tested, exceeding expectation in quality and skills.

- The Indian provider is very professional. We met him in person and had interview.

- The Indian provider charges 4 times less.

- The Indian provider has capabilities to scale his capabilities. So there are positive potentials for us.

- The project can be executed by remote team (i.e. there are no restrictions)

- Current worker (local) is employed by uncooperative consultancy who is planning to raise the rate for current worker for us against prior negotiated rate. Just because they [think that they] can. That same consultancy can (and will) be a competitor as they can gain a valuable hard-to-get skills if we continue to employ and train current worker. This is show stopper and we were forced to stop giving current worker access to advanced projects, keeping him currently on older projects.

- Current worker been offered to join us but he refused.

Your context may vary - but that's a fair context from the real project.


> The Indian provider is very professional. We met him in person and had interview.

The Indian provider will be a new person every 6 months.

I'm basing this solely on my experience having a team from India. This being HN, actual residents of India might be in this thread, and may be able to offer a different perspective.

That being said, my experience showed that their working culture is to constantly seek promotions, and if you want a long-term team member, it causes conflict. When they talk about ability to scale, they mean that your original dev wants to take over as manager, and hire new devs. Who, in a year, will want to be managers and hire their own devs. And if you aren't growing fast enough to meet their career goals, they'll go somewhere else and you end up with new devs anyway.

All of this is manageable, but you have to be sure the project is documented and structured well enough that if you onboard a new dev team every 6 months, it doesn't kill the project.


In my experience, the Indian contractors are going to be lower rated technically, but for 1/4 the price you can question whether you NEED someone who's a 4/5 or whether you can get by with a 2 or 3.

Determining what functions need top technical people is something most managers figure out after offshoring, when the damage is already done.

Contractors are incredibly valuable in certain respects, but one thing they don't do generally is write code for future maintainability... they're under a lot of pressure to produce workable results quickly, which opposes planning for the long term technically speaking.

Like offshoring itself, that may not matter depending on the company and what it does.


After desperately trying to find local consultants to do $75K gig, we hired remote Indian person who did it for ~$13K. The delivered quality and timing exceeded our expectations.

And honestly it changed the way i used to view remote offshore consultants.


Did you consider remote, on-shore resources? Perhaps work-at-home folks, or those working remotely from other US cities? I ask because I've run into people who would otherwise normally insist that their domestic resources be local and in-house, but then would end up off-shoring stuff instead. WTF?


I absolutely did and will. Local are often preferred.


My experience dealing with such folks 10 or 15 years ago was that even if the person presented to you as the "provider" was actually the person doing the work (and not just a frontman for others), you were lucky to be able to hold onto them for a year. I see that others here are saying just six months, though.

Also, promises were made which were broken almost immediately. For example, there was a promise made that all meetings would be conducted on US time as opposed to Indian time. But only two weeks into the contract I noticed that our US outsourcing manager was routinely coming into the office late, where before she was always quite punctual. When I asked about this I was told that it was because she was now having regular 3 AM meetings with the folks in India.

We were also told (all of us) by upper management that if the whole thing didn't work out as planned, then WE would be the ones held responsible for this, not the outsourcing folks. You can imagine how well this went down. It became routine for some people to just lie to their bosses about well how things were actually going, all while looking for other jobs elsewhere because they knew it was going to hit the fan soon enough. In one particular case that I remember, I attended a teleconference with a project manager where folks were laying it on the line and being honest about how badly things were going. Then in an immediately following teleconference (which I also attended) this project manager turned around and flat-out lied to his bosses by telling them that everything was going great! He bailed for another job at another company before he really got caught out on this though.

The company finally got wise and cut loose the outsourcing group after a couple of years. But by that time things were in such bad shape that they were considering just tossing out their custom software (which they'd spent decades developing) and replacing it with some kind of package. I don't know how far along they got with that before the big bankruptcy came, though.

Ever since they emerged from that bankruptcy (and then only barely, after enduring great pain) they've been looking for a buyer, but with no great success. They've finally found one now, though, except that one of the conditions of the buyout is that all of upper management is going to lose their jobs. Oh well!


Thank you for including this "Current worker been offered to join us but he refused" throughout the rest of your comment I was thinking "Why didn't you hire the engineer?"

Totally makes sense to avoid this consultancy from becoming a potential competitor.


At my employer, there are various consulting/contracting companies we’ve used. Some made it easy to convert those workers we wanted to hire as full time team members, some made it hard — or virtually impossible.

We generally don’t work any more with the contracting/consulting companies that make it hard.

We’ve dealt with plenty of overseas contracting companies. The horror stories are too numerous to go into, but suffice it to say that there is no amount of cost savings that could make up for the negative externalities they have caused.

Sure, the outsourcing companies will demo well. Everyone demos well.

But once they’ve hooked you, they will replace the people who did the demo. Odds are, they will lose those people in a couple of months, even if they don’t replace them on their own.

And thus begins the slide into a new kind of hell.


For outsourcing like this to work you have to be very explicit about what it is you want and expect and then you need to check regularly that is what you are getting.

I saw one app that was meant to be a three tier web app - it was two tier so when it was delivered the customer complained and a proxy tier was hacked in that only served to slow down the application - they could have just deployed a service onto the app boxes that did nothing and it would have been better.


That person won't be the one doing the work. You'll have to lay out every single microscopic detail for the work to be done anywhere close to correct. You'll find out how expensive cheap developers are.


For once, stay in touch with this client, and get to know how they are doing.

It's not impossible they come back to you, sometime - not necessary either, but offshoring is much much more to manage than just a lower price tag - and perhaps they don't know it, yet.


My impression is that a lot of companies are moving away from off-shoring. It's cheaper on paper, but you introduce a communication hurdle and sometimes you simply get what you pay for.

I've got great experience with Indians working in Europe, not so great with Indians working from India. My impression is that the best Indian developers tend to move here, because they'll be able to earn European/American rates.


> I've got great experience with Indians working in Europe, not so great with Indians working from India. My impression is that the best Indian developers tend to move here, because they'll be able to earn European/American rates.

as an Indian developer working in the US, I have to say that this is a bit of an unwarranted stereotype, despite being repeated often on HN and Reddit

There absolutely is a large contingent of good developers in India (as you'd probably expect from a country with over a billion people), but they are mostly working with locally-managed projects and teams. A lot of them wouldn't work for outsourcing companies because of the poor pay and hours.

There is a bit of confirmation bias going on here: since western companies will frequently outsource to the low-cost shops in India, they will mostly see poor quality work. I don't think its fair to generalize this to all Indian devs.


If the likelihood is that he’ll never actually get to work with the most skilled devs, as per your own post, the de facto reality of his generalization is going to be true.


This, keep the lines of communication open. Email them three months from now to ask how things are going.


This is absolute truth, it’s very likely you will be called back if the vendor they chose starts cutting corners. You might even have more work to clean up the mess they leave behind.


I fourth this comment. It's possible that everything will go swimmingly for them. But it's also possible they'll run into all kinds of problems, such as inexperienced programmers, poor communications, slower feature deliveries, difficulty with managing the team, etc.

There's a skill that good programmers have of understanding at a visceral level what the customer is asking for and delivering that and more. But a good programmer often does this "effortlessly" which leads a company to believe that all programmers are like this, so you should just find the cheapest one. They're not all the same and companies that have made this mistake quickly learn to cherish their good programmers (whether employees or contractors).


So, real talk on a throwaway from someone who's been there. The one thing you probably could have done is to cultivate a better personal relationship with your client. If you develop a real relationship outside of work, this is much less likely to happen. If it's breaking up with your girlfriend instead of breaking up with your laundry detergent brand, the activation energy is different.

Second, keep it professional, fulfill your obligations, be slightly generous, but not too generous. Follow up in 5 months. Indian outsourcing is usually a disaster. The problem is that your client (your contact at the company) may have gotten himself into a tight situation. If outsourcing fails, you need to understand what he can do politically without looking like an idiot. One option might be less hours at a higher hourly rate.


I had a client move a project to India because he thought it would be cheaper. Eighteen months later he was knocking on my door asking if I could fix the mess. Sadly for me, I tried to help him - I'd have been better to say "no", either immediately or after taking my first look at what had been delivered. The work that had been done (at less than 20% of my hourly rate) was shoddy and not fit for purpose. A detailed analysis showed that the cost of fixing it was about the same as the cost of building it again from scratch. The client then included me in his generalised unhappiness with the consequences of his decision, and I've had no further work from him.


One way to handle these is to say that you will do a review of the work and make a recommendation, but that you will not be the one to implement the recommendation. Bill them a few K for your trouble and make a few recommendations on the types of people they might use.


In my anecdotal experience, you can't do anything outside of the C-suite. If a company is going to replace in-house employees and local contractors with offshore contractors, nothing will stop that, except for a few months of working with offshore contractors. If they get a good offshore team, they won't ever go back. If they get a bad one, they might learn a lesson from it.

You can't save them from themselves. As an employee, keep your skills polished and your resume ready. Build up a reserve of savings so that if you are ever asked to transition your job to your replacement, you can more safely quit the doomed job and focus on looking for a new job with a future instead.

As a contractor, cultivate a greater diversity of clients and ask for more money than you think you're worth. Companies that squirm at the asking price will try to replace you with someone cheaper eventually, so you might as well make it easy for them to signal their cheapness as early as possible.

Also anecdotally, cleaning up the mess from an offshoring gone bad is not enjoyable work. I wouldn't scream it from the rooftops, but other developers in your network who might be tapped by that company to do it in the future will probably appreciate a heads-up on what happened, to either avoid the client or charge a premium. You could follow up with the company yourself, but would you really want to?


I guess you need to figure out the company's attitude to what they're doing. If they're trying to build a software product then they're often happier to spend if they know they'll get quality.

If the company is not actually tech related at all, they likely see internal tool development as a cost center to be minimised where possible. Likely they do not know the difference between high and low quality code and might be willing to take a dip in quality for a greater dip in cost.

Of course, I did meet up with a successful businessman not that long ago that credited the high valuation and subsequent sale of his non-tech company with their impressive internal tooling and management system. Despite not being a tech guy (beyond being above-average computer literate), he totally understood the value of it. So, it's not a hard and fast rule unfortunately.


Sometimes these things just happen, it's difficult to turn down a price tag that is that much lower. Things that help in the general case are doing a great job(obvious), building up hard to replace domain knowledge, and nurturing relationships with the client and personnel. But it's hard to know how you could of done things differently without knowing more about the circumstances.

Who made this decision and what was your relationship to them? (Sometimes the people you interact with value you work, but people farther up the chain see less of the qualitative advantages and more of the quantitative costs associated with working with you.)

Another common sales tactics is client education related to disadvantages of alternate offerings. So you can talk about the hidden costs(like managing 3 people in wildly different time zone is more difficult and time consuming than 1 person down the street) and developer churn associated with off-shored software(and retraining associated with this churn).

Clients with expensive personnel will value on-shoring. For instance a law firm won't wants to pay their very expensive lawyers to manage an off-shore project.

But only sure fire way to find clients that won't offshore is to work exclusively with clients that are looking to onshore after an off-shore project just blew up.


$4k a week is top, top market rate where I come from, US Chicago, especially for 1 FTE.

As an independent contractor your client relationships are paramount to getting and retaining work. You should be aware what your client is feeling and be able to anticipate their next move. Ideally they'll just tell you what they're going to do but getting there takes time building mutual trust.

Consider spending extra time outside of your hands on work talking with your contacts at your client. Build that relationship and do so with multiple people in the company. When you work for yourself you are worker, manager, VP of sales and CEO. You'll want to spend time in each position so the needs of your company are satisfied.

Also clients build off each other. I've repeatedly gotten new work from friends and business associates of my clients.

Consider this a lesson and spend more time on those soft skills or put yourself in a job that doesnt require that level of self sufficiency.


Mid-career developer rates in my much-smaller-market-than-Chicago city are like $120-150k—salary, that is. $4k/week's the minimum I'd need to even consider jumping to consulting/contracting, and even then I'd probably need more like $5-6k/wk to make it a good idea.


Just curious, how come Glassdoor shows just $82k for Chicago [1]? Are these reported values far too low or is there something else at play? As your market is $135k and you implied Chicago has higher salaries.

I am not from the US and just try to understand if all the high salaries that get mentioned here on HN are reality.

[1] https://www.glassdoor.com/Salaries/chicago-software-develope...


Salaries have gone kinda nuts the last 3ish years. IDK what's going on, but that's the state of things. Still, even 3-4 years ago ~$70-80k was entry-level around here, as far as places with actual money went. Maybe (unfunded) startups or something else that's getting included in the stats (state jobs?) drag the average down? I'd certainly assume Chicago averages higher than here—we're very much a tier under them, so far as tech-hubbitude.


Chicago isn't very much of a tech-hub outside of fintech, and the business culture is completely different than the west coast and newer startup-focused markets. Things are shifting a bit, but by and large its not a place dripping with VC dollars looking to fund startups and burn cash on developer salaries.


Was the $4k/wk based on a billed hourly rate?

In general, the economics of working hourly don't tend to work in your favor. On their side, it focuses the client on the rate and the hours and tends to encourage them to micromanage you. On your side, you don't economically benefit from increasing quality and reducing timelines.

It's hard and a lot of people are not good at it, but I recommend trying to do project-oriented work with fixed bids. It's much easier to focus the client on the long-term benefits of higher quality and shorter timelines in a fixed bid situation. And you economically benefit from increasing quality and delivering faster than you bid.

It's a lot easier to compete with offshoring when you set the context this way.


Fixed bids work well with productized services, where both parties have a very good idea of the work required and the end result, but are often disastrous in the more general case.


With a well-written and comprehensive design covering 100% of the scope, I believe any software development project can be safely fixed bid.

The problem is that most of the time, people who do attempt project-oriented work/fixed bids do so without a comprehensive design – and it does indeed tend to end up a disaster.


In the past, the opposite happened to me. The replaced an outsourced team with me for a project. But that was a long time ago.

The different timezone and lack of face to face will be a big challenge. I think you should make it known to your client, if they are not happy with the India team, that they should contact you to pick the project back up.

Let them know your the guy they can call in the middle of the night, who will show up onsite.

You might even be able to negotiate a higher rate if they do take you up on the offer.


You have not much to worry about. I tried to replace MYSELF (billing $20K/month) with someone $5K/month. It was... shall we say, difficult.

Good help is definitely hard to find and if your client found good help, they should do good help consulting.


Tough situation.

It's still generally true that for offshore dev work companies get what they pay for, so if the company really can replace you with 1 US pm and 2 devs for only $4k/month they probably won't be very good. But they may be able to maintain what you developed so to that extent you might have worked yourself out of a job. At that rate it's also likely that the offshore team may not be as good or as fast as your former client expects, so it's worth keeping in touch in case they need you back.

Can you move higher up the "value chain" by doing more technically specialized work that's harder to offshore?

Can you generalize what you developed for this company into a SaaS product that you can resell to other companies into the same industry?

Realistically it's also just a fact of life that some companies, especially if they're not in high tech themselves, think that offshoring is a silver bullet to cut development costs without any side-effects.


As an Indian dev living in India, i'd like to offer a bit of background. I'm currently doing my 3rd year at Uni and mostly do contract projects which encompass building/maintaining/optimizing deep learning and machine learning models. I also do a lot of data analysis work, data migration, etc, etc. The developers I work with and who I am around will never work for an outsourcing company. The outsourcing companies hire devs for as little as INR25000 (USD363.34) a month and use them for websites/native apps, etc. Mainly a lot of grunt work. If you really want to hire good Indian devs, try looking at LinkedIn and go for the younger, just out of a good Uni lot for dev work. Consulting is a whole different outlook here.


Just out of uni devs are terrible consultants as they don't know what they don't know.

So when they cock up, the really cock stuff up spectacularly.


Haha I do agree, but honestly, good devs aren't really hard to pick out. Out of uni good devs are the ones who have the most potential to grow imo. I may be wrong but it's my experience with my peer group.


Outsourcing to India is cheap on paper expensive in reality. If India was able to compete with local they would charge the same price.

Poor communication and lack of progress will frustrate them in 6 months.

Your client will be working with a local account manager who is clueless but a good bullshitter, they pass on what they _think_ the client means to the Indian team.

The Indian team is provided with a shitty brief they can't really work with, and they don't have the communication skills to go back to the client so they just build the wrong thing.

Since the team is in a different timezone all this poor communication takes ages.

After a year of lots of back and forth the client still wont be any closer to what they actually want and have spent a fortune on staff in meetings about the issue that never gets resolved. Going local even if it is more expensive will be cheaper in the long run and will produce the results they want.

There is nothing you can do about this, the customer has to scold their hand before they realise that the oven is hot.


Nothing, if they don't have the money, they don't have the money. The only thing you can do is show you can do it faster and cheaper and perhaps offer a fixed price.


They have the money. Don’t lower your prices. Keep looking for new clients even when busy. I can almost guarantee that the offshore solution will cost them more in the long run.

It’s a sign that the finance people are running the show. I’ve seen that movie, and it rarely ends well.


This. In my experience the offshore outsourcing has always cost more in the long run


In my experience, offshoring is decided on entirely at the C level or just below it by managers wanting to save money and believing they can do so this way.

They want to believe so hard that it will work that they'll mostly ignore warnings from the people whose jobs will change because of the offshoring. That's just the nature of many businesses... if managers can't see a good way to make themselves look good, they start contemplating things like this. Usually, cognitive bias keeps them from putting the brakes on.

The kicker is that for some companies offshoring works well. It all depends on what their needs are and whether they can efficiently adjust to the new scheme of things.

Of course, if it happens to work, managers tend to take that as validation of their point of view.

It's like using "the cloud" for all your IT. For some applications putting all your data on someone else's computer works very well, and for others it's impossible. Whether your company can migrate to the cloud depends on what you do and how you do it, and I have yet to work at a company with enough self knowledge to make a decision based on that ahead of time.


It sucks to lose work when you performed well and had a good relationship with the client. I feel your pain. Good advice in the comments here about staying in touch - offshoring will most likely fail for them. Swallow your pride and check in with them and/or offer to help in an advisory role. In the meantime work on skills and build your pipeline for new work. There's always another door...


For a), the big question is: why did they think it's a better option? What risks do your customers see in you/what did they dislike? A general feeling of "not getting their moneys worth" can be treated differently than "we're worried you get sick/disappear on a jungle trip/... and we're stuck without the only person knowing what's going on".


This would be a good discussion to have. Do they think that 2 devs are going to produce more work than the guy who created it? What do they need a PM for? Even for 2 it is odd, unless they are going to work on other projects too.


There are clients are won't outsource to India. The ones with .gov URLs tend to be that way.

Giving up the consulting to be an employee with benefits and reliable work, maybe you want a USDS job: https://news.ycombinator.com/item?id=20330257

Also try directly applying to various agencies and their contractors.


First, why they are replacing you is based on the belief that these people are the better deal. Changing a belief is harder than changing an attitude (being able to spot an attitude vs a belief is a real challenge). So, anything can do or could have done would need to change the client's belief that you are replaceable with these competitors.

Like other comments suggest, stay in touch. Staying/acting professional will gain you more than being salty/smart.


Isn't it like a standard practice? Hire an expensive professional first that will do all the heavy-lifting, then outsource bugfixing and maintenance somewhere else where it is cheaper.


In my experience its the opposite. Hire a junior developer to create a bit of a mess then have seniors come and keep the crap running a few years later.


I think you underestimate quality of outsource workers around a world. I am not talking specifically about India. For 10k/month you get a very good developer for a short(1 month) gig in Europe. For long-term(3-6 month) gig price is even lower.

From your side as a person who understands project you can propose technical leading for a project, e.g. 1 day/week for 1 month. But you need to decide how to handle conflicts. Outsourcers has no initiatives to follow your recommendations.


is there anyway you can stay on and become the project manager? You have an integral knowledge of the application and projects, you know where all the bodies are buried which will be a HUGE benefit for the offshore team to get up and running. With some experience you'll be able to manage other projects besides this one and put that on your resume.

As we say in AA, when one door closed, another opens.


Sounds like it’d be a pay cut from 4K/w to 4K minus what the other 2 devs are paid


Was it discussed at start of contract about expectations of progress velocity and cost? If it was and you met those, they may have changed their minds about that and not much you can do to change that they did that. If it wasn't discussed, in the future with new clients, discussing expectations around speed of feature delivery and associated cost could help you filter clients.


If they survive this experience, there will probably still be good money to be made helping clean up the mess which will no doubt occur here.


What controls did you have in place so you were not a SPOF for your client?

I myself am struggling with this with a few of my consulting gigs: I need to find someone as a backup who can stand in for me when I need to spend time with family, go on trips, or am generally unavailable ....


as you've witnessed, this approach, when applied well, has advantages, but also suffers from increased communication overhead and roundtrip times. as a result, prototyping and researching open-ended, not well defined assignments is not ideal with remote, given that the required feedback loop between customer and executor (you) is better kept short. maybe it would be best to enjoy both worlds? say, once you've onboarded the customer and are delivering, begin reducing costs for them by delegating units of work to cheaper, remote resources yourself? this way the customer is happy and stays with you. this has the added benefit of freeing your own time to take on new work.


If you have been with this client for a year, just move on. If it was a month long, you need to devise a different strategy: don't be so fast with your solution. Once you give your solution, offshore teams can take that solution and chug along.


I get an email a day from an Indian company offering their services and Django and Python are never a part of their skill set. When I looked for a Django dev on Upwork there were very few Indians coming up. Ended up working with some Russians which were great but not much cheaper than local devs. I guess you always get what you pay for.


What's the market for Python devs like these days?

I know there is a lot of interest in the language from people coming from other fields, but I realize that doesn't necessarily mean there are enough qualified people to meet demand.


What could you do?

Lower your price. The gap between a team and you is 3x. Hire a 2k developer to do the work and you manage project. Do this 4 times. If one client moves you don't have all of your eggs in one basket.


Companies make stupid decisions to "save money", it seems like it was a budget based decision, so unless you were willing to work for less money you did everything right


You could have used bad variable names and no comments :). Use clojure or rust or D. Or R! Etc.




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

Search: