Recently I wrote a blog post: 6 Reasons why outsourcing development sucks for startups and it’s only fair to swing right back there by playing devil’s advocate: so here’s 12 tips to make it cool to outsource your development (yep it can actually be cool!).
There are some fundamental requirements that need to be established before you jump right in there and outsource:
1. You’ve managed external resources before and know what to expect as well as how to manage them
2. WATER-TIGHT NDA’S and NON-COMPETES!!! Like tighter than a duck’s @rse.
3. NEVER work on a per/hr basis. Do your own functional spec and get them to quote on each module plus supply deadlines that have penalties for each day it’s not delivered bug free and live. Any errors or fixes are for their account.
4. Insist on pixel perfection – i’t not acceptable that an image or banner is a pixel “here or there”.
5. Be prepared to manage them – it’s a total myth that outsourcing requires no management. Management can frustrate you and drive you nuts.
6. Never pay upfront. You will feel like you’re over the barrel. Roger. PAY ON DELIVERY (see point no. 3)
Okay! That’s 6 – halfway there!
7. Remember –it’s a privilege for a contractor to work on your project – if they don’t feel that, they’re not the right fit.
8. YOU MUST KNOW THE FUNDAMENTALS OF DEVELOPMENT and, even better still, be an engineer yourself that can vet the code that get’s created.
9. Check their previous portfolio. Find a great fit. Find people who have coded in the language you’re working with. They need actual experience. eg: having worked in PHP does not mean they understand CakePHP. Don’t ever let them tell you: “We’re really competent and will figure it out / all the principles of coding are the same”
10. Interview their previous clients
11. Insist on itemised billing so that you know who is working on your project and how many hours they spend on each module. Especially with overseas outsourcing companies, they will allocate a 2 year xp engineer and tell you that the resource is being carefully managed by someone more senior or that 2-4 years is a senior coder for them. That’s just bullshit. They will pay that resource some chump change and pocket the substantial difference as the bozo bumbles his way to workable code that can never be scaled easily.
12. This leads me to the next point: Vet the entire team working on your project.
The last thing you want, is to outsource the development to a firm that doesn’t produce to specification or standard. Remember that you’re in control here. They work for you.
The best scenario is when you’re a technical co-founder and are able to vet the code the outsourced team generates. Being a techstar means you know which areas of code are precious and which are churn – you outsource the churn. You’re also in a position to know when people are telling you rubbish or just crap at delivery and incompetent.
So those are my 12 tips to make it cool to outsource your development – do you have some of your own? Share them – I would love to learn and hear more.