I get asked by a number of founders how I feel about outsourced or offshore software development. Years ago I would have never advocated for development that wasn’t done in house. Partly because I drank the kool-aid that said it set a bad precedence, especially for startups. I thought that you need to start building a team that is invested in your startup’s success, and the best way was to breed talent in house that gains the knowledge base and war scars from working with you closely everyday.
I was also against outsourcing for non-technical founders. It’s already hard for most technical founders to foresee and estimate how long it takes to build a product. So naturally I figured it would be even worse for those who are non-technical.
Moreover, I disliked it because it added logistical challenges in the early stages of product development. There are time zones, slow bandwidth and cultural nuances to contend with. These all make it hard to brainstorm and iterate on a daily and weekly basis. Posts like this one only bolstered my argument further.
Now having listed all of the reasons to now offshore software development, I took a risk and outsourced some of the development work for my startup. The reason I took a risk was that I wasn’t sure how much work I’d have for a full time developer. Instead of hiring one and paying market rate, I figured it would be better to try offshore software development for a limited time.
For starters I setup some key criteria to ensure a successful outcome.
I picked individuals so that myself and my team could directly communicate with those executing. The first person was through Upwork. My technical co-founder had cherry picked a developer from the Ukraine. The second person was a designer I had been chatting with on Twitter who was based in Sri Lanka.
I did not want them working on projects that were mission critical, this is really important. Not tying them to specific deadlines freed me from having to worry about shipping and I could still gauge the quality of their work. I still gave these individuals deadlines. And I kept my in house team charging ahead with the important product development deadlines. I also made them adhere to our best practices. The developer had to follow weekly sprints, follow TDD (test drive development), and only checkin code after a pull request (code review).
I know it seems silly to negotiate given that outsourcing is already less expensive than development at home. But I negotiated because I wanted these individuals to prove they could build under constraints. Why? Well if they did end up being fantastic I’d want to hire them full-time for my startup. Plus, I’d want them to get the full experience of what its like to be at a scrappy startup. Never deprive people of a true startup experience 🙂
Once again this isnt any different from what you would do with an in house full time employee. For the designer in Sri Lanka I gained a wealth if knowledge about his skills and abilities from 2 of his references who wrote me very long emails vouching for the quality of his work.
I know people worry about payments, foreign exchange rates, blah blah blah… I couldn’t be bothered so I made them manage their own invoices and paid them with a credit card.
Instead I had my in house team manage these individuals. Once again I couldn’t be bothered have additional reports and 1–1s with them… But really I had two reasons:
First if I was going to hire them fulltime eventually then they were going to be interacting with my in house team and I wanted them to be accepted early on.
Second the project would have been done by my in house team anyway so why not just have them communicate the project. This also enabled me to test the management skills of my in house team. A two-fer!
I’m happy to say that the developer after 6 months has become an amazing addition to our team, and the designer just successfully completed the redesign of our landing site!
I would not have done offshore software development prior to this year, and would have just continued to invest in building out an in-house team.
If you’re interested in offshoring or outsourcing software development put some thought into it. Yes it can save you a lot of money, but only if you’re smart about it. You have to think about how you are going to manage the outsourced team or individuals. Otherwise you’ll end up spending more time redoing things, and we all know that time is money!
Help others enjoy it too by hitting the ♡ below!