9 ms·
The Risk in Sending Your Startup’s Technology Offshore
- shadeless 12y agoI don't like how this article makes offshore development equal to hiring developers that make spaghetti code full of technical debt, like having someone in-house magically stops that from happening. Also, if you hire cheapest programmers you can find, they will be crappy no matter what country they're working from.
- michaelochurch 12y agothis article makes offshore development equal to hiring developers that make spaghetti code full of technical debt It's not, but most of the non-techs who are interested in outsourcing are interested in optimizing for cheapness, so the result is what you'd expect. I'd say that the real arbitrage is to work with extremely talented people (who'd go for $250/h here) at $30-40/hour (plus investment in their career, assistance with immigration if they want it, flights to conferences, and profit sharing... it's still a huge arbitrage after throwing that in) but the sorts of sleazy non-techs who "just need a programmer" and have heard there's cheap labor in the third world are not going to play that way (and they can't assess that upper level of talent anyway). They tend to work with El Sleazo outsourcing shops that charge $20-30/h and pay $4-6/h to the workers. Some of those workers, even at low wages, are quite intelligent and talented... but they're not going to care about long-term issues (e.g. tech debt) if they're just being used for temporary, low-end commodity work, with no managerial interest in their advancement. In fact, if you're looking for clueless people ("I just need a programmer to do all the work for almost zero upside") your best bet is in Silicon Valley. There are plenty of 22-year-olds who buy into the VC mythology and will work 90 hours per week despite a lack of upper-management interest in their own careers. In the developing world, that cluelessness is rare because frank poverty, corruption and outright stealing (by well-positioned officials and common thieves alike) are more common and having that trait would mean that you starve. Working 90-hour weeks because "maybe after two years, he'll introduce me to his VC buddies" is a clueless young white boy's game.
- notacoward 12y agoI had the same reaction. It's mostly good, but there seems to be an unstated assumption that offshore programmers will create more technical debt. Maybe it's even true. I work with what I'm sure is one of the better teams in Bangalore, and while their code is fine in most regards (no more "spaghetti" than I would expect of US programmers working in the same domain), there has been a bit of a learning curve regarding issues like readability and technical debt. I'm sure the situation is worse for other teams. Nonetheless, I wish the author had addressed the issue up front instead of just making assumptions.
- fasouto 12y agoThere are three key factors (location isn't one): - If the product is a success, I'm going to get some money/benefit? - Do I need to maintain the software? - I got a good salary? Usually offshore developers don't have stock in the company, don't have to maintain it and they are poorly paid. So their incentive is to finish the product as fast as they can and just get the money. If you work in-house you are more aligned with the interest of the company. You'll have to deal with this software every day(nobody wants to maintain spaguetti code) and problably you have some stock, also if the company does well you can get a raise. It's about incentives, people optimize for its own hapinness.
- michaelochurch 12y agoNontechs like outsourcing because they think it's cheap. This makes them bad at playing the outsourcing game to win. If you go for the cheap, you lose. If you optimize for cheapness, you get poor work, abroad just as here. It's not that the talent level is the problem. There's plenty of underemployed talent overseas. It's engagement. There are a zillion sleazy outsourcing shops that charge U.S. clients $30/hour and pay $6/hour on the other end. If you go cheap, you're getting people paid the same damn wage they'd get if they walked across the street to a different low-paying El Sleazo outsourcing shop, so they're not going to be engaged. This is especially true if it's obvious that you plan on replacing them with local developers once you raise an A round. If you paid $30/hour (to worker; the cost to US client would be higher) in India or the Philippines you could attract top talent, assuming you know how to recognize it. (As in the U.S., paying highly doesn't guarantee you get good people. Look at the crap that Corporate America gets for CEOs despite paying millions per year. You actually need to be able to assess the talent, and few can.) If you're a non-tech, not a chance. Non-techs can't tell the difference between people like me and the 99 who convincingly (to a non-tech) say they're like me within the same country, so how are they going to do it across cultural and language barriers? Outsourcing can be profitable and, done well, it's a good thing for the world. However, nontechnical founders looking to play this first-stage-abroad game are going to lose. To get good foreign talent, a first prerequisite is to treat it with the same respect as good local talent. That means investing in their skills and careers, flying them to conferences, and treating them as (and, in fact, making them) a permanent part of the team. If you're just using them for temporary cheap labor and planning to hire permanent engineers locally once you raise a Series A, they'll figure it out (they're not stupid) and it will show in the work produced.
- fat0wl 12y agoyea i think this is the point that shadeless's comment misses. it's not like there is no talent in the world at large, but businesses have a hard enough time deciphering talent when they have 2 in-house developers and can read their entire code portfolio... these rubes are doomed as soon as they descend into no-man's-land. Personally I'd much rather have 1 ace developer than 10 of questionable value. at the corp I work at they have the luxury of going both ways, just hiring a pool of expensive devs & seeing which ones turn out to be the aces. I understand thats not feasible for startups. & lack of a technical co-founder makes singling out an ace very difficult. I'd try to get a programmer friend to pick out a likely monster programmer & start from there. Having non-technical people hire/negotiate for tech talent is just not feasible IMO. So much money trickles down the drain like that. Corps can survive it, startups can't.
- jacquesm 12y agoThat's a pretty good article. (If you're reading this, there is a 'they're' where it should be 'their' in the 2nd bullet). What I miss is that the article places the weight of the potential problems with the party that is being hired. More often than not the real problem is the inability of the outsourcing company to mange their relationship properly, to adequately spec what it is that they need and to do sufficient quality control on the result to make sure they get what they paid for. This can result in lots of drama down the line.
- illumen 12y agoExactly! Non-technical can also mean no experience with project management. Off shore project management is a whole area of expertise that people take years to learn and perfect. Of course, that can also be outsourced. heh.
- gmarx 12y agoGood point. He says you need to make them do documentation; How about your responsibility to document requirements/specs?
- onion2k 12y agoNobody wants to come into a team with five overseas developers, two servers, and no version control, but I’ve been there before. If the article author has been there before, wouldn't that mean someone does want to come in to a team like that?
- willvarfar 12y agoMaybe they did it for money not love? That the author did it doesn't mean they wanted to do it.
- slowmotiony 12y agoI don't want to go to work sometimes, but I still do it.
- McDoku 12y agoHe did it and learned. That is my guess.
- dave_sullivan 12y agoNon-technical founder is a weird catch all. You never really hear about non technical founders in other industries, right? You don't start a construction company and say "Well, I don't know anything about construction but I can draw pictures of buildings, so I'll just hire someone that does (barring for a moment that I lack the knowledge about the profession that would allow me to judge talent in the first place)." That said, there isn't something magic about geography that makes people suddenly better at programming. Good programmers live all over, you've just got to know enough about your business to be able to judge talent based on more than geography or color. One rule I've found useful: don't ask people to do things you can't (potentially badly) do yourself.
- jacquesm 12y agoIt's mostly a reflection of the ability of the non-technical people to evaluate their prospective partners. Good non-technical people will be able to compensate with effort what they lack in initial ability. You don't need to know enough to do the job, you need to know enough to evaluate whether the other party is able to do the job (and to check up on them as things progress). Almost by definition this means that they will need a (very) competent project manager on the side of the hiring party. Alas, this is often also outsourced and that's when you get interesting phone calls at 4 am.
- McDoku 12y agoIt is helpful if they (non-technical) are willing to learn and you (technical) need to be willing to devote the time to help them understand. Its important to make sure that is in your estimate. It can eat up a fair bit of time but it makes the relationship stronger.
- dccoolgai 12y ago"well, I don't know anything about construction but I can draw pictures of buildings" That's called an architect... and they do start companies that produce buildings. Just like I'm sure there are a lot of construction guys that hire an architect. The idea does not necessarily have to be tightly coupled with the execution. It can certainly make things easier and the road to startup hell is paved with people who had an idea without any concept of how it can/should be implemented - but they can still be successful under the right conditions.
- blueatlas 12y agoAlways remember - outsource developers have "no skin in the game" and thus will likely not make that little bit of extra effort that pays off long term. This can be horribly frustrating when you care about such things as efficient communications, consistent code style, or code that has even a remote chance at long term maintenance. Naming (classes, variables, functions) is everything, and don't expect much here. Having even in-house contractors gives you a chance directing them toward better quality software. Expect to refactor everything before it makes it to your baseline. Use what they produce as a starting point, not the end product.
- zaqokm 12y agoThe majority of these points relate to all outsourcing development whether if it's onshore or offshore. In fact it applies for in house development. Cheaper does not mean bad code and bad practices, and more expensive does not mean better code and better practices. The simple fact is that someone has to take responsibility and implement stuff right. > 1. It’s extremely difficult to judge the quality of outsourced work without your own local engineer It can be difficult measure any quality if you do not have the knowledge to do it. As this article is aimed at the "non-tech" founder, I have to question how that person would know good quality code or bad quality code without a technical advisor. > 2. Prepare to work some odd hours and deal with communication issues Some outsourcing companies work the hours of the client. If not then planning just needs to be done to organise communication. Even in the US (I am not in the US), there are different time zones which need to be compensated for. However I do realise a 12 hour difference can be difficult. > 3. Things will get lost when you transition to a permanent local team Bring on any new developer to an established codebase and they are going to need time to catch up. > 4. Each feature can become a line item in your technical debt This point does not even make sense. Technical debt is not related to offshoring it is related to poor design and implementation. > 5. Hiring and retaining local engineers could be more difficult Well this might be true, but then again it would probably be true of any bad codebase whether developed in house or outsourced. I am sure there are in-house projects with massive God Objects also.
- kcmarshall 12y agoI don't think you can over-emphasize the challenges in communication with off-shore teams. I have worked with several in corporate IT and just reaching a minimal baseline of understanding has proven difficult. Some of this is basic talking and listening; phone conferences will suck! Think about your typical (dysfunctional) phone conf and then slash the quality of the phone line/Skype connection. Add in the variable accents of the offshore team. Their English is 1000% better than my command of their language: if I can't understand what they say and everything has to be repeated or translated by a co-worker, meetings slow to a crawl. You will run into cultural differences in communication as well. The off shore folks want to do your work and they have the can-do attitude of most IT workers. They may indicate understanding when that isn't really the case. They aren't going to be able to casually wander by your desk and raise questions later so you are more likely to get stuck with their assumptions. This has happened even when we have brought off-shore developers to our offices for face to face meetings. Finally, I have found that we are often unprepared to send work to a developer in a coherent manner. That will lead to rework, increased cost and even more communication overhead as you painfully hammer out your actual requirements.
- Pxtl 12y agoI'm always confused why companies don't invest more in better teleconferencing tech. I mean, for a small fraction of the money being saved with offshore work you could have a meeting room full of screens and networked whiteboards and wearable high-quality mics and wall-mounted cameras and crystal-clear VOIP and whatnot, to put you "in the room" with your counterparts. None of this technology is science fiction. But yeah, the inability to extract the words "I don't understand" or "I don't know" from foreign workers drives me utterly batty.
- jacquesm 12y ago> But yeah, the inability to extract the words "I don't understand" or "I don't know" from foreign workers drives me utterly batty. That's a cultural thing, and you're doing it wrong if you are trying to extract admissions out of people. That's the totally counter-productive approach. I understand that from a 'western' background admitting to failure, a lack of knowledge or even downright incompetence does not have to be a problem but in other cultures this can be a near impossibility. I would like to suggest a different approach. Assume the "I don't know" or "I don't understand". Simply go over the thing for your understanding. This will take care of the problem in an elegant and face-saving way without having to torture co-workers.
- ivanhoe 12y agoMain problem is that someone in US just can't get the relevant info on 99% of the overseas teams out there. The ones that you first google out are usually the ones who advertise the most and who generally always oversell their resources, and thus produce really bad results. Experienced small teams usually already have a number of clients, work hard and are not that visible or fast growing. So try playing smarter and avoid corporate outsourcing channels, and instead reach out to overseas developers' communities on twitter and conferences and contact developers and teams directly. You'll get much better results.
- pm90 12y agoCompletely agree! Please watch out for some of these companies that will email/call you repeatedly and say "we can do Java, Python, C, COBOL anything ANYTHING!" usually they can't. With the prices they offer, it's often pretty tempting but don't be fooled that easily. Do some research into finding good shops.
- yoran 12y agoReminds of this email I got a couple of months ago from this offshoring company in India. They were claiming they could develop an Android app, no matter how big, for a flat fee of $1000. Sure.
- syntern 12y agoHaving worked with offshore teams and being in the role of an offshore team, I completely agree. If someone is looking for an offshore team, follow this approach: look for a outstanding, talented person. A single person, who you can develop trust with, and ask him about his core team and colleagues. If they are for your liking, go with them as the offshore team: they may not have all the people at the time of the discussions, but usually they are able to build a team in a short time. That way, they are really committed to your project, and you won't be just another client that has some meetings with them.
- dharma1 12y agoBenefits to physical co-location at a startup stage (where you want to be moving very fast) are not to be overlooked. There's a reason people go to the lengths of living in the same house when working on a startup. If you really have to outsource then try to find the best engineers and hey, why not offer them equity if they are really good? Nothing like long term incentives to motivate people think long term. Avoid outsourcing houses where you never get to speak to the guy who is actually doing the work, just find talented individuals. Appreciate this might be tricky for startups who don't have a clue about code reviewing but generally HN freelancing threads would be a good start.
- joe_momma 12y agoif u have to send your startup offshore should you really be founding a tech company?