Here are a few things I have learned over the years , both from the outsourcer, but also from the outsourcee point of view:

1) Get to know the people you work with. Communication is essential, so when you outsource a software project, whether to an Indian, Romanian or Bulgarian company, make sure to budget at least one or two trips to their office, or get them to visit you. You might spend a bit more in the beginning, but trust me, in the long term in pays off. In a way it’s like building a house and not caring about the foundation. It might get shaky later on…

2) Think geographically and culturally. Don’t discriminate, but understand that some cultures have a completely different set of values, which might bog down your outsourcing and raise the final costs. After all, quality and less money are what you are after, right?. If your project is short enough, these hurdles might be overcome. But if you are talking about long term collaboration, then geography and culture play a big role.

3) Use a project management tool. The simplest will do, don’t complicate your life. I like Trello, which cannot get any easier, but feel free to pick any other tool you’re confortable with. Keep in mind to  have clear, precise milestones and exit points, in case of failure. Start with a specification document, and don’t tweak, unless it is absolutely necessary.

4) Always use an agile methodology. This means you should have the people from your software outsourcing company report to you as soon as possible and review their work periodically.

5) If you’re from the European Union, understand we’re talking about a completely free market. Last month we invoiced a company from the Netherlands and got invoiced by company from Bulgaria. No extra paper work, no hassle and less tax 🙂

Ionut Popescu holds the position of Business Developer Manager at MBM Software