Many of you are probably wondering specifically about “offshoring.” The previous hiring tutorials specifically didn’t differentiate between “outsourcing” and the flavor of outsourcing known as “offshoring.” Now we’ll cover offshoring.
Let me say this: offshoring is absolutely perfect for coders that need small bits of help. Assign the offshore developer you’ve hired to a small task, and see if he executes to your liking, and gradually increase the size of the tasks you give him. You’re a coder, so you can monitor and understand every line of code he/she writes. Given the cost benefits and the sheer number of developers you have access to when you open yourself up to the world hiring market, it’s a no-brainer. You’ll find someone that suits your needs. In all honesty, there are tons of fantastic developers outside of the United States. And the economics do work. They can work very very well.
However, it’s no secret that developers not smack-dab in the middle of Silicon Valley don’t have the product common sense--if you will--that ones from the US are more likely to have. It’s very common for coders to not have the product common sense you do in general, especially when you’re product takes the insider knowledge that you have from doing business in your niche. That’s always going to be given. So couple that with the fact that a lot of these great developers come from countries where only a handful of their friends have iPhones, etc. In short, you’re going to be in for a painful awakening when you hand a team of these developers your spec, agree to a large fixed price for your project to be executed over several months, and they end up misunderstanding many things along the way. This is a story that’s been told too many times.
So we’ve already covered how important it is to spec deeply, how to find a great team, and generally how to manage them after you hire them. Let’s now discuss some techniques specific to managing offshore teams if you’re not a coder yourself.
The best way to do it is to make software development your business. I.e. you can be a product guy that project manages, and hires offshore teams. So if you can make software development your business and you have clients you do websites for, what you’re looking to do is basically lock down your own exclusive team and evolve a way to work with them over time. Of course start with small projects--may do a company site for the store down the street.
The benefit of having your own exclusive team is that they cannot give up on your project in the middle. They are depending on you for the next project. So you basically eliminate the fear of having them leave you. You’ll inevitably have to overlap projects when one project takes too long and ends up being worth less more money per all the time it’s taking than originally planned. You can essentially pull somewhat of a Bernie Madoff style ponzi scheme. You’re going to have to fix it at some point. I’m not saying to doing anything imorral at all. I’m simply dealing with reality here. You may have times where you have to feed your offshore team a different project while still working on a current project to help them make sure their financial needs are met while they go the mile on the current project. If you’re smart, the additional project will be priced better. If you’re new to this business, you may use the currently half-built project to demonstrate to prospective clients what you’re capable of. I always use my newest projects to showcase my work anyway, as my newer work is always better than my last.
That said, even if software development can’t be your business, you should find other projects to give to them. You should start them on a small non-crucial project first. You should do whatever you can to show them that you’re a repeat customer. Period. Build a serious rapport with them that they know will last a long time if they do a good job. This is the technique.
If you actually do have a full time web development business or actually see yourself doing this, here’s how you lock down a team permanently:
1) find a budding camp of 2-3 developers (i.e. off odesk, or elance)
2) make sure this camp isn’t far enough long in their careers that they have their own company site.
3) be the one that helps take them over the edge to being a professional development firm, or at least be one of their first clients, or at the very least their most serious client ever.
4) don’t cramp their style--so let them have their own company they can call their own offshore
5) then make an agreement that you’ll be their exclusive client and you’ll provide all the jobs. All the problems will occur when they start working on other projects in place of yours.
6) You will need to take responsibility for their minimum financial monthly goals. Figure out what those are. And be prepared to have their back in times when your main projects are taking more time than they should (and therefore costing them more money).
7) Make sure to price everything out at a fixed price. They are offshore, not in your office. This is the only way they can will feel they have to take full responsibility for the work your sending them. You’re not Microsoft building whole offshore companies in Romania or Google doing the same in India, etc. Those companies can pay developers consistent salaries rather than do fixed price because they’re not really offshoring--Microsoft and Google are just expanding their companies to those countries and some may call that “offshoring.”
8) Have their back when things get messed up (i.e. in terms of money). Show them that you can be flexible too and you’re not out to screw them. This is a must when they hit hard times on your all-important main project and it’s harder than they expected. It’s what will make them go the mile to complete it.
9) Find one main guy offshore that leads the team, takes on all the responsibility, etc.
So that’s basically it. Let me describe building that main relationship with your offshore team lead more. You need to build an organic and tight relationship with that one lead offshore guy. One guy over there must have his ass on the line. By helping him build a company, and do things like get office space (which should be cheap where you’re offshoring too), and have status by being the boss of several guys over there, you’re already making his dream come true. Usually in these countries, their dream is to be the owner of a contracting company, not to take all the risk in building a startup like your dream is. It’s very true that people in the US are a lot more risk-averse while people in 3rd world countries have lots of doubts of what’s possible. I’ve had these discussions point blank with many offshore developers I’ve worked with, and it’s not just a myth. It’s completely the truth and they know it and admire the US for this. You need to own this fact and use the economics it produces to your advantage.
There is very few examples in their homeland of successes like Facebook, Twitter, etc. They just can’t afford to dream that high, and don’t. Therefore, the bar for the dreams they must accomplish is a lot lower, and you can basically be the one to make it happen by helping them build their little software contracting company. And again, it’s all about pinpointing one main guy that will hold down the fort. You won’t be able to have that relationship with all the developers he finds because everyone doesn’t have a business owner mentality. So that’s the point I’m trying to make--make sure the guy you find has a business owner mentality, will work weekends and do whatever it takes. You’re going to need it. In short, you need someone else to share the burden of the responsibility for completing your project with.