Developing offshore without getting lost at sea.
Over the holidays, I was listening to a podcast called AppStories by a well-known guy in the industry named Federico Viticci. Viticci was talking to an iOS developer, Christian Selig, who had developed a beautiful app called Apollo, a Reddit client. Selig was talking about his days at Apple and about how the inspiration for the app had come from his time there. It was a sweet interview about someone who'd followed his instincts and stuck close to their principles about how to design and build technology.
Christian Selig was my intern at Apple and it turns out, in some small way, being part of our team helped turn him into the kickass developer he is today. His app looks great, but isn't all blinged out with custom UI. It's just clean and elegant--the exact principles we tried to drill into him at Cupertino.
Listening to Selig talk, I couldn't help but kick myself a little because I know better. Our company, Scrollmotion, makes an app that is the opposite of standard. It is, in my opinion, an utterly custom, utterly unique thing--beautiful, but not simple. Selig built something he alone could control, allowing him to operate within the guidelines he'd learned at Apple. We are building something no one person can control. We need lots of engineers and designers. And we don't have unlimited cash. In the real world, that means one thing: offshore developers.
If there is one thing that can make or break a development project, it is how well, or not, you deploy offshore talent. To spare you the agony I have gone through in recent months, I am going to share some learnings I have gathered along the way.
1. They're motivated differently.
Offshore developers are affordable. That's why you hire them. But they have almost zero in common with you or your team. Your motivation is to build a company and a product; theirs is to get paid their hourly rate. They don't have options in your company, no investment. Never forget this point.
2. Offshore is an assembly line.
Your in-house dev team is where innovation happens; your offshore team is an assembly line. Keep everything in-house that's strategic and core to the company. Send things overseas that are repeatable and can be put through a rote process.
3. Don't pay them to think.
We naively assumed that our offshore crew would be able to make strategic decisions for us. They weren't, because they don't have all the context. Your remote team is to your company as Foxconn is to Apple: Foxconn is not innovating to build an iPhone; Foxconn is putting together the iPhone spec'd out by Apple. Which means...
4. Define everything.
Do the work to define your requirements to the nth degree: When our first builds got shipped back, there were UI questions and architecture problems because we hadn't spelled out the minutiae. To protect yourself, thin-slice your project: Get your delivery times measured down to hours and minutes, days at the most. If your offshore devs start saying something is going to take a week, it's a red flag that you haven't defined it well enough.
5. Make sure they fit your flow.
Don't change your process for the outsource team. Ask them how they work: Do they integrate into your environment? What tools do they use? Are they comfortable on Slack? Are they comfortable on Bitbucket? How well can they adapt to the language(s) you speak at work? Are they comfortable using your email system? Don't disrupt your internal workflow to accommodate your new friends from abroad; make them come to you.
6. Framers vs. finishers.
App developers, like homebuilders, naturally sort themselves into two categories, framers and finishers. Framers are the people that lay the foundation of the house, erect the walls, roof, etc. Finishers come in and install the moldings, paint the walls, add inspired decorative details. So what happens when you get a framer to do finish work? You get big framing nails in the moldings and dents in the woodwork. For iOS, framers are data, networking, syncing, standard controls experts; finishers are UIKit experts or UIKit core animation experts. If you're going to offshore part of your development, make sure it's the framing. Do the finish work in-house. But be prepared for a long search--that is the rarest, most in-demand skill set in the industry.