I am a developer, yet I outsource the development of my startup
aymeric.gaurat.net
aymeric.gaurat.net
I made the decision to outsource the development of a moderately big PHP project a few years ago -- I went through a LOT of profiles on oDesk and finally settled on a guy (who billed about $30/hr, which was on the high end for non-US guys on oDesk). He was _terrific_ -- we were basically on IM with each other constantly, and he was very open with regular code reviews and feature checks. He added a ton to the project and it worked out way better than I could have guessed given the stigma outsourced development has.
The key, I think, was as other folks have pointed out - that I speak the same technical language and wasn't throwing big meaningless features at the guy ("I want it just like Facebook, but for pets!!").
My only frustrations were things that, unfortunately, can happen with outsourced work -- timing. My guy was an A developer, but a B/C time manager. So the project took about 2x as long as it should have.
But as they say -- quality, price, speed: pick two.
So technically, he billed at $60 an hour. And that is the issue with outsourcing. A local guy in your office might have gotten things done in half the time and cost you just as much.
There is another issue with timing ... and that's the time zone differences. There will always be a delay between a request and the work actually starting. If the time zone difference is large enough, you'll be forced to work by email. If there's an emergency, well, you get the picture.
I would say the cost goes way beyond that... the cost of doubling your time to market can be brutal. Not to mention extra strain on other resources (including your own time) having someone consistently missing deadlines.
My current company sometimes misses this issue. The developer you've outsourced to can take 1.5x but if that slows down not just his items but dependent work, the cost can be very difficult to determine.
The bottom line is that outsourcing looks great on paper but then just murders you with hidden costs. Delays to market, code maintainability, number of bugs, etc all go the wrong way once you outsource, but none of that is quantified on any C-level report.
The nice thing about outsourcing services is they tend to give you tools to screen along with a deep bench.
If a project is big, sure, look for someone local. But if its medium, I'll add oDesk/RentaCoder to the mix every time.
Not necessary. It is more like he billed 20hr/week rather than full 40hr/week.
Working from home "full-time" is extremely hard, especially when you have a family, little children at home...
I'd say 40hr/week at home is equivalent to 60hr/week at office, if not more.
Are you implying than developers working on site are never late? This is far from true.
Edit: To the downvoters, please explain, I may be misguided.
I'm implying that when you factor in the lack of time zone differences, communications issues, and the increased efficiency of having your employee in the same office as you, then you'll probably get the work done in half the time.
I didn't even touch the fact that your options domestically are far more expansive if you want to hire a high quality developer who will get the job done in a fraction of the time, producing maintainable, high quality code.
Even that's only the case if your office is designed for software/creative work. If it's a noisy, open-office plan full of interruptions and distractions, it's no guarantee that on-site software developers will be more productive than someone working remotely from a library or home office or the like.
So technically, he billed at $60 an hour
Remote developers often do not have the same benefits as local employees. They do not have the same protections found in employment contracts, they do not have healthcare benefits, they must also buy their own hardware and office equipment and other requirements. Not to mention that if the work is contract-based, they must also do a little marketing.Even if your assertion is true, $60 is dirt cheap.
A local guy in your office might have gotten things
done in half the time and cost you just as much.
While it is possible to find local talent, the pool of good developers is limited, while the demand is really high. Indeed, local talent has the advantage of being local. However, I would rather work with a remote developer that can get problems solved, than with a hypothetical good local developer that I don't have, or with a local developer that creates more problems than it solves. There will always be a delay between a request and
the work actually starting
Yes, but in my view, that's a really good thing. As a side effect: (1) management is forced to cut the crap and make specifications as clear as possible + (2) it means that I have a lot of time in which I can concentrate on solving the hard problems, instead of lamenting about the color of a link or have meetings about the next meetings we'll have.Even when working with local developers, it's always a good idea to NOT interrupt the workflow of developers, unless it is an emergency. If you have to fix the specs, or set out new directions, and you need to do that often, that means you suck at being a manager. That's why Scrum sprints take 1 or 2 weeks during which the developers manage their own schedule, and if something happens that changes the priorities / specs, then the sprint must be restarted (throwing away unfinished stuff, starting from scratch later) ... that's a little extreme from my point of view, but there are good reasons for why some people prefer this.
There are also good tools for managing remote developers, tools such as bug and feature trackers, tools such as Git or ReviewBoard, etc... Really big open-source projects, such as Linux, scaled like crazy with contributers from all over the world. So I really can't see your point.
If there's an emergency, well, you get the picture.
Personally I'm on call 24/7.If his rate was $100, it's really now $200. If $200, now $400. (For comparison with another remote worker who works at full speed.)
the actual rate (high or low) wasn't really the point. It wasn't a statement of whether it's expensive or cheap, just an observation that someone who works at $30 "twice as slow" (i.e. half expected speed) is equal - in terms of $/feature - to someone works at $60 at full speed on a like basis - even if that basis is also remote.
(Also, even though $/feature is the same between the two, it's worth bearing in mind that the cheaper guy still takes twice as many days.)
> Even if your assertion is true, $60 is dirt cheap.
60 x 8 x 5 x 52 = 124,800
That's a funny definition of dirt cheap.
> While it is possible to find local talent, the pool of good developers is limited
Not in a major city, especially if you know where and how to look.
> Personally I'm on call 24/7.
Except when you're sleeping? And if your time zone = my business hours, that's a problem.
> Except when you're sleeping?
24/7 is by definition when you're sleeping. As in "call me when I'm asleep, and I'll get up and take care of your emergency".
But I always have a 3G-enabled phone near me and I always keep a laptop around. I also have monitoring in place that alerts me in case shit happens before my managers even notice.
This is not about being available 24/7, but about being available when needed. That's in case of emergencies, which by definition are exceptional.
Also, if your customers are suffering because of a problem, good customer service means waking up and fixing the problem at 00:00, regardless of your location.
60 x 8 x 5 x 52 = 124,800
That's a funny definition of dirt cheap.
No, it's perfectly accurate, unless you think that the cost of a developer is measured by his net revenue only.I don't know the tax policies of every country, but the real cost of a developer will be at least twice his net revenue.
When I work with a company that it's on another timezone. I change my timezone myself to be awake and working when everyone else is working in the office. Even if it means I need to work from 10pm through 6 am.
I'm a remote worker that usually works with companies from the other side of the world and usually travels once or twice a year to do in-location jobs. But that's only when they pay is good enough / I'm interested in working with the people that hire me.
He billed $30 an hour. He was an A developer. If you hire locally it doesn't mean you will get an A time manager too.
Also, just because you feel a project must be done in x weeks it doesn't mean you are right. If you need a lot of custom work, then nobody knows for sure how long it takes until somebody actually does the work. If you want something standard (wordpress installation) then it will be delivered in time.
I would disagree with that as a general point and certainly as it being something specific to outsourcing.
Bad time management seems to be a common trait in technical people (I know it is one of my key failings) both in terms of simple punctually and in terms of estimating time/effort requirements - this is something you will run into even with a local developer (though the issue will likely be more visible and so perhaps caught and mitigated earlier) and this is why project managers and such exist. It is a different mind-set sometimes.
Also, almost all software projects are not well estimated. Features are missed from the initial spec, testing time is not fully accounted for, "last minunte" revisions are made as issues and new ideas come up during the development time (unless a full spec freeze is insisted upon), and so forth. A project taking twice as long (wall-clock time or man-hours time) as originally expected is not all that unusual.
The PP seems perfectly happy with the work done and the time/effort/cost it took, so I assume there is no accusation of swinging the lead or the underestimating being something that was due to general incompetence.
Outsourcing can work very well for some projects, particularly smallish ones, but you need to be very careful to manage things appropriately or the costs can quickly run away from a manageable place.
What is sure on the other hand is that if dev is outsourced, and I mean like in we buy it from someone who has some code crunchers on the other side of earth with a liason (again subcontracted) aat our place, is that internal developers have some acquired knowledge of processes and the business.
My personal opinion is, if you find some way to conduct tests and reviews during the development, your product will be less-bug ridden, more userfriendly and ready faster. And if you can pull this, it doesn't matter who does the development. Again, time and distance play a role, but that's not exclusive to outsourcing.
What non-tech companies usually do on the other hand is providing some specs, give them to some external big-name, hope everything goes fine and then conduct some final tests under high time pressure two weeks before go live. And when that doesn't work, they blame outsourcing while it's actually the process that is broken.
But that's actually good news for all the start-ups out there!
The author having found a great guy after 1 week for only $20 sounds to me like he got lucky. And that's not considering the side tasks he gave to the developer just to test him. And the other guy he hired before but didn't like. Summing all that, I'd assume that on average it would take at least two months just looking for someone good and finally get started working on a real project.
Does anyone else got similar good experiences like the author and could confirm that it's actually not that hard? Or did the author just get lucky?
Your main advantage will be to take the requirement and break it down into its lowest parts and then hand off those parts to an outsourced developer and if he/she does not deliver exactly to your spec, then end the relationship. Period.
There is a certain amount of luck to it, but just as the author suggests, I recommend first having the developer create a very simple application with requirements that you define and estimate how long it would have taken you (probably no more than a 5 hour task) and if he/she can deliver, then you've got yourself a winner and you can focus on the business and not javascript errors.
There is a fine line between clarifying and micromanaging though.
Initially I start by posting the job, then filtering in stages before asking them (and paying them) to complete a small 1 to 2 hour coding project. The coding exercise can be done many different ways but the purpose is to evaluate problem solving, code quality, knowledge of libraries, code structure, etc. It's amazing how much insight you can gain with something like that.
More importantly, having them work on something real helps me further evaluate communication, responsiveness, and other attributes I look for in a good dev.
The rewards of finding the right developer far outweight the upfront cost of looking for one in my opinion, but it depends how long you are planning to be in business for.
Most of the failed outsource attempts I know of are one way or another due to non-technical team members attempting to lead technical teams. That a developer could lead another developer, or team of developers, down the right path sooner, more efficiently, and for a longer duration, makes perfect sense. In practice, it's worked brilliantly for the teams I've worked with.
Even still, it takes a special kind of developer to successfully outsource development work. It's not sufficient to simply push work over a wall and accept whatever comes back. Things like well defined requirements, frequent code reviews, detailed mockups, and clearly stated user stories are critical, b/c when you outsource work, the default regresses from what you'd normally expect to substandard work.
But, that's not always due to the outsourced team. Often times its on the hiring party to identify what they need to do better. Great results start with great teams, and part of being a great team is understanding that accountability for the overall result flows both ways.
Also I am a seasoned traveller and I think it helped me understand cultural sensitivities. An Eastern European contractor usually behaves differently than a Filiino or an Indian. They tend to be more direct in their communication style, to the point of sounding rude sometimes. Once you know that, it is easier to tolerate it :)
I did the same thing -- http://outletmapper.com
Some learnings:
1. It really does free up your head to think about harder issues (read: getting in front of the right market) if you're not distracted by code. For me, code is "my happy place", so it is too easy to spend too much time there.
2. I asked hard questions when picking someone to work with. Not just "have you used MapKit" but "how would you do hit detection inside an arbitrary polygon efficiently -- on iOS?"
3. Keep feedback to the right level. Sending back a stack trace and commenting on an edge condition was fine. Somehow sending back a patch seemed over the line.
4. The product will only be as good as your specifications. Get them right. Build test cases. Build a set of better test cases that you use -- that you don't share.
5. Get it right before paying someone. Paper, PPT slides, HTML demos all help to get the ideas baked before your money is pouring out the door.
6. If you're in the US, hire US. Why? You can have them sign a contract that is actually enforceable.
How detailed are your test cases? Do you have a sample document, I am interested to have a look at it.
#6 If you're in the US, hire US.
Mmm I disagree with this. I think the risk that someone decides to steal your idea or code and go run their own business are fairly low. I accept to take this risk to be able to reach developers that I will pay 4 to 5 times less than the local developers in my country.
#6 I don't want my job outsourced. That starts at home. More generally, when I'm in a position to be an employer, I try to be of the sort that I would want to be employed by.
And you'll typically need 4-5x as many of them, and/or they bill 4-5x as many hours. This is not theory. I've seen this happen in reality, over and over again. Does this happen in all cases? No. But I've seen it happen enough that I make decisions based on it. And look at Mythical Man Month for a primer on why larger teams tend to be worse than smaller ones (worse efficiency, more communication overhead, more cheese-moving, etc.)
Having flashbacks to the worse quality startups I've seen that had 5+ person teams in Uruguay, Pakistan, etc. when they could have had the same work accomplished by 1-2 more elite, and local, same timezone, same culture/language, more "expensive" (nominally, but not overall) Americans or Europeans.
He was then able to focus completely on the marketing side of things.
I think that one of the biggest problems that developers have when launching a business/product is that we know how to code, so we assume we should do everything.
I see this repeatedly with friends of mine who have an app idea or an idea for a website that they could get made for a couple of grand but insist they need to learn to do it themselves even if they're not already app/web developers.
People that can't code lament it - they look for technical co-founders and whatnot but the stories I hear from non-technical (and technical!) folks who either choose to (in the case of techies) or are forced to (in the case of non-techies) outsource development they generally get something released at all where as many of the technical people that I know personally are paralysed by the initial time investment required to learn a new technology and being unable to balance that with their full time job elsewhere.
He wants this arrangement to be successful, and he's going to blog about its success whether or not the code is any good at all.
The books "Getting Real" from 37Signals and "Crush It" from Gary speaks about the benefits of educating your customers. I believe it is a great way to market without feeling like a spammer.
I am not expecting to get rich overnight by being #2 on Hacker News.
Did you get any value out of this article?
1) Most bootstrappers don't have the money to pay someone else full time.
2) Most bootstrappers don't have enough experience to know what to build themselves, much less be able to communicate to someone else to do it.
3) Most developers without years of experience are overconfident in their ability to communicate and manage people.
Glad it has worked for this guy, though.
3) Yes, this is something that you learn overtime. Start small, start now :) I have written this article that presents a way to start outsourcing for a lower cost than development : http://47hats.com/2011/07/outsourcing-101-for-startup-founde...
Anyone have experience with this?
However, I prefer to work under the terms of an agreement, mainly because the employer shows interest in taking the time to formally define his expectations and attitude toward developers.
The one thing that has worried me is being asked, after signing a contract with a company in at "at will" state, to agree to a "gentleman's agreement" to give a month's notice. If that's what they wanted, why didn't they put it in writing?
More usefully, for the OP, if you're a foreign contractor by far the biggest hurdle is trust. For finding a job and for making that job work. Anyone with an established reputation / identity is going to care - likely more than you - that things work out. On the other hand, I guess, people like that also don't have the kind of cost difference you might be hoping for...
What kind of protection are you talking about?
Do you use oDesk for all your development work? The "timeclock" feature they have seems valuable. Is it worthwhile enough to bring an outside developer, one you haven't worked with before, into oDesk to work together?
I think it really depends on how comfortable you are with taking this kind of risk, and how much effort/money you want to put into mitigating them.
I forked a consultancy agreement on Docracy [1] recently to specify any notices take place over oDesk, then requested the contractor agree to it via oDesk's messaging system.
https://www.docracy.com/5642/consulting-agreement-for-hourly...
I would imagine, in most cases, building the MVP yourself and then bringing in an Odesk developer to add functionality is likely better in most cases.
But keep in mind that it is very easy to do code reviews nowadays. GitHub or BitBucket give you a nice interface to follow your developer commits. You can comment on them early on to educate your developer on your coding standards.
I also liked the way he phrased the problem...he isn't outsourcing because he hates developing, but because he loves it too much. Never thought about it that way but on reflection, that is why I haven't outsourced the things I like to do.
A real developer who loves his project would never outsource major aspects of the project. One might outsource the design, only because its incredibly difficult to create a great UI and have the know-how to code it as well.
One might outsource the slicing of a layout to CSS/HTML or something simple like that while dealing with IMPORTANT issues such as database architecture, setting up the server, etc.
To suggest that you want to concentrate on the "business aspect" simply means that you don't want to do the hard part. By outsourcing, the article states: "I have more time and I can spend this time for marketing and blogging". ... Right. Because blogging and marketing is so very tough?
The truth is that you USED to be a developer. It sounds like you've realized this and outsourced the project to an actual developer. If that's the case then you've made a wise choice.
In any case, best of luck to you.
Edit: It sounds as though I am belittling other people's jobs on a project. Sorry, I guess to some degree I am? I agree that I am a bit foolish to say that. I don't mean to create any type of hostility in this thread. (Regardless I will keep my full comment here so this thread makes sense.)
My main point is that the author refers to himself as a DEVELOPER. Therefore it does not make sense to me to outsource his own specialty.
And yes, blogging and marketing is very tough. User acquisition is tough. A good on-boarding process is very tough. User experience is tough.
a-fucking men to that!
I agree with the rest of your comment, to an extent, but I strongly disagree with this line.
The act of blogging is easy, sure - it's just typing. The act of marketing, or at least some subset of it, can be easy, I'm sure. Doing these things effectively, so that they actually drive business, is hard.
Dismissing blogging and marketing by sarcastically saying they're "so very tough" is the same sort of bullshit that we get pissed off about when people say "I have this great idea for a website/app, all I need is a coder!"
You're dismissing an entire profession without regard for the hard work that those in that profession put into their jobs.
Though in order of importance, I feel it's behind the actual codebase. For the author to suggest that it's okay to outsource development to have more time doing marketing and blogging when he refer's to himself as a developer is just plain ridiculous.
Obligatory: http://en.wikipedia.org/wiki/No_true_Scotsman
Secondly, I'll posit that a "true developer" (whatever that means) certainly might outsource "major aspects of his project," if he's trying to make a successful business from his project, and he needs to dedicate bandwidth to other areas of the business. Creating a business is more than just writing code.
As the old saying goes "The scarcest resource in a startup is founder bandwidth." If you can amplify your bandwidth by doing some tactical outsourcing, then you do it, as far as I'm concerned.
In fact, this post got some gears turning in my own head, and has me considering whether or not Fogbeam Labs could justify outsourcing some development work, to help speed things along. All three of the founders still work dayjobs at the moment, so a little additional development help could actually be a good thing. I'm not saying we will do it, just that I'm seriously considering the possibility for the first time.
>A real developer who loves his project would never outsource major aspects of the project.
Excuse me, but that's just the 'No True Scotsman' fallacy. You don't get to decide what makes someone a 'real developer. http://en.wikipedia.org/wiki/No_true_Scotsman
>while dealing with IMPORTANT issues such as database architecture, setting up the server, etc.
The primary focus of the founder should be to get paying customers. These paying customers could care one iota about Codd's 12 Rules, 3NF, and Chef/Puppet configuration. If you truly believe that those things are more important than getting paying customers, then you, my friend, have a hobby, not a business. The IMPORTANT thing is "getting them to sign on the line which is dotted." Not mucking about at the CLI.
>To suggest that you want to concentrate on the "business aspect" simply means that you don't want to do the hard part. By outsourcing, the article states: "I have more time and I can spend this time for marketing and blogging". ... Right. Because blogging and marketing is so very tough?
Sigh. The common engineers fallacy of thinking that creating is enough. It is not. Steve Jobs was a salesman. And I can assure you that marketing is not as simple as throwing up a wordpress blog and a facebook page. It takes real work. Which I suspect you would know if you'd ever done it.
HN: You don't get rich by agonizing over data structures and algorithms (unless you're Google). You get rich by leveraging resources so the multiplier effect works to your advantage. If the most efficient path to getting paying customers is to outsource, then do so. Kudos to OP.
</rant>
It's like Steve Jobs saying he is a great salesman but wants to outsource selling his vision. It makes no sense to me.
Therefore that is why I wrote what I wrote.
>author of this post refers to himself as a developer.
It doesn't matter what he calls himself. If you can pass FizzBUzz, you're a developer. Maybe not a John Carmack, but a developer nonetheless.
There is no sacred law written on tablets of stone and handed down from volcanic mountains that states "Developers who found startups must code or face eternal damnation." Rather, there is a holy precept that does state "The founder (whether a dev, UX guy or bizev guy) shall find the most efficient path to profitability, or be condemned to the lake of failure."
So if a founder is from a UX background, but in his particular context, it is more efficient (faster to profitability) for him to outsource the UX and read 'MBA for Dummies', I would argue that that is the rational course of action.
Again: Your priorities as a founder are not whatever background you are from. Your priority (and you must accept it :)) is to become profitable. When that is achieved, THEN you can go up the Maslow Heirarchy of business-actualization.
Or to put this differently. If I was working for some larger company as a developer, and I went to management and said "I have decided that I want to quit development and work in marketing", they would turn me down. And rightly so, because A) it would be bad for the company to lose my development skills, and B) there is no reason to hire me as a marketing person when there's many more out there far more qualified and experienced in marketing.
So...if this would be quite clearly the correct course of action if I worked for someone else, why would I not follow the same thought process for my own company?
I am not saying MBA skills are not valuable. But what is more important is ability to write pithy blogs, write tons of emails to your potential customers, investors and do lot of other routine activities to keep your startup afloat. None of this requires MBA as such in the initial days.
Your passion, reading some of the best blogs out there on specific topics is more than enough provided you take all the advice as just that 'advice' and tweak it to apply as per your situation & needs.
Exactly my feelings.
He's basically said "I have skill set X, which I'm trained in and have been honing for years. For my company, I need skill sets X and Y. So I'll do Y and find someone else to do X."
No matter what X and Y are, that's just the wrong way to solve that problem. The key issue in this case being that he is assuming the marketing/user acquisition stuff is so easy that he can just pick it up on the fly with no prior experience.
I don't know, If I can't do Y how am I going to hire an A player at the Y game. Being good at X means I can evaluate others in skill X.
You do X, hire Y - You have one skilled person, one question mark.
You do Y, hire X - You have one unskilled person, one question mark.
Seems pretty simple to me that the first is better. I suppose that you could make the argument that Y may be easy to pick up, but if that's the case it should be all the easier to just hire someone else with a proven track record.
If you are "doing it right", your time should be worth far more than a programmer's salary.
I run several websites/businesses. At one point I was doing all the coding, marketing, blogging, customer support, etc... I was crazy busy. Over time I've managed to hire for most of this, so I can work on bigger picture, managing what is to be done, architecture issues, and a lot more.
Every few months I try to reasses what things I'm doing that are not worth my time. Programming was one of the first to go. It's so incredibly time consuming and I can hire someone better than me.
It has been close to a year and we are not even close to launch. It would have taken about 2 weeks for me to do it myself. But I'm in denial.
But as he himself says, certain things are hard to outsource. For Example the particular blog post itself. Outsourcing the webdesign and the code behind the site would have been a lot more easier. So in a strange sense, even a skeptic has to agree with his point... A site like Taskarmy can fail due to bad technology but will not succeed due to its technical prowess. What he needs to figure out is how to connect the buyers and the sellers and make them stick around. All the CRUD that goes into his site will not be the secret sauce. The only possible real secret sauce is probably a method to connect the buyers and sellers using an algorithm that beats the competition heads down. In such a case it makes sense for him to keep the "secret sauce" to himself. Everything else is a commodity until he becomes a huge player. If one is at twitter scale, even status messages become "rocket science" and cannot be outsourced.
Some developers won't heed the call and prefer to stay "close to the metal" cause they enjoy it more, and some are genuinely bad at managing. However, very often an experienced developer will benefit a project much more when he can afford to look at the grand scheme of things.
According to this infographic: https://www.staff.com/blog/web-developer-salaries-infographi... Philippines has the cheapest web developer salary in the world at an average of US$6874 per year.
And this is where it helps if the client is a developer. A developer who understand agile processes should be well placed to break tasks down into vertical slices in this way.
On a related note, I highly recommend Trello for co-ordinating with remote workers. I just invite them to a board and send a "welcome" notification to them from a special "Message Card". They immediately get how the whole thing works even if they've never seen Trello or Kanban before, and you can spend most of the time co-ordinating on tasks by messaging on their cards. This is from my experience with researchers/admins and I'm planning on the same for working with a developer.
Still, a 2 month project became 6 months of constant delays. Can't say being a dev helped, in fact I think being a designer or a biz-dev guy would've been better since we tended to discuss a lot about what to use here and there: the guy was a better coder but I had more experience, and so while he always went for the "just works" solution I for obvious reasons tended to go to the solution that was more future-proof and less of a pain to upgrade.
Non-devs would just say "I want X" and then get something like X, but be ok with it.
Actually, there are countries with a similar or even a more high cost of living compared to USA, but people are used to low salaries. This is especially true for [Eastern] Europe.
I've always thought that myself - in terms of outsourcing programming - the experienced developer can actually make better use of other devs more than anyone else.
If you want to outsource development, at least keep it inside your country.
Outsourcing to countries were cheap work and poor working conditions rule, just leads to exploitation of people. Sadly very few, get to improve their life conditions.
I for one, wouldn't like to have my company's success tied to such situations.
Sure these programming jobs open doors to them, even if they have to work sometimes 12 hours a day, with no vacations, no available compensations, no ability to have an union defending them, and earning a lot less than the companies that explore them should pay as a salary.
On the other hand lots of people are not able to get a job, because they just work 8h a day, have vacation rights, insurance, and an union that defends workers from corporation interests. Not to forget what is very important to business, they cost 5x the "price" of poor workers.
My dream is that the work conditions in poor countries improve to the point that exploring poor countries workers is no longer viable.
This is the point of view from someone that works in the off-shoring industry.