Subscribe

Archive | Outsourcing

When To Outsource

In 2013, I had an app that became popular enough where an Android version was needed and in late 2013, I finally committed to shipping one. As a programmer, I didn’t think it would be that difficult to put something together for Android. It’s a relatively simple app and it was easy to find a few project templates that I could adapt. I wasn’t looking to become an Android developer, just competent enough to get out this app. At the time, Eclipse was the IDE of choice, so I downloaded and installed. I tried playing around with it, figuring out how it all works, trying the simulator, and going through a few tutorials. The more I worked with it, the more I disliked it. It just didn’t fit me at all. I just couldn’t find a way to like anything about developing for Android.

What I Realized

After banging my head against Android off and on for a few weeks, I came to a realization. Why should I keep fighting this when there are other alternatives. I had enough on my plate with other iOS projects. Android was sucking all my energy and stressing me out. The only way to avoid certain misery was if someone else built the app.

Managing Expectations & Budget

I decided to outsource the project. I ended up on freelancer.com. It still amazes me how many developers outside of the US are bidding on every project, no matter the budget. Many are bidding ridiculously low prices just to get the experience or because a dollar goes much further in other parts of the world. I was comfortable losing $500 on the project. Worst case scenario for me was spending $500 and not having an app to show for it. I could live with that.

What I Learned

The first beta version the developer I hired sent me was terrible. It was completely unusable. I thought I was in trouble. But after a few iterations, I ended up with a nice functional app that was very similar to my iOS version.
What I learned…

  • Make sure it is understood that you will own all the source code. Make this clear from the original job post and when working with the developer.

  • One way to check the source code is to have them set up a repository on Github.

  • Have multiple milestones and release funds as they are met. If you release funds before you have the completed code, you are taking a big risk, regardless of your previous relationship with the developer.

  • Many times there will be a language barrier. When deciding on which bid to accept, make sure that you can communicate with the bidder, they understand what you want, and are prompt in their responses. It’s ok if the English isn’t perfect, but it should be understandable. If they don’t get back to you for a couple days in the bid process, drop them from consideration.

  • Expect delays. Things will not go as planned. You may even have to cut your losses and re-list the project.

  • If your project involves a database, only give the developer as much of the database as they would need to test. It wouldn’t be any fun to see your exact app competing with you on the Android store.

  • Pay attention to the frameworks used by the developer. Look them up and see if there are any privacy issues, etc.

  • Describe what will be required of the project in as much detail as you can when you post the job. If you forget to say you want a tablet version, do you think the developer is just going to make the tablet version for free?

  • It’s important to continue to say what needs to be said with every iteration. If a table view scrolls a little jerky, demand that it is smooth. If an image resizes incorrectly on rotation, point it out as a problem. You literally will get as good of an app as you demand. Remember, the developer is just trying to get it done and move to the next job. They aren’t invested in the project like you.

  • Never accept substandard work and just think you will fix it yourself. You will just be creating a pile of work that you will regret every minute of.

  • You will have to know your way around an Android IDE a little. You’ll have some labels you want to change, etc.

The Results

In the end I was happy with my outsourcing experience and would do it again. I came in about $45 under budget and learned quite a bit. I would have no qualms outsourcing a portion of an iOS app. I found freelancer.com to be easy to work with and didn’t have any problems of note with payment or communication. The developer I selected was based in India and I would recommend them if you are in a similar situation.