Ask HN: Client replaced me with offshore team – what could I have done?
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.
66 comments
[ 2.7 ms ] story [ 128 ms ] threadIt'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.
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).
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.
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 ....
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.
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.
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.
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.
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?
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.
As we say in AA, when one door closed, another opens.
It’s a sign that the finance people are running the show. I’ve seen that movie, and it rarely ends well.
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.
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...
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.
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.
Good help is definitely hard to find and if your client found good help, they should do good help consulting.
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.
Totally makes sense to avoid this consultancy from becoming a potential competitor.
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.
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.
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.
And honestly it changed the way i used to view remote offshore consultants.
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!
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.
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.