The number one objection we get at Bit-Wizards for our software development services is price. There is no doubt that software development is expensive. Highly trained engineers demand good salaries for their education and experience deservedly so.
Furthermore, the licenses for tools such as Visual Studio, Infragistics, Telerik, Component One, Visio, and many others are a significant yearly investment, not to mention the hardware, information technology (IT) infrastructure, office space, benefits, and other expenses. So what options does a company have? With rates often a third of normal U.S. rates, offshoring is an attractive option. But, if you look behind the curtain you will find the truth behind the attractive numbers.
The offshore model has become an accepted part of the IT industry, but you don’t have to search hard to see the project failures using this model. The most common problems are:
- Time Difference
- Cultural Differences
- Communication Issues
Having to deal with time differences, cultural differences, and most importantly communication issues can quickly skyrocket the cost of the project or kill it all together. If it takes two people twice as long to do half the work, suddenly that $40 an hour rate has turned into $320 an hour.
The time difference is rarely considered because often people think they will simply ask for software and poof! some time later it will magically appear. This just isn’t how it’s done. If you spent a bit of time explaining what you wanted to a software engineer and then he disappears, I guarantee what you get back will not be what you envisioned. Developing software is a collaborative effort.
It requires collaboration up front to discuss requirements, collaboration during design for refinement, collaboration after development for adequate testing, and then collaboration for deployment. Tiffany Mura, President of bizprox, LLC, said of her experience with offshoring, "Our team did not care for the extended work day, because it was something that they believed was forced upon them. Additionally, they didn't like the pressure of having to get our state-side work completed before the end of the day. This was because if we didn't provide our offshore team with what they needed before we went to sleep, then we could lose an entire day of work on their end." Mura says the worst part was during crunch time, when key state-side resources had to be on call throughout the night to answer critical, time-sensitive questions.
Cultural differences add another layer of complexity that can significantly impact your project. A CIO Magazine survey found 51% of CIOs felt that cultural differences were the greatest challenge they faced in offshoring.
As a consultant, I was once in charge of monitoring an offshore firm during a development project. One of the project managers had requested a service that would run a function at 4:00pm each day. The returned project was exactly that, a hard coded service that ran at 4:00pm. There was no user interface to provide feedback, no configuration area to modify the time and frequency of the function call. The commoditization of software development has led to brainless implementation of exactly what is said. Deference to those placed above you, especially in a culture that still has a strong cast system, means you will not be challenged or given ideas by those who likely have a good amount of experience in areas where you want that kind of feedback. Eric Spiegel, in an article about offshoring said, "One cultural issue I encountered was a tendency for the project manager in India to agree with a statement made, but upon delivery you find out that he misunderstood your meaning, yet hesitated to ask because of -- for lack of a better term -- politeness."
There are many factors that can contribute to the success or failure of a project, but it is my opinion that communication is the most crucial factor to a successful project.
.The most gifted house builder in the world cannot build the home of your dreams if he cannot understand your dream. Trying to communicate your dream or your requirements for a software project over a long distance connection, in the middle of the night, to a heavily accented English as a second language speaker, who may or may not ask you to repeat yourself if he does not understand is no way to get off to a good start. Add to that, the person to whom you spoke isn’t likely to be the one doing the work; he will have to communicate your requirements to someone else. This is a problem with any software development firm. Constant collaboration is needed with good communication and defense in depth for the miscommunication that will occur. Most people have difficulty communicating thoughts and ideas with people who know them well like spouses or good friends. To believe that something as complicated as a software project can be accurately communicated with no further collaboration is not realistic. And when you add the other issues of offshoring to the mix, it is a recipe for failure.
At the Agile 2009 Conference, Beth Cohen had a seminar called "The Failure of the Offshore Experiment" where she shared her results from directly comparing the productivity metrics of offshore distributed Agile teams with collocated Agile Teams. Her results showed, "Collocated teams are far more productive and cost effective, even accounting for the relative lower resource cost. Companies should be rediscovering collocated project teams as the paradigm for delivering real value for their IT projects."
It turns out that there is no magic in Oz and what we need for a successful project was here all along. Homegrown American software engineering firms are more cost effective in terms of total cost and increase the likelihood of the successful project you required.