Lessons Learned from Outsourcing

Our game development team in Pakistan was the first experience I have had with hiring people to do software development. With money and time spent perhaps the most valuable thing we will get from the project will be lessons learned.

Despite removing several things from the scope of the project we are now 1 week overdue from a final product being delivered.

There are several key things I’ve learned that will make the next time we outsource a project go a lot smoother.

  1. Maintain the code repository yourself – make sure you have an upfront agreement that all progress will be pushed daily to a git repository in your control.  It makes me very uneasy that a team across the planet has your money and is holding all the code. The ability for us to do code reviews and continue our side of development would have helped a lot.
  2. Stay in control – these outsourcing firms are make or break based on their reputation. A bad review can destroy their ability to get work in the future.  Given their resources they will assign junior developers until it appears their reputation is at risk and then they’ll pile on more senior people. Be honest, do not sugar coat low quality work. Call them out on BS quickly.
  3. Communicate every day – push for progress reports, prompt for questions.  Give the developers a chance to get clarifications quickly from you.
  4. Work towards optimizing your job posting process – There were several things that we should have thought though more and included in the original project description.  We made a note for next time to add details about things such as specifically which events need to be tracked in Localytics and what game center achievements need to be created. Build a template for a job posting and ensure it helps you remember to think about the specifics.

Lessons learned and from that perspective the project has already been a success.