Outsourcing your IT project doesn't have to end in disaster. If all parties take some practical steps, looking abroad for your development needs can be a smashing success.
We’ve put together some principles that we use at eTeam to make sure each client we work with is satisfied with their experience.
The internet abounds with horror stories ranging from insurmountable language barriers, unmaintainable code, to projects running hopelessly over budget and eventually being scrapped. The risks in outsourcing a project are real, however managing the developer-client relationship is the key to mitigating those risks.
The success of a project depends on the relationship between the client and the product manager. This is equally true of a project based within a large enterprise or a company that has decided to use outside developers. At the heart of a good relationship is trust and communication.
Communication Hinges on the Project Manager
In agile-speak, the project manager is the key point of contact between the client and developers. Communication breaks down when there isn't a single point of contact, and a client has to try to contact individual developers. This always ends in chaos.
When searching for an outsourcing partner, look for a project manager you feel comfortable talking to. Impeccable English is a must as are availability, and professionalism. During the negotiation stages, does the project manager provide solid feedback, understand the pros and cons of different technologies for your project and seem open to two-way communication? These are all signs to look for.
Developers Shouldn't Be Invisible
Even though the project manager is responsible for managing the client-developer relationship, that doesn't mean that developers ought to be invisible. Even outsourcing projects need to inspire a sense of ownership and pride: Every developer wants to see their code work in production. That's why a balance needs to be struck between clients never seeing developers and communicating directly with them.
Our solution is to include developers in demos for clients. While the project manager is the main avenue for communication, every developer on a particular project is present for demos. This way developers can present their work directly and field questions themselves.
This approach builds trust: The development team isn't a black box, but communication doesn't devolve to chaos.
Team Size Matters
Team size isn't always scalable: 15 developers aren't necessarily going to be more productive than 5. The adage that nine women can't be pregnant for a month, applies to productivity. That's why we use small teams of 5–9 people that are dedicated to a single a project.
If a potential partner starts promising a dozen developers for a project, this should be a red flag. There are likely underlying management problems, reliability issues or developers are juggling multiple projects. Large teams are subject to groupthink and poor communication without any increase in productivity.
Work in Iterations to Foster Trust
Start projects in increments and make sure there are check-in points. Signing a contract and coming back a year later to see how the finished project came out is a disaster waiting to happen.
Our approach at eTeam is to set deadlines for smaller pieces of larger projects so that clients can see that we're meeting our commitments. This sets everyone at ease and prevents unpleasant surprises.
Everybody Wins When Outsourcing Works
Outsourcing is a boon to everyone involved. It allows bigger companies to expedite their software development process by turning to experts in a particular technology such as Ruby on Rails or Node.js. By expanding the talent pool to the entire world, it's possible to meet any development need.
As long as a client does due diligence in looking for an outsourcing partner, risks are minimized. Look for a well organized team that runs on agile principles, has a project manager that you can easily communicate with and has a proven track record working with international clients.