Outsourcing sounds great on paper. You get talented individuals who are able to get work done at a fraction of the cost of what it would cost to do in house. In terms of software development outsourcing you are looking, typically, to outsource to the other side of the world, if you are from the United States. However this seems okay you give a project and it should be done for a price right? I would say that is not usually what happens. It can happen and you are either lucky, you went through a lot of trial and error or you were able to put your feet on the ground to get it going.
I can admit I made the mistake of outsourcing and promised myself I wouldn’t ever do it again. But then budgets came in and the only thing I could do was outsource. This time I was going to do it better. I was going to interview, I was going to have them show me samples of their work, I was going to communicate constantly and I was going to track progress. It still didn’t work. Deadlines got pushed back and things happened. This was another example of how I failed when it came to outsourcing.
Not until I had a full time staff, I saw them in person, I instilled in them a company culture that fit the culture we had in the states, and I was able to match the right people to the right projects. This cost me not just a lot of money but a lot of time too. I would say as you are building a project the only thing more valuable than money is time. When time is lost you lose hype, energy and faith in the product. This is what was disheartening so many times with the failed outsourcing attempts. Rather than choosing to outsource creating a partnership or a distributed team is where success usually lies.
Success in outsourcing really comes down to a partnership and really changing the though of what outsourcing is to you. Don’t look at just outsourcing labor and work but look at distributing your team to another location. You can’t just hire someone based on a skillset and hope for the best. It is valuable to have the relationship between the developer and/or outsourced employee where it is purely transactional. A transactional relationship often leads to failure. Rather what you want to do is to build a relational partnership with the person.
Understanding a person’s personality, communicating expectations from both yourself and figuring out what his or her expectations are, and developing a culture that fits both you and the employees that are outsourced leads to a more successful endeavor. Let’s face it we aren’t always going to have the capital to build/hire everything you need done. But how you go about the process to develop will have effects on your company down the road.