|
|
|
There is pretty common misconception that technologically advanced start-ups have to be developed in-house. Proponents of this theory refer to IP breach riscs, poor quality of code and need to keep core competence in house. While the problems mentioned may have place, it is more problem of wrong approach to offshore outsourcing.
Recently I’ve read a great discussion about this topic at Silicon Beach group, I will quote Phil Morle, a guy from Pollenizer (start-up accelerator from Sydney) who made a great contribution to this discussion:
I believe there are two important dimensions for a startup: speed of learning and cost.
Speed of learning. The faster an engineering team can iterate upon measured customer impact of their work on the product, the more likely the product will succeed. This means that the team needs to understand what they are building and there needs to be systems in place to take action as the work develops. If your choice of team (local or offshore) depends upon a big spec, you are less likely to succeed. We have needed to:
- Implement common tools for fast distributed communication. Our weapons of choice: Jira, Confluence, Yammer and Skype.
- Implement processes for rapid communication. We have daily text huddles in Skype, weekly detailed sprint planning calls, weekly
sprints, continuous integration to staging servers with every commit, unit testing, feature flipping (http://code.flickr.com/blog/2009/12/02/flipping-out/)
- Spend face time. We go every 2 months to India but you may only need to go once. It makes a HUGE difference to get to know the people. You can work faster and with more honesty.
- Start every projects with a big session to describe what we are trying to build – what the goal is as well as some of our initial
ideas for execution…
Cost. Developing with an offshore provides a required economy for a startup. You can put on bigger teams to get things done faster. You can flex the team up and down to be responsive to the inevitably volatile world of your business. There are some things to be careful of though. I’ll say this, if someone is half the price and the work takes twice as long, that person is not cheaper.
Hiring an offshore team to anything material is a big commitment.
The worst mistake I have seen people make is:
- Look on the web or oDesk or Freelancer for a team
- Hire them based on price
- Send them a spec
- Wait for the deliverable
- And wait
- And wait
I’ve seen it happen a lot.
You can outsource the engineering effort but you can’t outsource the accountability for getting it done. Spend time on it daily… hourly, like the team is in the same room as you. Treat them as mates because its easy to think someone remote is an idiot and its probably because you don’t understand each other’s context.
There is not much can be added, probably expect that opion about developers from Eastern Europe, whick is quite pleasant to read since I specialize in outsourcing to Ukraine and Russia:
I think the quality of coders in Eastern Europe far exceeds India or the Philippines
So if somebody tell you that offshore outsourcing doesn’t work, the answer is ‘You just can’t cook it right!’.
|
|