With all relationships – be they personal or professional – communication is the thing that makes, breaks, maintains, harms, or supports the outcome.
A common mistake hiring companies make when outsourcing software development projects is assuming that certain things “go without saying.”
When outsourcing, NOTHING goes without saying.
When you can’t walk down the hall and stick your head into someone’s office and give a course correction before they’re 40 hours into heading down the wrong path, it’s vitally important to communicate early and often.
While your idea may be somewhat in flux, you can’t expect a contractor who is either across town or across the planet to intuit exactly what you need. If you know you need a certain type of engine but aren’t quite sure what the GUI will look like, then document the engine to the nth degree and do not let the team move forward until you get clear on the user interface – and provide documentation for that.
When you provide clear and detailed documentation for review, you will find that your outsourcing team asks questions that further clarify and point out holes in the spec that you may not have thought of. Forcing the contractor to make assumptions can prove very costly.
Watch out for the language/culture barrier.
While it’s best to hire an outsourcing contractor with a U.S.-based project manager to manage offshore resources, this doesn’t always happen.
Realize that just because someone “speaks English” doesn’t mean that they understand idiom like “waiting for the other shoe to drop” or Western cultural references.
It’s amazing how often we use both when trying to describe a look or feel for a product once we become aware of NOT being able to do it. Just try to go a week without making a reference to The Big Lebowski for example…
Work with a single point of contact.
While communication is vital, you don’t want to be peppering individual team members with emails and requests. A quality outsourcing team should provide a Team Lead or Project Manager as your single point of contact for managing the project.
Confine your communication to that person to avoid cost overruns and a case of “who’s on first.”
Schedule conversations rather than “as needed.”
If you have a weekly or daily schedule for communicating with your outsourcing team liaison, it’s a lot easier to make sure the project is staying on course and all requests, bug fixes, etc. get added to a master list each time.
Get real about the time involved.
It’s easy to get busy focusing on your regular duties if managing the project isn’t your only responsibility, and then let communication sort of slide until you’re up against a delivery deadline or a crisis situation.
When building your schedule for managing an outsourced software development project, be realistic about the fact that a couple hours a day will likely be necessary to stay on top of communication and review.
A high-quality outsourcing company will already have processes for communication built in – you’ll want to ask about those during the hiring process.