I can't say much about the subject since I never used outsourcing, however 4000$ a month for a Ukrainian dev looks really over evaluated, it's much more than most positions in France.
I assume they will be more capable than the average developer in any country.
Everywhere I've worked and lived companies doing anything remotely complicated need to hire devs that are significantly better than average or it's just a waste of money. Sometimes they just aren't around at any reasonable cost for whatever reason.
Doing some comparisons between various European countries it looks like the wages for junior and middle experienced devs are wildly different, matching what you might expect. But the wages for senior devs start to converge.
Let's not pretend software developers are paid exceptionally well in the Netherlands. Somehow it's a skill that's way undervalued here, compared to e.g. middle-management. That said, a senior dev with an academic background (ie: if you can do more than just programming but also have the background to acquire and use complex domain-specific knowledge) you can easily make over $6000 gross a month. The cost of hiring you will be almost double that for the employer.
You're not going to make that kind of money by working projects for a consultancy firm though, the margins they are making on your skills are ridiculous.
You can easily make over 100k a year as a dev in NL if you're self employed, assuming you charge 60 an hour (about half the rate a consultancy firm charges customers) and work 1800 hours a year. That way, you have no benefits, no insurance, and no income when you're between projects, but an income that your English speaking peers at least don't laugh as hard at.
I don't think the wages are all that bad considering the generous benefits. What's really killing is the cost of living here.
You're probably referring to health insurance, but that isn't a major problem. Health insurance is commercial, but regulated.
Employees are insured for unemployment, disability etc. Your employer is insured to cover your wages if you're sick. If you're self employed, you either don't get paid for hours not spent working, or you have to buy similar insurances commercially. You will also need insurance for liability and probably for legal costs. If you're good at your job and good at selling yourself, you probably make more than an employee would, but the 60 an hour are not pure profit.
What you charge your customer as self-employed dev can't be compared to what an employee makes. The rule of thumb I heard is that you should consider about a third to be "net income". The rest is taxes, investments and various costs (including insurance and retirement).
So a self-employed dev making 100k would be comparable to an employee making 30-40k. It's a very rough estimate; it's probably a bit better than that.
I'm self-employed and have about €120k revenue per year (working 4 days a week), and I think my taxable income ended up below €60k last year.
160hours/month @ $25 = $4000. Go and have a look at Upwork. Relatively few developers there charge less than $25/hour. It is considered a low-ball rate. Even the Indians or Filipinos will hesitate to bid on that kind of projects, and they otherwise have a reputation of "being cheap" ("the cheap guys"). The only place in Europe where you can get really cheap labour, is the Ukraine. Don't try to fish for this even in Romania or so.
Aren't European salaries generally quoted post-tax though? For an apples-to-apples comparison you'd have to think of the American salaries in terms of "after tax and typical payroll deductions (incl health care)".
That's just not true. For one you're not factoring in the cost to hire, monthly tax on that salary etc. I doubt a good developer earns less than 4k gross in say Paris.
My other problem with this line of thinking is this idea that you are getting less for that 4k than if you were to hire someone from the US. There are extremely capable people around the world with excellent communication skills and if you're looking at it with this attitude you will just miss out on this talent.
From the article : "Today, a good Java developer in the Ukraine earns $4,000 a month."
As I understand it, it's not what the dev costs to its employer but what he takes home.
And where did you read that I had the idea that they were not good enough to justify this kind of money. My surprise at the 4k number comes from 2 thoughts :
- how come a dev from a poor country earns more than one in a rich country ? (I don't say they shouldn't, just that it's surprising)
- and as I wrote in another comment, I read since the war the average Ukrainian pension is 70$ a month. I would have thought devs salaries would be more in line. 4k a month must be "stratospherically" rich there.
In Poland (where salaries in general are higher than in Ukraine, my guess would be about twice as high) 4 grand for a dev isn't unheard of, but far from typical, especially outside of Warsaw.
You are taking the article too seriously. The guy googled a bit, came up with some half-digested ideas and burped them with a clickbait title. Here’s a recent overview of Ukrainian IT market on the largest Ukrainian IT community hub. Look at the last two pictures.
http://dou.ua/lenta/columns/jobs-and-trends-2015/
Outsourcing companies tend to exaggerate skill level of their employees and one could be called a "senior developer" only after 3-4 years of experience. These "seniors" can be paid much lower salaries (say, $1500-2500 monthly) while the company can charge its client $50-100 an hour. That's where their margins are.
Your first job might led you about only $500, though, and on the opposite side of the spectrum there are people of exceptional skill that bring home $5000-7000 per month.
These sums seems higher than in Europe simply because of different tax structure. If you bring home in, say, Berlin, $3000 after tax, your employer and you still have to spend another 3-4k on pensions, insurance and taxes - about 100% premium vs 5% in Ukraine. Here we don't have any of that. Our pension will be about $200-300 and we don't have a decent quality health care or education for our families provided by the state.
Also, mortgage rates here are insane - 20%/y with 25% down payment! So most developers end up saving big parts of their salaries to afford buying property without taking loans.
Many developers here would prefer $3000 in Berlin over $5000 in Kiev because of all the value that you get from the state and the economy.
*My numbers around taxation may be off to some extend but you get the idea.
One thing that always struck me about some countries that seem to have a really low housing (rent) costs: the home prices seem to be equal that in the US!
It doesn't make any sense. I'll see homes for 100K USD, but rent only $200-300/mo? How does that work?
That's because the Hryvnia, Ukraine's currency, is a volatile currency which is hardly worth the paper it's printed on. It has declined about 20% YTD against the Euro, and about 45% YTD against the dollar. Inflation is also extremely high.
Yep, that's interest rate - I checked with several bank sites before posting. This is due to volatile economy (war, corruption, all that) and higher risks for banks. You end up paying several times the price of the property. Like I said, almost everyone I know just puts aside 30-50% of their salary instead and buys at once when they save enough. 50% of 4k - and you effectively have only $2k to spend each month. Doesn't look that rosy compared to France, does it?
Rent is cheap - I pay about $500/mo for a 1 bedroom apt in the city center. 10 minutes of walk to the office. The price of that place? - about $200k. That's one of the reasons we don't have a proper rental business: it just doesn't make sense.
I live in such a country. My parents have a $250k home, that would cost only $500-$600 to rent.
But here is the catch, they only pay $200-$300 in municipal taxes. I guess in the U.S it'll be a few thousands dollars. This cost will eventually drill down to the person renting the property.
Also that's the price tax-free because nobody is paying taxes on rental (which is 30%).
The general property tax rate in my area of the US is about 1.25-1.5% the value of the home. My home is ~$500k and my property tax is about $7250 a year. Previous home was ~$300k and my property tax was about $4200 a year.
Schools are funded primarily through this mechanism.
Property taxes are a lot in many places in the US. Not all states are bad. Some states you only have a few hundred dollars a year. In NJ (my home state), especially near NY, it is normal to pay ~2-3% of the home's value a year in taxes.
> It doesn't make any sense. I'll see homes for 100K USD, but rent only $200-300/mo? How does that work?
It's +- how it works in Poland in dozen or so biggest cities. There's no ad valorem tax on buildings, just a very small muncipial tax basing on land area and some multipliers depending on category. Also there's still shortage of buildings in these cities.
50m^2 flat in Lublin is worth around $80 000, I could rent it at $250/month maybe. The price of renting is on the high side for the city size, it helps that that particular city has 5 universities and 100 000 students with 350 000 regular population.
It is very common in India. Rent costs are typically half or less compare to US properties. Most people who buy are using black money or hoping for high appreciation in price of property. With rental income no one can service mortgage.
That really depends. Productivity differs between programmers with orders of magnitude. Assuming a career of 35 years, this programmer only grosses 1680000$. That is 6 zeroes. So, that would be a level-6 programmer. By programming Google Search, Sergey Brin and Larry Page produced half a trillion in value. That is 11 zeroes, corresponding to level 11. For example, if you can get a level 8 programmer to work at level 6 for you, you are into making truckloads of money. You could easily beef him up to level 7 and still be laughing all the way to the bank. But then again, most employers are not particularly working on level-8 subjects. I suspect that the problem is rather at that level than anywhere else; especially in France. What software worth mentioning have they ever built over there? Of course, they can't pay anybody anything. From what money would they be doing that anyway?
UbiSoft == French Company (France) having offices among others situated in Montreal, Québec (Canada).In Montreal mostly French is spoken (English being a close second).
The Montreal Studio of Ubi is responsible for the games you mention ...
Assassain's Creed and Far Cry might have had some work done by the French Ubisoft HQ, but most of the work was "offshored" to the friendly same-language-speaking Montreal offices.
Sergey Brin and Larry Page didn't make their money by programming, though.
Taking your methodology at face value, the guy employing a level 8 programmer for less than $10 million / year is by definition a level 8 programmer himself, even if he can't program at all.
A small disclaimer: I'm talking from remote programmer point of view.
I really don't get why the place I'm working from determines how much do I earn.
Am I bringing less value working from Malaysia than from London? I think the value you bring in should be the only factor what your salary depends on.
Can somebody shed some light on it? I know there are some arguments like costs of living, but why it should be even considered? It's totally up to you where do you live.
Easy: in a market economy, your salary depends solely on how much a developer like you can be had for, not on anything else.
So if you're a unique, highly sought-after expert, the country doesn't make much of a difference directly, because people like you a generally hard to find.
But for a pre-senior level, there's a lot of people available, so the amount the client is willing to pay is determined by how much other people like you (from a place like yours) are willing to work for, which obviously depends on the country.
And then there's the selection bias. If the reason you got found is because the client has been looking for developers in your country, chances are that the client is looking to save money and isn't willing to pay much. Those clients who are willing to pay more generally look in different places.
And finally, a US-based client working with a US-based contractor is protected by US laws, unlike when working with a contractor from a developing country with a less reliable judicial system.
I agree what you say, but there is also a different case.
I heard a lot of stories about companies paying different just basing on where the programmer lives. Eg. if he switches location, he automatically gets less/more money. This is a biggest nonsense for me I want to clarify.
If they can get away with it, they'll try, because it's more money in their pocket. They don't care if it's fair or not. Plus, often times the people actually making salary decisions like that are "HR professionals" or something, who have no real understanding of the value of one individual vs. another. They just compute the minimum salary needed to keep the turnover of generic FTEs low in some market.
> I know there are some arguments like costs of living, but why it should be even considered? It's totally up to you where do you live.
I think that matters because it lowers the wage you can put up with. Thinking from an employer perspective, assuming non-specialist skills, it's more costly to work with someone remote in a different timezone (b/c communication difficulties, etc), so they'd only do that if they can push your wage low enough so they come out ahead with the extra costs vs. a local developer. They also like money, so if they can push your wage down further than that, they'll try.
I'm glad that Ukrainian Java devs are earning $4000 a month. The quicker wages rise in low wage countries the sooner the 'first world' countries will return to overall wage growth.
True. But manufacturing is already being onshored back to the US partly as a result of rising wages in China (and largely due to falling energy costs in the US).
This is true of outsourcing generally, not just outsourcing to lower cost offshore regions. Back in 2000 I left my secure dev job with a large US bank to join a startup and chase the dotcom boom with a startup. The crash happened, I got laid off, no one was hiring, so I ended up joining a boutique 'consultancy' doing dev for banks. Over the course of the next three years I learnt a brutal lesson in the consultancy development business model. As this post points out, there's a fundamental misalignment of interests. The client wants the project done, and the consultant resources gone. The consulting firm wants maximum headcount on the project for maximum duration, and therefore maximum billing. This misalignment means the consulting firm can't speak the truth to the client. The consulting firm can't speak the truth to their employees either, and will usually give them some flim flam about how consultancy is the best of all possible worlds as it combines the security of permanent employment with the variety of contracting. In fact it combines the worst of both - the insecurity of contracting with the lower pay of permie work. Consultancy firms run on one key benchmark - utilisation level. Most, like ThoughtWorks or IBM Global Services, will aim for 65 to 70%. That means 65-70% of employee hours must be billable to a client. If you drop below that rate you have to fire people. At the 'boutique' consultancy I worked for they ran at 95%. Folk would roll off a client assignment at 5pm on a Friday, and get a phone call firing them at 5.10pm! So far, so simple. As the original post made clear, it's all about margin. And, as the original post also made clear, the result of this business model is one disastrous project after another. So why does it keep happening? The fault there lies on the client side. The clients hiring the outsourcing and consultancy firms are usually large corporates looking to manage costs down. The project sponsors are senior managers with long term careers in these highly political organisations. When their projects fail they can't make a fuss about it as that would draw attention to their own management failures. Instead they have to pretend the project is a qualified success, and jump to another team or silo in the corporate environment so some other sucker is left clearing up the fallout. So the consequences of failure are repeatedly eluded, as Mr Pointy Headed Manager slips off to another team, and the consulting firm moves on to the next billing opportunity. I was a little shocked when all this became apparent to me, back in 2002/3, when I saw a $25,000,000 project get canned by a large US bank without ever getting into production. Now of course I understand that it's just how orgs like EDS and IBM Global Services make their money. And the upside is, as the article points out, that it enables wealth transfer from developed economies in North America and Western Europe, to developing regions like Eastern Europe and India, by means of rising developer salaries. The conclusion I draw is don't ever work for a 'consulting' firm like ThoughtWorks. Be a permie or a contractor...
I couldn't read to the end because of the bad formatting. Let me fix some of it:
This is true of outsourcing generally, not just outsourcing to lower cost offshore regions. Back in 2000 I left my secure dev job with a large US bank to join a startup and chase the dotcom boom with a startup.
The crash happened, I got laid off, no one was hiring, so I ended up joining a boutique 'consultancy' doing dev for banks. Over the course of the next three years I learnt a brutal lesson in the consultancy development business model.
As this post points out, there's a fundamental misalignment of interests. The client wants the project done, and the consultant resources gone. The consulting firm wants maximum headcount on the project for maximum duration, and therefore maximum billing.
This misalignment means the consulting firm can't speak the truth to the client. The consulting firm can't speak the truth to their employees either, and will usually give them some flim flam about how consultancy is the best of all possible worlds as it combines the security of permanent employment with the variety of contracting.
In fact it combines the worst of both - the insecurity of contracting with the lower pay of permie work. Consultancy firms run on one key benchmark - utilisation level.
Most, like ThoughtWorks or IBM Global Services, will aim for 65 to 70%. That means 65-70% of employee hours must be billable to a client. If you drop below that rate you have to fire people.
At the 'boutique' consultancy I worked for they ran at 95%. Folk would roll off a client assignment at 5pm on a Friday, and get a phone call firing them at 5.10pm!
So far, so simple. As the original post made clear, it's all about margin. And, as the original post also made clear, the result of this business model is one disastrous project after another.
So why does it keep happening? The fault there lies on the client side. The clients hiring the outsourcing and consultancy firms are usually large corporates looking to manage costs down. The project sponsors are senior managers with long term careers in these highly political organisations.
When their projects fail they can't make a fuss about it as that would draw attention to their own management failures.
Instead they have to pretend the project is a qualified success, and jump to another team or silo in the corporate environment so some other sucker is left clearing up the fallout.
So the consequences of failure are repeatedly eluded, as Mr Pointy Headed Manager slips off to another team, and the consulting firm moves on to the next billing opportunity. I was a little shocked when all this became apparent to me, back in 2002/3, when I saw a $25,000,000 project get canned by a large US bank without ever getting into production.
Now of course I understand that it's just how orgs like EDS and IBM Global Services make their money. And the upside is, as the article points out, that it enables wealth transfer from developed economies in North America and Western Europe, to developing regions like Eastern Europe and India, by means of rising developer salaries.
The conclusion I draw is don't ever work for a 'consulting' firm like ThoughtWorks. Be a permie or a contractor...
I think the real tldr is: Outsourcing companies and their clients have incompatible incentives; because the outsourcing company only keeps getting paid as long as the project isn't finished/delivering value to the client.
Yeah. I always found it weird that outsourcing actually is a thing, because misalignment of values is pretty obvious. I will guess that the company doing the outsourcing is usually also burning someone else's money to fund the project.
Except that would've been always true. So the "anymore" part is purely clickbait.
The truth is Outsourcing never worked. But it was cheap enough that it could have been considered a worthwhile attempt at cutting cost, even if it ended up costing more with re-writes it was justifiable.
Now, you can't justify even attempting it given the high risk of failure.
That's a pretty broad generalization. The maintenance contracts I have in place with my clients incentivizes us to build software that doesn't break and requires minimal maintenance.
If that's the reason why outsourcing doesn't work, why employment does work? I think this is the flaw in the article.
Perhaps outsourcing and employment do work, but it's always better to hand the job to somebody from local culture or to your friend/family. At a higher price, though.
I think you can generalize it like that, although maybe it more depends on type of relationship you want to have; physical proximity is only a proxy for that.
Perhaps building a more robust reputation systems is a true way to get a more efficient economy.
Here in Brazil the US Dollar is 1:4 to the local currency (and the value is raising), so right now the exchange rate is really favorable to a customer in the northern hemisphere.
Not only the labor, real estate assets and companies are beginning to look very cheap for foreigners.
Good article, and most anyone who has used Upwork will relate.
It's not just about off-shore devs. Any time you hire someone part-time / short-term and pay them hourly... what's their motivation (keep in mind they were the lowest bidder)? To give you the best quality code, or to extend / prolong their contract?
If you want to make sure your priorities and goals are aligned with your developer, make sure they are on-staff and have a percentage of the company. Or better yet, learn to code yourself.
As someone who spent several years as a solo freelancer/consultant, sometimes offshore, sometimes onshore.
The main reason this type of work is drying up, in my experience, is that there is too much free money flowing around. Why deal with a temporary worker when you can afford to hire them full-time and have them sit in your office?
Furthermore, full-time engineers add a lot more to your valuation than freelancers and consultants do. A client once told me that adding a consultant to their "full-time" force increases the company's valuation by $100,000, but a proper full-time engineer adds $1,000,000 to the valuation.
I'm not sure why, but if I had to guess I'd say it's a combination of a company showing clear signs of growth (more employees == growth), and the lower churn because of 4 year vesting plans.
It's because there's at least one person on-board the company who understands the technical underpinnings, and has incentives that (usually) align with shareholders -- versus consultants whose bottom-line is never entirely dependent on the success of your company.
> Why deal with a temporary worker when you can afford to hire them full-time and have them sit in your office?
Because after paying his taxes and his cost of living, this full-time person makes way less than the guy doing the same job from the Ukraine. Therefore, everybody with just even half a brain will do the math and will not be available for sitting in his office. They'll put up their own office on some sunny beach in Guatemala and log in from there. Don't tell me it is not true, because that is what I have been doing for the last 10 years.
Oh I know it's true. I did it for years. But then I hit a glass ceiling when I wanted to charge SF rates, but do the independent thing. Nobody wanted to pay for that.
So now I'm sitting in a SF company, charging SF rates, and building my positive signals so that I can eventually go back to the independent thing and keep charging SF rates.
· Slack: Now valued at nearly $3 billion, this company used outsourcing to develop its solution in its earliest days.
· Fab: This large startup partnered with developers in India to maximize funding while scaling up when their business showed signs of growth.
· Skype: They used a team of developers in Estonia to help them build out their business.
· Klout: To get its technology in the right place before launch, Klout relied on many outsourced developers
A lot of start-ups coming up with good ideas and quality products doing good in so called developing countries
Calculate Software revenue generated in developing countries, You have only showing negative side why you dont you write article about outsourcing guidelines?
what should they do use “Made in own country” Product strategy?
I have hired Russian speaking devs (not firms) hourly and, after the initial hiring filter, about 60% were very productive and didnt want to bill for months for nothing. I worked with them personally, though.
I will add one more reason: with appearance of online outsourcing platforms, best developers flocked there as individuals (and that is the only way to really reliably make $4000 as a developer in Ukraine as far as i know). They don't have middlemen, which normally only get in the way by obscuring the communication, and easily beat any outsourcing shops (which don't do much valuable management anyway, just lease out workers). Because individual freelancers and offshore outsourcing companies' employees are doing the same work, only people who left with the agencies are those who are inept and know it - otherwise they'd go to Upwork themselves and get an instant 3x raise. So don't expect an agency to have good people...
A Ukrainian developer told me that working for a large outsourcing shop looked better in the eyes of her friends and family than being a freelancer. She said being a freelancer, was, in her opinion, seen as a sign you couldn't get work with a big consulting firm.
She had just become a freelancer, despite her perceived drop in status.
It may be because she is a novice developer and not immersed much into the IT world, and not highly qualified yet. With the non-IT people 'freelancer' might look like a nice word for 'unemployed'. Much higher status of an experienced freelancer is undeniable (a $4000 freelancer is solid upper class - able to afford multiple full time home staff - in most of Ukraine)
Being from Moldova, and working on Upwork, I understand what he means... There is a bit of distaste for freelancers because there are a lot of very cheap freelancers working on the local market (because they would not be able to find a good project on upwork) with very low quality of work. All questions go away though when you tell your family how much more money you make.
EDIT: As per sibling comment, there are two types of freelancers: very high qualified or very low qualified. The general public usually hears more about the low qualified ones though.
Hard to tell. I hired many people on Upwork, and i can say that there are quite some mid-tier ones. Charging about $15 an hour and in general, worth their money - for example, overally good but with English so poor they can't get high paying customers themselves.
Mostly true, with caveat: it's hard to find big projects as single freelancer. Simply put, you won't be able to score a client that needs (let's say) both server side, front end, android/ios app finished in the same time. When working in (good) outsourcing shop, you work as a team.
I worked for two good outsourcing shops and both experiences were great.
> Simply put, you won't be able to score a client that needs (let's say) both server side, front end, android/ios app finished in the same time.
While that might be the case for some clients or projects mostly the problem is a sales and legal one.
Single freelancers can't afford to deal with ridiculously complex enterprise sales processes.
Large clients on the other hand for the most part don't want to be directly involved with contractors due to administrative (managing accounts payable for a huge number of small suppliers instead of just a handful of large suppliers) and legal reasons (managing and assessing individual supplier contracts; depending on the country and how you market your services as a freelancer there can also be issues around fake self-employment, which this way large clients can conveniently outsource to a third party).
> it's hard to find big projects as single freelancer.
> server side, front end, android/ios app finished in the same time
This is not true.
The freelancer simply needs to position himself as someone who can build and manage a team that can do that. I've served as a technical lead on projects managing other freelancers. Large projects.
The argument doesn't make sense. He brings up a lot of the challenges of outsourcing, and makes offhand remarks about good ways to address them. But if his argument were true, no contractor would "work".
The entire contracting industry fits into his description of "outsourcers". Lots of contractors work effectively for their clients. As a person in ANY business, if you believe that your only incentives are to get your clients to pay more, more often, then you will fail. Fucking your customers will wreck your business in any market. The customer has to feel like they got some value out of the deal.
The real incentive for a contractor is to provide the best (perceived) quality of product, for the highest competitive price possible. Even the bottom-price bargain barrel shops know this. They're just bad at it.
I think the author has a point, as software development is lot different than most other contracting gigs.
In most successful contracting jobs one would have a very clearly defined scope (processes and materials to be used, what is a clear outcome, etc.).
Software development has lot of ambiguity - processes to be followed, materials (technology stacks) to be used, what is a clear outcome (nobody knows unless it is validated in the field - apart from internal testing scenarios).
It is in the interest of the customer to define and specify what it wants as much as possible.
In more formal environments it is normal to have a requirements specification as a point of entry for developing the SW, and the first output by the contractor should be not code, but technical documents describing how this requirements are going to be met, how they are going to be tested, the technology used...
Of course this is a process that require additional effort and time, not only on part of the contractors but from the customer as well (in terms of requirement definition and review).
What I'm saying is that there are well known processes and methodologies to deliver SW products, and it's up to the customer to define what it wants, and to what detail, and up to the contractor making sure that he has a clear idea of what he is going to get.
Individual contractors can and do work well in client organisations. Separate scaled up consulting and outsourcing businesses are the problem IMHO, and this is what the article argues too.
You're right: I think the biggest difference in product quality comes from the differences in reputational effects.
A local developer or consultant will often rely almost exclusively on referrals and their reputation to get new (high-priced) gigs. So they have a strong incentive to keep quality high and to have satisfied customers.
On the other hand, outsourcing providers tend to be fly-by-night operations whose sole competitive advantage is low cost. They have essentially no reputational incentive, as there will always be another fool looking for Facebook at bargain bin prices.
But i agree with just one thing: don't outsource management. If you hire some developers from an outsourcing shop in outstaffing mode, or just hire them individually on Upwork, that's fine. But don't let the agency do the management. If you can't do the management yourself you can't succeed.
Although his comments are accurate there's nothing terrible profound about them.
For quite a while everybody has realized that out sourcing was never anything more than labour cost arbitrage, dressed up with fairly empty "sales" rhetoric.
However he misses a more fundamental way in which clients and outsourcers interest are misaligned.
Because outsourcers are essentially selling bodies they have no incentive to become more efficient through labour cost reduction.
I suspect this failure is the real reason for the current "in sourcing" vogue. As software development and delivery becomes increasingly automated the labour cost component will drop, along with the pressure to outsource.
The outsourcers business model is fundamentally broken and it's only a matter of time before this shows up in the bottom line.
Outsourcing doesn't have to be based on pure time&material model. Software houses have huge incentives to become more efficient - using scale to their advantage, becoming experts in technology, etc. - all that to compete with other software houses.
I know from first-hand experience that this isn't the case.
Obviously T&M is the preferred contract structure for the service provider, but many projects get done on different metrics (fix-price, result-based, T&M with upper/lower bound etc.). It's quite a competitive industry, so a big client can negotiate for a different contract structure if the project allows it (obv. not for bodylease stuff).
Also, your assumption about labour-cost arbitrage isn't completely true. Many external consultants (incl. developers) make better salaries than internal staff.
We did simplify software development _a lot_ since the dawn of computers. Compilers, IDEs, standard libraries... it's not really automation yet, but a programmer today is much more productive than a programmer forty years ago.
It addresses the question of why companies exist, rather than adhoc gatherings of independent economic actors held together by contractual relationships. Coase suggests that this is due to "transaction costs" involved in negotiating everything into a written contract structure upfront rather than adhoc managerial coordination as needed.
> OK, what's the solution, then? Just pay more? I don't think that's going to solve the problem; I'll just burn more money.
Sounds like the author hasn't actually tried to solicit a company with higher rates and therefore assumes way too much here.
I think a lot of devs/shops who are more expensive are so because they're demonstrably better. According to free-market logic, they can charge more because the market is willing to pay them more. Why would the market be willing to pay them more? Because their services are worth paying more for, due to them being better.
>Why would the market be willing to pay them more? Because their services are worth paying more for, due to them being better.
That's a stretch. It might be be the reason they're more expensive, but it might not be. Maybe they choose to work in San Francisco, rather than Idaho, so their overhead is higher. If price were the only signal of quality, then the low-quality workers would take advantage of the signal and charge the same.
This isn't hard to see in reality: can you name any industry or product where higher price assures better quality?
It's not a stretch. A more expensive laptop is generally better than a cheaper one. A good engineer is generally more expensive than a cheaper one. A good doctor... a good lawyer... etc.
> can you name any industry or product where higher price assures better quality?
Life doesn't give you any assurances. I'm talking about free-market logic and its application in general.
Generally speaking, you get what you pay for. If the dev in San Francisco is not good enough that the market is willing to bear his rate, then he won't have enough work to make ends meet and will move back to Idaho.
You have to be willing to pay more for quality, but simply paying more won't magically increase the quality. The only solution is to learn enough about that you can distinguish good from mediocre. If you just go looking for someone who costs as much as a good dev, you end up running into the arms of con men.
> This isn't hard to see in reality: can you name any industry or product where higher price assures better quality?
Nothing is assured, but almost every industry has a correlative relationship between price and quality. It might not be a linear correlation and it's not 100% consistent, but on average a more expensive product is almost always better than the cheaper one. This applies for everything from cars to employees.
This is only true for people who thoroughly understand what they are buying. This is very rarely the case for people hiring programmers. The only people who are capable of hiring programmers are other programmers (and often not even then). Everybody else is totally incapable of hiring programmers or distinguishing between incompetent, lousy, mediocre, or possibly good candidates. That is why the boss of a technology company (Google, Facebook, Microsoft, Oracle) has to be a programmer, or else sooner or later, the technology firm will crash and burn.
Even when developers are included in the decision, any decision other than 'use outsourcing' is met with "But, $10/hr!" by management and game over. Been there; had that done to me.
Either the management are programmers themselves (Bill Gates, Sergey Brin, Mark Zuckerberg, ...) or else the company is a lost cause. They will simply get expelled out of the market by companies -- who take no prisoners -- of which the management are programmers. Only a programmer can create half a trillion dollars of value (Google Search). Nobody else can do that. Their output is too inferior for that.
Granted, not exactly the work of one person, but neither is Google search. https://en.wikipedia.org/wiki/Edward_Jenner is probably the highest gains from any one person. Though there was a lot of prior work in the field.
If I've only had self-taught exposure to programming and can do like PHP/WordPress and a bit of rails, but am more of a marketing business person, if 5-10 years down the road I want to start a software company and don't want to be taken advantage of would you absolutely recommend becoming proficient in a language to have cursory knowledge, or for your examples above would the management/CEO have to be a full-time extremely proficient programmer?
Higher rates align incentives because they make the provider more vulnerable to reputational effects. If you're targeting $150+/hr projects, you can't use online platforms to find clients. That end of the market simply depends almost exclusively on reputational marketing (referrals, industry contributions, mindshare).
Hence, as their continued ability to get contracts depends on having satisfied customers, higher-priced shops have an inherent incentive to deliver quality. As opposed to low-end shops who are just scooping up clients with their low rates and therefor have no quality incentive.
This is questionable though. My first company was an onshoring consulting firm, and I know I was rented out for 197/hr, yet this was still 100% their business model.
> If you're targeting $150+/hr projects, you can't use online platforms to find clients.
Not true. I make $150/hr. The client found me online and we work entirely online. Furthermore, it is a deeply-discounted rate because I have 15% of the startup's shares.
Free market logic requires perfect information, though. How many of us have seen Highly Paid Consultants come on that were absolutely terrible, yet were paid more than we were in salary?
I'm curious, what protects a customer from the author's personal outsourcing company against the author's criticisms of outsourcing?
Their company home page talks about constant value and quality approval / adherence, but it sounds like the same sort of marketing schtick that ever outsourcing company promises.
So, really this just comes back to that Benjamin. It can be summarized in one sentence - the lucrative nature of doing outsourcing before is no longer true today.
I think one of the biggest problems with outsourcing comes from 2 groups of people.
Generally these are the most vocal proponents at first, only to become some of the most vocal opponents later. The way I would classify them, generally speaking, are: (a) business people looking to keep costs down but don't know the first thing about running a technology project, (b) those who think "outsourcing" means "I tell you the idea, and you do all the work".
Technology projects (especially custom ones) are hard, and they require a lot of due diligence and hard work from all parties involved.
I would never recommend a non-technical person / company to try outsourcing. It's a recipe for disaster. That is unless you fully trust the person / group of people who you're putting in charge of the project.
EDIT: Thought I'd add a clarification here. Never recommend outsourcing of CUSTOM projects that is. Cookie cutter solutions it's obviously a different story...
And I guess another edit would be to differentiate "scale" of a project. Large scale projects which will be "centerpieces" to a company, are the kinds of projects that I read about being outsourced which alot of times seem to turn bad.
> "outsourcing" means "I tell you the idea, and you do all the work".
It is okay for anyone to think this, but in any project it is not okay for the workers to leave it uncorrected.
I do contract software projects in the US (near NYC). I get this on every project. A loose scope and a general idea, and then the go-ahead.
It is my responsibility to refine the scope. Sometimes that takes an email, sometimes a longer discussion, and sometimes it takes a small prototype for the client to play with to find out if it is right for them.
It would be incredibly dishonest to just make a project based on what I saw from the beginning. It'd be dishonest of anyone in any industry.
I think I agree to a point. What I discuss ahead of time with potential clients is the fact that in order for the project to be successful they need to be engaged and willing to work with me toward what eventually will be the end product. I've never received what I would consider a "sufficient spec" ahead of time, but I'm always (as long as the client is engaged with me and with the project) able to do the extra legwork to come to a concrete understanding of what we're trying to accomplish.
I have, early in my consulting career, worked with companies where there was literally no feedback, insufficient specifications, and we had no access to the people who would eventually be using the software. It was at this time, early in my consulting career, when I decided this was a critical intangible I must have in a potential client before I start negotiating an actual contract.
You're certainly right. But, the same goes for if they were developing the software in-house: you need to have the customer use the software.
It is probably a bit more pronounced in consulting, I agree.
This is extreme programming, at least part of it. It is called a lot of things (client tests, cards, whatever) but the goal is the same: to get frequent and critical client feedback.
I've had the same experience as you. Asked to implement something, but you KNOW they are not using the software.
And this is exactly the kind of thing that's a lot easier with someone in the same country, the same culture, and the same language. The big problem with outsourcing to another country is that you've got a big communication gap in the middle of your project, and you need to compensate for that.
(Though you can also easily run into this problem without outsourcing, but I every step between the programmer and the user/customer makes this problem more likely.)
I have been doing project work for big chemical companies in the past 8 years. The full project description is usually less than 20 lines and I work hand in hand with my customers to get the project done the way they want. I am talking about complex thermodynamic modelling and HPC code here. The kind of thing where you basically need a PhD in the scientific area + a full stack understanding of programming to do it right.
They outsource the work to me and they are really happy at the end.
> those who think "outsourcing" means "I tell you the idea, and you do all the work"
What mystifies me is people will laugh in your face if you try this outside programming, but are taken seriously almost exclusively by the programming field, even decades after its acknowledged most projects fail. Clearly other forms of enlightenment have failed so far; maybe extreme sarcasm would work? We've tried everything else and it hasn't sunk in yet...
So I've got an idea. Psychedelic accordion music. Awesome huh? Now unfortunately I can't play the accordion, but I'm sure I can just take advantage of some poor person on the other side of the planet who can play an accordion and currently can't afford to eat. On one hand I have to move fast and break things so I'll need to hire the first accordion player I ever meet, on the other hand I need to appear to be pinching pennies so I'll need to hire the cheapest accordion player on the entire internet (and what could possibly go wrong with that?), and on the third hand I could only hire ivy league grad accordion players who live in only one town but then I'd have to complain constantly about the small supply and high salary demands and extreme groupthink ... Eh I'll get the cheap guy, what could possibly go wrong.
I've got another idea, I'm going to disintermediate the legacy plumbing industry by positioning my new unicorn as an intermediary (err pretend not to notice that) in the lucrative and exciting excrement removal field. Unfortunately I don't know anything about plumbing or sanitation or building codes, but move fast and break things, and I can just hire some people who know what they're doing, I'm an ideas guy you know, so I deserve all the rewards. True, the guys who told me they know plumbing, also do not know plumbing, and we're a little unclear on what flows downhill or uphill or whatever hill. But that's OK because our unicorn's iOuthouse shipping rate is going exponential. I even greenwashed my product by making it out of organically grown free range hemp cardboard, which is a good selling point for the tens, maybe hundreds of potential customers. Oh wait, did I say that? I meant tens to hundreds of millions of potential customers. I also integrated "social" and "chat" by implementing "long line to the bathroom" although the lawyers claim professional sporting events have prior art. Oh well off to collect the billions I'm entitled to, got an IPO to arrange!
But somehow you can build a house without knowing much about static loads, roofing, plumbing, insulation, heating etc. Of course the less you know the more you risk that someone sells you crap, but that is nothing special to outsourcing.
I would of course expect to be able to tell a producer/composer to come up with some accordion music, and that he will know what questions he has to ask and when to send me a demo for feedback to make this a success.
Construction projects, if not managed by someone who knows what they are doing, absolutely do go over budget and overtime. The difference is that on construction projects, construction project managers who work for the company commissioning the building work are experienced project managers who have normally been working in the construction industry and are knowledgable and skilled in many areas of construction and do know what can be delivered, what should be delivered, and what they need to go when they encounter problems and project slippage.
In fact, in construction there is actually MORE outsourcing than in software projects, because in actual fact you'll contact out specialise work (e.g. Electrical work) who then often five work to subcontractors.
Where I live it is very ususal to just hire an architect and then a general contractor. So the party that commissions the project (has the "idea") really has little knowledge at the start of the project. But of course they depend on their partners to handle all the project management.
Which all is just to say: I think it is very reasonable and common to only bring the idea and then hire someone to do the work. The problem with what is mostly called "outsourcing" in the software industry is not the fact that you want to hire someone, but more in how careful you select your partners.
If the secret sauce of unicorns were mere commodity shovelware, I would agree. There's nothing wrong with outsourcing non-core competency side jobs or commodity shovel work, happens all the time.
Or rephrased, is a tech unicorn not made out of tech?
I believe it is not. There is a user behavior and a data flow that go together to get traction. Marketing is probably the most important part. Luck being the 2nd. Tech may be way down there, alongside carbon paper.
Apparently this is how certain companies make money from government contracts. They deliver exactly what is asked for, at an unreasonably low bid, but then make the real money when the client suddently realises, far too late, that what they asked for wasn't what they needed.
Which is the fault of the government department who should have spent time and money on a competent business analyst to work out what was required.
If you outsource your work with specific requirements and don't involve the outsourcing company in the development of your requirements, which they then deliver in full, then you have nothing to complain about.
Well no, it's mainly the fault of Congress and procurement rules which require going with the lowest bidder. And it also is the fault of the companies that do this.
> (b) those who think "outsourcing" means "I tell you the idea, and you do all the work".
This is especially bad because those people are in my experience bad at communicating their ideas. Experienced external developers will know when and what to ask to minimize extra workload. Even more experienced developers will know when to shut up and just bill the extra time due to changing specifications.
I find I can generally guide a conversation in the right direction, but I also find that I can never approach a project as though I'll be the person to tell the client when a project is done.
The client has to understand their product well enough to be able to tell me not only if / when it's done, but if it's not done they need to be able to explain precisely why it's not done. Not in a confrontational way, but in an exploratory way. As long as we continue to discover reasons to continue to work on the project, the expectation has to be that I'll continue to bill for the hours I put in.
In my limited experience you are spot on. Non technical people cannot manage these projects. They don't really understand the project themselves and by outsourcing they think they get to pass their problems on down the line.
These people only look at cost and cannot determine skill level or product quality. It ends up costing 2-3 times as much if they went with a real developer from the start.
Cookie cutter solutions it's obviously a different story...
Are they even considered outsourcing? Like, Samsung licenses ARM. They are said to have licensed IP, rather than said to have outsourced CPU development.
I'm not sure what the precise definition would be. But I was mostly thinking of web-based solutions. Like the difference between a custom solution that could potentially require an entire team of developers vs a shop that, for example, specializes in customizing WordPress templates. Even though there is some customization involved, it's an example of what I would define as "cookie cutter" solution in web development.
And I think that same concept probably translates over to the difference between consulting firms building fully custom solutions vs. consulting firms coming in to customize licensed software (like Microsoft or Oracle, etc).
I have launched at least 10 products with remote developers and I can assure you that it works perfectly fine. The key here is to find a good local manager that is from a country that you try to hire developers from.
I agree with Danilka. I provide the same service to French clients. I live in Paris, and I work very closely with client project management teams, in the same offices. This eliminates 99% of communication problems. Email's in the profile.
Well, you should not outsource project - you should outsource people. Have a mix of inhouse developers who will cooperate with contractors. Force them to attend scrums, make them a remote part of the team. The difference is - you can use them for a period of time when you need them and then release the resources when they are no longer needed (fire them).
I had success with one outsourcing project where we had a dedicated project manager and a prototype. We asked the outsourcer to make an exact copy of the prototype for a different platform and had success.
I think if you are a good outsourcing shop, you want money to pay salaries, but you also want referrals and repeat business. So you want to do a good enough job. It's the same with every company struggling to meet payroll, except a little more distant. But with globally accessible reviews, the world is a smaller place nowadays.
This is a very good application, as many times just writing a spec is not adequate to describe a project and I am sure you did some iterations to arrive with a prototype. I am currently outsourcing something similar with similar results. Thanks for sharing.
318 comments
[ 5.2 ms ] story [ 298 ms ] threadEverywhere I've worked and lived companies doing anything remotely complicated need to hire devs that are significantly better than average or it's just a waste of money. Sometimes they just aren't around at any reasonable cost for whatever reason.
http://www.payscale.com/research/NL/Job=Senior_Java_Develope...
Doing some comparisons between various European countries it looks like the wages for junior and middle experienced devs are wildly different, matching what you might expect. But the wages for senior devs start to converge.
http://www.payscale.com/research/UA/Job=Senior_Java_Develope...
You're not going to make that kind of money by working projects for a consultancy firm though, the margins they are making on your skills are ridiculous.
I don't think the wages are all that bad considering the generous benefits. What's really killing is the cost of living here.
Employees are insured for unemployment, disability etc. Your employer is insured to cover your wages if you're sick. If you're self employed, you either don't get paid for hours not spent working, or you have to buy similar insurances commercially. You will also need insurance for liability and probably for legal costs. If you're good at your job and good at selling yourself, you probably make more than an employee would, but the 60 an hour are not pure profit.
So a self-employed dev making 100k would be comparable to an employee making 30-40k. It's a very rough estimate; it's probably a bit better than that.
I'm self-employed and have about €120k revenue per year (working 4 days a week), and I think my taxable income ended up below €60k last year.
AFAIK the number is correct.
Seriously though, good to know.
My other problem with this line of thinking is this idea that you are getting less for that 4k than if you were to hire someone from the US. There are extremely capable people around the world with excellent communication skills and if you're looking at it with this attitude you will just miss out on this talent.
As I understand it, it's not what the dev costs to its employer but what he takes home.
And where did you read that I had the idea that they were not good enough to justify this kind of money. My surprise at the 4k number comes from 2 thoughts :
- how come a dev from a poor country earns more than one in a rich country ? (I don't say they shouldn't, just that it's surprising)
- and as I wrote in another comment, I read since the war the average Ukrainian pension is 70$ a month. I would have thought devs salaries would be more in line. 4k a month must be "stratospherically" rich there.
First of all $4k is not much - less than $20/h
The salaries here are very diverse.
Outsourcing companies tend to exaggerate skill level of their employees and one could be called a "senior developer" only after 3-4 years of experience. These "seniors" can be paid much lower salaries (say, $1500-2500 monthly) while the company can charge its client $50-100 an hour. That's where their margins are.
Your first job might led you about only $500, though, and on the opposite side of the spectrum there are people of exceptional skill that bring home $5000-7000 per month.
These sums seems higher than in Europe simply because of different tax structure. If you bring home in, say, Berlin, $3000 after tax, your employer and you still have to spend another 3-4k on pensions, insurance and taxes - about 100% premium vs 5% in Ukraine. Here we don't have any of that. Our pension will be about $200-300 and we don't have a decent quality health care or education for our families provided by the state.
Also, mortgage rates here are insane - 20%/y with 25% down payment! So most developers end up saving big parts of their salaries to afford buying property without taking loans.
Many developers here would prefer $3000 in Berlin over $5000 in Kiev because of all the value that you get from the state and the economy.
*My numbers around taxation may be off to some extend but you get the idea.
is that interest?!
One thing that always struck me about some countries that seem to have a really low housing (rent) costs: the home prices seem to be equal that in the US!
It doesn't make any sense. I'll see homes for 100K USD, but rent only $200-300/mo? How does that work?
Rent is cheap - I pay about $500/mo for a 1 bedroom apt in the city center. 10 minutes of walk to the office. The price of that place? - about $200k. That's one of the reasons we don't have a proper rental business: it just doesn't make sense.
But here is the catch, they only pay $200-$300 in municipal taxes. I guess in the U.S it'll be a few thousands dollars. This cost will eventually drill down to the person renting the property.
Also that's the price tax-free because nobody is paying taxes on rental (which is 30%).
So if you add these two up, you get your price!
Schools are funded primarily through this mechanism.
It's +- how it works in Poland in dozen or so biggest cities. There's no ad valorem tax on buildings, just a very small muncipial tax basing on land area and some multipliers depending on category. Also there's still shortage of buildings in these cities.
50m^2 flat in Lublin is worth around $80 000, I could rent it at $250/month maybe. The price of renting is on the high side for the city size, it helps that that particular city has 5 universities and 100 000 students with 350 000 regular population.
Interest rates are at around 2-5% mostly.
Not long ago I read that since the war, the Ukrainian average pension was about 70$ a month (this is why I was surprised by the 4k salary).
Devs must be kings there.
Point in case: I make 2.5x my parents' wages (combined) as a student working part time.
BusinessObjects, Mandriva, Dailymotion, Archos,
Ubisoft is French, so Assassain's Creed, Drive, Far Cry, Tom Clancy series
Alcatel and Orange are French telecommunications companies that are pretty famous
So it's fair to say Ubisoft's products are French (from France, not the language) products.
---
[1] https://en.wikipedia.org/wiki/Ubisoft
you can add CATIA CAD, that owns 70% of the airplane design market.
Taking your methodology at face value, the guy employing a level 8 programmer for less than $10 million / year is by definition a level 8 programmer himself, even if he can't program at all.
I really don't get why the place I'm working from determines how much do I earn.
Am I bringing less value working from Malaysia than from London? I think the value you bring in should be the only factor what your salary depends on.
Can somebody shed some light on it? I know there are some arguments like costs of living, but why it should be even considered? It's totally up to you where do you live.
So if you're a unique, highly sought-after expert, the country doesn't make much of a difference directly, because people like you a generally hard to find.
But for a pre-senior level, there's a lot of people available, so the amount the client is willing to pay is determined by how much other people like you (from a place like yours) are willing to work for, which obviously depends on the country.
And then there's the selection bias. If the reason you got found is because the client has been looking for developers in your country, chances are that the client is looking to save money and isn't willing to pay much. Those clients who are willing to pay more generally look in different places.
And finally, a US-based client working with a US-based contractor is protected by US laws, unlike when working with a contractor from a developing country with a less reliable judicial system.
I heard a lot of stories about companies paying different just basing on where the programmer lives. Eg. if he switches location, he automatically gets less/more money. This is a biggest nonsense for me I want to clarify.
I think that matters because it lowers the wage you can put up with. Thinking from an employer perspective, assuming non-specialist skills, it's more costly to work with someone remote in a different timezone (b/c communication difficulties, etc), so they'd only do that if they can push your wage low enough so they come out ahead with the extra costs vs. a local developer. They also like money, so if they can push your wage down further than that, they'll try.
That without counting automation.
How many people had cell phones, much less a smart phone, 10 years ago? How quickly has Amazon grown?
Not saying they're in any way correlated, but technology growth and adoption of new stuff is fast. Super fast.
In fact, they are probably inversely correlated.
http://qz.com/330243/dont-kid-yourself-us-manufacturing-is-n...
http://www.nytimes.com/2013/09/20/business/us-textile-factor...
This is true of outsourcing generally, not just outsourcing to lower cost offshore regions. Back in 2000 I left my secure dev job with a large US bank to join a startup and chase the dotcom boom with a startup.
The crash happened, I got laid off, no one was hiring, so I ended up joining a boutique 'consultancy' doing dev for banks. Over the course of the next three years I learnt a brutal lesson in the consultancy development business model.
As this post points out, there's a fundamental misalignment of interests. The client wants the project done, and the consultant resources gone. The consulting firm wants maximum headcount on the project for maximum duration, and therefore maximum billing. This misalignment means the consulting firm can't speak the truth to the client. The consulting firm can't speak the truth to their employees either, and will usually give them some flim flam about how consultancy is the best of all possible worlds as it combines the security of permanent employment with the variety of contracting.
In fact it combines the worst of both - the insecurity of contracting with the lower pay of permie work. Consultancy firms run on one key benchmark - utilisation level.
Most, like ThoughtWorks or IBM Global Services, will aim for 65 to 70%. That means 65-70% of employee hours must be billable to a client. If you drop below that rate you have to fire people.
At the 'boutique' consultancy I worked for they ran at 95%. Folk would roll off a client assignment at 5pm on a Friday, and get a phone call firing them at 5.10pm!
So far, so simple. As the original post made clear, it's all about margin. And, as the original post also made clear, the result of this business model is one disastrous project after another.
So why does it keep happening? The fault there lies on the client side. The clients hiring the outsourcing and consultancy firms are usually large corporates looking to manage costs down. The project sponsors are senior managers with long term careers in these highly political organisations.
When their projects fail they can't make a fuss about it as that would draw attention to their own management failures. Instead they have to pretend the project is a qualified success, and jump to another team or silo in the corporate environment so some other sucker is left clearing up the fallout.
So the consequences of failure are repeatedly eluded, as Mr Pointy Headed Manager slips off to another team, and the consulting firm moves on to the next billing opportunity. I was a little shocked when all this became apparent to me, back in 2002/3, when I saw a $25,000,000 project get canned by a large US bank without ever getting into production.
Now of course I understand that it's just how orgs like EDS and IBM Global Services make their money. And the upside is, as the article points out, that it enables wealth transfer from developed economies in North America and Western Europe, to developing regions like Eastern Europe and India, by means of rising developer salaries.
The conclusion I draw is don't ever work for a 'consulting' firm like ThoughtWorks. Be a permie or a contractor...
The truth is Outsourcing never worked. But it was cheap enough that it could have been considered a worthwhile attempt at cutting cost, even if it ended up costing more with re-writes it was justifiable.
Now, you can't justify even attempting it given the high risk of failure.
Perhaps outsourcing and employment do work, but it's always better to hand the job to somebody from local culture or to your friend/family. At a higher price, though.
Perhaps building a more robust reputation systems is a true way to get a more efficient economy.
It's not just about off-shore devs. Any time you hire someone part-time / short-term and pay them hourly... what's their motivation (keep in mind they were the lowest bidder)? To give you the best quality code, or to extend / prolong their contract?
If you want to make sure your priorities and goals are aligned with your developer, make sure they are on-staff and have a percentage of the company. Or better yet, learn to code yourself.
The main reason this type of work is drying up, in my experience, is that there is too much free money flowing around. Why deal with a temporary worker when you can afford to hire them full-time and have them sit in your office?
Furthermore, full-time engineers add a lot more to your valuation than freelancers and consultants do. A client once told me that adding a consultant to their "full-time" force increases the company's valuation by $100,000, but a proper full-time engineer adds $1,000,000 to the valuation.
I'm not sure why, but if I had to guess I'd say it's a combination of a company showing clear signs of growth (more employees == growth), and the lower churn because of 4 year vesting plans.
Because after paying his taxes and his cost of living, this full-time person makes way less than the guy doing the same job from the Ukraine. Therefore, everybody with just even half a brain will do the math and will not be available for sitting in his office. They'll put up their own office on some sunny beach in Guatemala and log in from there. Don't tell me it is not true, because that is what I have been doing for the last 10 years.
So now I'm sitting in a SF company, charging SF rates, and building my positive signals so that I can eventually go back to the independent thing and keep charging SF rates.
I'm only 28, plenty of time :)
Take example of Outsourcing Success stories http://www.entrepreneur.com/article/247462
· Slack: Now valued at nearly $3 billion, this company used outsourcing to develop its solution in its earliest days. · Fab: This large startup partnered with developers in India to maximize funding while scaling up when their business showed signs of growth. · Skype: They used a team of developers in Estonia to help them build out their business. · Klout: To get its technology in the right place before launch, Klout relied on many outsourced developers
A lot of start-ups coming up with good ideas and quality products doing good in so called developing countries
Calculate Software revenue generated in developing countries, You have only showing negative side why you dont you write article about outsourcing guidelines?
what should they do use “Made in own country” Product strategy?
I don't know if you can call this outsourcing. They were a few guys who worked together, there wasn't really a difference in power between them.
I know for a fact that GitHub, Slack, Basecamp etc. are overwhelmingly developed by in-house developers.
Skype was developed in Estonia but the company was Estonian. That's not outsourcing.
Fab is hardly a success story.
She had just become a freelancer, despite her perceived drop in status.
EDIT: As per sibling comment, there are two types of freelancers: very high qualified or very low qualified. The general public usually hears more about the low qualified ones though.
I worked for two good outsourcing shops and both experiences were great.
While that might be the case for some clients or projects mostly the problem is a sales and legal one.
Single freelancers can't afford to deal with ridiculously complex enterprise sales processes.
Large clients on the other hand for the most part don't want to be directly involved with contractors due to administrative (managing accounts payable for a huge number of small suppliers instead of just a handful of large suppliers) and legal reasons (managing and assessing individual supplier contracts; depending on the country and how you market your services as a freelancer there can also be issues around fake self-employment, which this way large clients can conveniently outsource to a third party).
This is not true.
The freelancer simply needs to position himself as someone who can build and manage a team that can do that. I've served as a technical lead on projects managing other freelancers. Large projects.
The entire contracting industry fits into his description of "outsourcers". Lots of contractors work effectively for their clients. As a person in ANY business, if you believe that your only incentives are to get your clients to pay more, more often, then you will fail. Fucking your customers will wreck your business in any market. The customer has to feel like they got some value out of the deal.
The real incentive for a contractor is to provide the best (perceived) quality of product, for the highest competitive price possible. Even the bottom-price bargain barrel shops know this. They're just bad at it.
In most successful contracting jobs one would have a very clearly defined scope (processes and materials to be used, what is a clear outcome, etc.).
Software development has lot of ambiguity - processes to be followed, materials (technology stacks) to be used, what is a clear outcome (nobody knows unless it is validated in the field - apart from internal testing scenarios).
Most of the time, the people going for upwork have no idea of what they want, they just want 'an iPhone app'
In more formal environments it is normal to have a requirements specification as a point of entry for developing the SW, and the first output by the contractor should be not code, but technical documents describing how this requirements are going to be met, how they are going to be tested, the technology used...
Of course this is a process that require additional effort and time, not only on part of the contractors but from the customer as well (in terms of requirement definition and review).
What I'm saying is that there are well known processes and methodologies to deliver SW products, and it's up to the customer to define what it wants, and to what detail, and up to the contractor making sure that he has a clear idea of what he is going to get.
A local developer or consultant will often rely almost exclusively on referrals and their reputation to get new (high-priced) gigs. So they have a strong incentive to keep quality high and to have satisfied customers.
On the other hand, outsourcing providers tend to be fly-by-night operations whose sole competitive advantage is low cost. They have essentially no reputational incentive, as there will always be another fool looking for Facebook at bargain bin prices.
For quite a while everybody has realized that out sourcing was never anything more than labour cost arbitrage, dressed up with fairly empty "sales" rhetoric.
However he misses a more fundamental way in which clients and outsourcers interest are misaligned. Because outsourcers are essentially selling bodies they have no incentive to become more efficient through labour cost reduction.
I suspect this failure is the real reason for the current "in sourcing" vogue. As software development and delivery becomes increasingly automated the labour cost component will drop, along with the pressure to outsource.
The outsourcers business model is fundamentally broken and it's only a matter of time before this shows up in the bottom line.
Obviously T&M is the preferred contract structure for the service provider, but many projects get done on different metrics (fix-price, result-based, T&M with upper/lower bound etc.). It's quite a competitive industry, so a big client can negotiate for a different contract structure if the project allows it (obv. not for bodylease stuff).
Also, your assumption about labour-cost arbitrage isn't completely true. Many external consultants (incl. developers) make better salaries than internal staff.
How? Software is by definition like _manufacturing_ a single item. Production (copying) is already free and maximally automated.
In two centuries we have made very little progress in automating development. I don't see that changing soon, especially not for software.
Dropbox and Uber, just to name a few, are technically very simply implemented, and had many competitors before and after them.
Especially in the startup scene no hard theoretical issues are solved anymore.
You don’t see a startup develop mpeg-5
It addresses the question of why companies exist, rather than adhoc gatherings of independent economic actors held together by contractual relationships. Coase suggests that this is due to "transaction costs" involved in negotiating everything into a written contract structure upfront rather than adhoc managerial coordination as needed.
https://en.wikipedia.org/wiki/Behavioral_theory_of_the_firm is also well worth reading.
> OK, what's the solution, then? Just pay more? I don't think that's going to solve the problem; I'll just burn more money.
Sounds like the author hasn't actually tried to solicit a company with higher rates and therefore assumes way too much here.
I think a lot of devs/shops who are more expensive are so because they're demonstrably better. According to free-market logic, they can charge more because the market is willing to pay them more. Why would the market be willing to pay them more? Because their services are worth paying more for, due to them being better.
That's a stretch. It might be be the reason they're more expensive, but it might not be. Maybe they choose to work in San Francisco, rather than Idaho, so their overhead is higher. If price were the only signal of quality, then the low-quality workers would take advantage of the signal and charge the same.
This isn't hard to see in reality: can you name any industry or product where higher price assures better quality?
> can you name any industry or product where higher price assures better quality?
Life doesn't give you any assurances. I'm talking about free-market logic and its application in general.
Generally speaking, you get what you pay for. If the dev in San Francisco is not good enough that the market is willing to bear his rate, then he won't have enough work to make ends meet and will move back to Idaho.
Nothing is assured, but almost every industry has a correlative relationship between price and quality. It might not be a linear correlation and it's not 100% consistent, but on average a more expensive product is almost always better than the cheaper one. This applies for everything from cars to employees.
"The Man Who Saved A Billion Lives"
https://en.wikipedia.org/wiki/Norman_Borlaug#/media/File:Whe...
Granted, not exactly the work of one person, but neither is Google search. https://en.wikipedia.org/wiki/Edward_Jenner is probably the highest gains from any one person. Though there was a lot of prior work in the field.
Higher rates align incentives because they make the provider more vulnerable to reputational effects. If you're targeting $150+/hr projects, you can't use online platforms to find clients. That end of the market simply depends almost exclusively on reputational marketing (referrals, industry contributions, mindshare).
Hence, as their continued ability to get contracts depends on having satisfied customers, higher-priced shops have an inherent incentive to deliver quality. As opposed to low-end shops who are just scooping up clients with their low rates and therefor have no quality incentive.
Not true. I make $150/hr. The client found me online and we work entirely online. Furthermore, it is a deeply-discounted rate because I have 15% of the startup's shares.
If you're a singular developer charging a flat hourly rate (I am too), yes posting on the web will likely fulfill your needs.
If you're a dev studio looking for your next $50,000 project, probably not.
Their company home page talks about constant value and quality approval / adherence, but it sounds like the same sort of marketing schtick that ever outsourcing company promises.
Generally these are the most vocal proponents at first, only to become some of the most vocal opponents later. The way I would classify them, generally speaking, are: (a) business people looking to keep costs down but don't know the first thing about running a technology project, (b) those who think "outsourcing" means "I tell you the idea, and you do all the work".
Technology projects (especially custom ones) are hard, and they require a lot of due diligence and hard work from all parties involved.
I would never recommend a non-technical person / company to try outsourcing. It's a recipe for disaster. That is unless you fully trust the person / group of people who you're putting in charge of the project.
EDIT: Thought I'd add a clarification here. Never recommend outsourcing of CUSTOM projects that is. Cookie cutter solutions it's obviously a different story...
And I guess another edit would be to differentiate "scale" of a project. Large scale projects which will be "centerpieces" to a company, are the kinds of projects that I read about being outsourced which alot of times seem to turn bad.
It is okay for anyone to think this, but in any project it is not okay for the workers to leave it uncorrected.
I do contract software projects in the US (near NYC). I get this on every project. A loose scope and a general idea, and then the go-ahead.
It is my responsibility to refine the scope. Sometimes that takes an email, sometimes a longer discussion, and sometimes it takes a small prototype for the client to play with to find out if it is right for them.
It would be incredibly dishonest to just make a project based on what I saw from the beginning. It'd be dishonest of anyone in any industry.
"This is what you asked for!!!" does not cut it.
I have, early in my consulting career, worked with companies where there was literally no feedback, insufficient specifications, and we had no access to the people who would eventually be using the software. It was at this time, early in my consulting career, when I decided this was a critical intangible I must have in a potential client before I start negotiating an actual contract.
It is probably a bit more pronounced in consulting, I agree.
This is extreme programming, at least part of it. It is called a lot of things (client tests, cards, whatever) but the goal is the same: to get frequent and critical client feedback.
I've had the same experience as you. Asked to implement something, but you KNOW they are not using the software.
(Though you can also easily run into this problem without outsourcing, but I every step between the programmer and the user/customer makes this problem more likely.)
I have been doing project work for big chemical companies in the past 8 years. The full project description is usually less than 20 lines and I work hand in hand with my customers to get the project done the way they want. I am talking about complex thermodynamic modelling and HPC code here. The kind of thing where you basically need a PhD in the scientific area + a full stack understanding of programming to do it right.
They outsource the work to me and they are really happy at the end.
What mystifies me is people will laugh in your face if you try this outside programming, but are taken seriously almost exclusively by the programming field, even decades after its acknowledged most projects fail. Clearly other forms of enlightenment have failed so far; maybe extreme sarcasm would work? We've tried everything else and it hasn't sunk in yet...
So I've got an idea. Psychedelic accordion music. Awesome huh? Now unfortunately I can't play the accordion, but I'm sure I can just take advantage of some poor person on the other side of the planet who can play an accordion and currently can't afford to eat. On one hand I have to move fast and break things so I'll need to hire the first accordion player I ever meet, on the other hand I need to appear to be pinching pennies so I'll need to hire the cheapest accordion player on the entire internet (and what could possibly go wrong with that?), and on the third hand I could only hire ivy league grad accordion players who live in only one town but then I'd have to complain constantly about the small supply and high salary demands and extreme groupthink ... Eh I'll get the cheap guy, what could possibly go wrong.
I've got another idea, I'm going to disintermediate the legacy plumbing industry by positioning my new unicorn as an intermediary (err pretend not to notice that) in the lucrative and exciting excrement removal field. Unfortunately I don't know anything about plumbing or sanitation or building codes, but move fast and break things, and I can just hire some people who know what they're doing, I'm an ideas guy you know, so I deserve all the rewards. True, the guys who told me they know plumbing, also do not know plumbing, and we're a little unclear on what flows downhill or uphill or whatever hill. But that's OK because our unicorn's iOuthouse shipping rate is going exponential. I even greenwashed my product by making it out of organically grown free range hemp cardboard, which is a good selling point for the tens, maybe hundreds of potential customers. Oh wait, did I say that? I meant tens to hundreds of millions of potential customers. I also integrated "social" and "chat" by implementing "long line to the bathroom" although the lawyers claim professional sporting events have prior art. Oh well off to collect the billions I'm entitled to, got an IPO to arrange!
I would of course expect to be able to tell a producer/composer to come up with some accordion music, and that he will know what questions he has to ask and when to send me a demo for feedback to make this a success.
In fact, in construction there is actually MORE outsourcing than in software projects, because in actual fact you'll contact out specialise work (e.g. Electrical work) who then often five work to subcontractors.
Which all is just to say: I think it is very reasonable and common to only bring the idea and then hire someone to do the work. The problem with what is mostly called "outsourcing" in the software industry is not the fact that you want to hire someone, but more in how careful you select your partners.
Or rephrased, is a tech unicorn not made out of tech?
If you outsource your work with specific requirements and don't involve the outsourcing company in the development of your requirements, which they then deliver in full, then you have nothing to complain about.
This is especially bad because those people are in my experience bad at communicating their ideas. Experienced external developers will know when and what to ask to minimize extra workload. Even more experienced developers will know when to shut up and just bill the extra time due to changing specifications.
The client has to understand their product well enough to be able to tell me not only if / when it's done, but if it's not done they need to be able to explain precisely why it's not done. Not in a confrontational way, but in an exploratory way. As long as we continue to discover reasons to continue to work on the project, the expectation has to be that I'll continue to bill for the hours I put in.
The thing is that non-technical people may not recognise what is custom and what is cookie cutter.
These people only look at cost and cannot determine skill level or product quality. It ends up costing 2-3 times as much if they went with a real developer from the start.
Are they even considered outsourcing? Like, Samsung licenses ARM. They are said to have licensed IP, rather than said to have outsourced CPU development.
And I think that same concept probably translates over to the difference between consulting firms building fully custom solutions vs. consulting firms coming in to customize licensed software (like Microsoft or Oracle, etc).
Disclosure: I am one.
I think if you are a good outsourcing shop, you want money to pay salaries, but you also want referrals and repeat business. So you want to do a good enough job. It's the same with every company struggling to meet payroll, except a little more distant. But with globally accessible reviews, the world is a smaller place nowadays.