Businessmen: don't outsource your code.
techwildcatters.com
techwildcatters.com
But they don't come cheap.
Programmers are no different.
1) The big one is that you get a ready-made team of project managers, UX designers, QA, developers that have either worked together before or at least share methodology and culture, and so have already gelled somewhat.
2) People in these various roles come in when you need them, and leave when you don't. You might not be able to afford to hire an experienced designer or QA full-time, but you could afford a couple weeks of their time, or two days a week, or whatever. This flexibility can make the end result higher quality and less expensive, even with a higher per-day rate.
3) It's hard (some say impossible, but I wouldn't go that far) for non-technical people to hire technical folk, because it's hard to know what to look for. A consulting firm has already done this for you, has a track record with these people, and is staking their reputation (and hopes of future business with you and your contacts) on them.
Most outsourcing is not about hiring cheap, low quality foreign talent. It's about hiring highly skilled teams to fill specific functions for specific projects, which can be much more reasonable than employing all the necessary talent.
If you are renting talent and it is cheaper per hour than what it would cost to hire qualified talent as an FTE, and the product that they are making is a core competency for your company, you may be treading on thin ice. If you don't have the technical skills to judge the work produced (for example, I don't), you may be in the process of falling through the ice.
For example one of my firms big specialties is persons with disabilities development and consultancy for web applications. Put simply, we make JavaScript web apps work for the disabled. So along with our general UX/HCI development services, we have people that specialize in PWD/UX.
To hire one of them would be ridiculously expensive, there are maybe 50-100 people in the world with a formal HCI/PWD education, and you would only need them on a project for 1 or 2 months max, usually less than that.
So unless you are doing a lot of different projects it makes no sense to hire that role. Security is another that you generally don't need a full time loaded person for.
And that is he crux of the issue, most non-developers don't know what is involved in developing a software product. They get sticker shock and start nickle and dime'ing the developer. Once this happens, if the developer does not walk or assert there position, it instantly sets the project at risk. Because the developer leaves the mentality of quality and starts down the mindset of good enough. Developers have a dollar per hour target, if there bottom threshold is broken they are going to comprise quality to keep their numbers where they want them to be. The sign of a good developer is seeing this and being willing to walk away from the situation. The old saying holds true, you get what you pay for.
Software is hard, and often goes horribly wrong. Generalizing that fact into simple dos and don'ts is as ridiculous as blaming it's the color of the ball for not dribbling like Michael Jordan.
Once you've decided to go ahead and do it anyway, you've a number of options, and you're not doing yourself any favors by ruling out options the way this article advocates.
Source of this statistics please? it was not my experience that outsourcing isn't working. I can name a lot of successes from small startups to huge telecom giants. One of my companies is another prove that outsourcing works pretty well if done right.
I can also name(but will not) bunch of people with zero experience in sw who hired "professionalz with 10+yrs exp" script-kids for $1/h who promised to deliver ething in 1 week and than blame everyone except themself for failure
In my experience odds are against one one who wants to radically cut costs of sw dev. I you hire experienced good people (in your country or abroad) this is not gonna be that cheaper, but it will work for you if you pick the right partners.
I have put together a plan for a start-up. The key to success will be sales (and, to a lesser extent, marketing), but it needs a technical,web-based back end. Nothing that hasn't been done before; indeed, I imagine an experienced hacker could probably create the back end from various open source elements that are around. So there's little technical challenge, in a not-too-sexy B2B space.
Am I better off sitting on this idea, stagnating it, while I try to find the right technical co-founder? Or pay the ~$10,000 I've been quoted to build the first iteration, knowing that if it's successful I could employ (or otherwise structure and energise) that technical person to re-create (or revise, but I imagine they'd rather start again) the base code in an improved way, at some future point, possibly to time with a product or market expansion?
Edit: I appreciate me 'imagining' what an experienced hacker can or can't do may be akin to a blind man imagining colour; but that's also been the feedback from outsourcing companies I've met with.
If what you're building will depend less on technology and it's not a complicated idea it seems reasonable to outsource it.
It can be done, but it is risky.
Just pay to build a POC, it doesn't have to be architecture well, scale etc, it just needs to show off your idea.
Two major factors will affect how well outsourcing works for most people:
1) The quality of your programmer. It's an old cliché that the productivity of programmers varies by a factor of 10. You also need to take into account how good their code is, whether they write unit tests, what languages and platforms they use, and whether they're reliable business partners. If you're using open source tools, there's a shortcut to finding somebody good: Track down the project maintainers, and see if any of them run consulting businesses.
2) How well you understand your business. Some business people have a good grasp of what they need, and it's very easy for a good programmer to help them succeed. But my least favorite clients were always the ones who didn't understand their markets, who had dysfunctional committees, or who otherwise made it impossible for a programmer to earn them money.
If you have $10K to spend and a good grasp of what you need, you absolutely can succeed by hiring a good hacker. (Assuming, of course, what you need is genuinely in the $10K range.) On the other hand, I've seen small businesses spend the better part of $1 million on a simple database application and still crash and burn.
And finally, ask yourself what happens if don't quite achieve product / market fit, and you end up needing to pivot twice before you get traction. Nobody's going to lose too much sleep over a lousy code base if your business is successful. But can you afford two more iterations at $10K a pop?
"Nothing that hasn't been done before..."
"I imagine an experienced hacker..."
"So there's little technical challenge..."
FWIW, these are exactly the kind of statements that would raise red flags for me as a developer. They practically scream, "I will undervalue your work." If these statements are true, you don't need a technical cofounder, you just need to do some homework to see how many of the pieces you can put in place yourself. If that's too hard, be prepared to admit that the task will be a technical challenge.
FWIW I am open to being proved wrong, and I think you've nailed the main issue that arises between 'businessmen' and 'technical' founders ... lack of awareness of the other side. It's clear which camp I'm in!
No disrespect intended to you, but the onus is on you to understand why developers are so important (if you start thinking of them as your product, the picture becomes clearer) because the good developers don't have the time or the need to help you see the fallacy in your perception of roles.
As for your question, I would have it developed if you don't have a good lead on a tech co-founder. technical personnel get approached with "build my idea" all the time. When they do, they hear "hey do all the work and I'll take half". Which while not entirely a correct position to hold, one has to understand that a good deal of developers have their own ideas, if they are going to work for free they are going to do it on their interest and without cutting someone else in on the deal.
Having invested in a product, no matter the quality of the code, and getting the business off the ground will "put your money where your mouth is" with a technical partner. They will see that you are serious about your idea and that you are willing to put in what is needed to succeed.
If the code is sub par they will still see that you have a very good working prototype that has a lot of learning's rolled up into it. It gives them a head start on writing the next version that incorporated the learning of the "prototype".
Once you iterate a few times, pivot and do marketing you could easily spend another $50k to try recoup your sunk costs and even then the chances are high that you will still fail.
The reason you do not want to outsource is not because the other does not care. DocStoc had its first version offshore outsourced and they quickly rebuilt it once they got traction.
The reason why outsourcing your startup product usually fails is Cost. You have to go through several versions of your application to reach product-market-fit. I think the Advaark team went through 9 months of iteration before launching. Kissmetrics went through a similar process. Startups continuously pivot, and most people do not have the money to fund this discovery process.
It's unlikely that anyone would use a developer that they didn't know personally, without a formal contract, for this type of work though.
On the other hand, if you're asking for a vanilla e-commerce site then it's less relevant, the code the developer uses may come from open source libraries, or it may be his that he his re-using, but it probably matters little to you as it's the content on the site not the code behind it that you really care about.
You will always own the copyright on the website, including the design artefacts, unless you are explicitly licensing them.
Ideally you would also somehow get the developer to verify that all the code they are using has a valid licence, as ultimately you're probably liable for infringement. Again, I guess this is trickier to do in a web based developer market, but probably not going to be an issue for a vanilla job like an e-commerce site or marketplace.
- never say never
> he is doing exactly what you are doing by hiring him (being lazy).
Or maybe you are not a programmer or can't afford to set up an office etc.
> The people writing your code don’t care about you
And how is this specific to outsourcing? if you set up an office, hire a group of programmers, it doesn't guaranty that those programmers will care about you.
> this will ultimately lead to sloppy, prefabricated, and overall apathetic development
Not if you hire the right people.
> Most outsourced coders are used to standard applications
Correction: "Most coders are used to standard applications"
> 4. Opportunity costs – If you are asking for specific and complex modules then the programmer will most likely bail on your project because he/she is looking to turn some quick money; not make you rich.
This is downright ridiculous freelancers love long projects, it gives economic stability.
> You have forever tainted your startup
This paragraph again is not specific to outsourcing.
Basically this article would be fine if it would say "don't hire idiots to do your code", the points mentioned have nothing to do with outsourcing.
Exactly! However there are idots everywhere, and having relatively little connection with the developer breeds more "idiot" behavior than does having a in-house dev.
One that is common for generalizations about outsourcing code is comparing apples to orange marmalade. Outsourcing to someone on elance for $3k vs having 2-3 higher value per hour programmers work on it full time for six months.
This is about as sensible as comparing an off-the-plan house to a plastic shed.
Outsourcing can work.
Insourcing can work.
Both approaches can and have gone down in flames, too.
Screwing up the responsibilities for the oversight of code development or failing to account for maintenance, well, that's a problem; outsourced or in-house.
You must get the motivations and the goals aligned.
The problems here can parallel those of paving roads, building bridges or other chunks of civil engineering. If you cheap out on the specs or on the construction (eg: low bid; too good to be true) or if you entirely separate the construction from the requisite and ongoing maintenance (in software: what, no code reviews before acceptance?), you can receive different results and differing construction materials and techniques.
If your innovation is only in your business model or marketing then it may be better to use a mature, proven partner for development because building a great development team carries its own risks and can add to the schedule.
Getting it done cheap is rarely a good idea in either case because either way you will have to satisfy customers and do maintenance.
Outsourcing is a great way to build a MVP and prove an idea in my opinion, but to each his own I guess.
I went through 3 companies(2 companies, 1 freelancer), each promising to be done in 30 days, and each only getting about 10-20% finished after 6 months.
And this was for a project, where they weren't getting paid until they finished(well, one weaseled out a small deposit out of me), so they had every incentive to work quickly.
Better to pick up the stuff yourself. It's really not that hard...and when you learn the stuff, you'll be done much quicker, since you'll be able to work 100% on your project.
There's often a direct correlation between getting paid and someone doing the work.
In my experience, someone who wants work to be done on speculation is not a client.