| Offshore development |
|
|
|
| Written by Eduardo García | |
| Sunday, 17 October 2010 13:58 | |
|
Believe it or not, offshore development is here to stay. If you know what it is, probably you'll find the reasons why this will last on these lines. If you don't know what it is...you should start reading right now!
What is Offshore develoment?Offshore development, also known as Offshore Software R&D, is the provision of software development services by an external supplier positioned in a country that is geographically remote from the client enterprise. In a world that was getting smaller and more open thanks to telecommunication advances and new market regulations, companies around the world realized that they could count on external suppliers to meet some of their development needs. After all, many big corporations were used to have some of their employees working remotely from their homes, so they considered offshoring the next step beyond telecommuting. Beside that, another important fact was that Software Engineering had got mature enough to make managers start thinking that industrialization of the process of building software could be finally achieved. That way, when it was clear that some parts of the software development process could be externalized, companies were ready for next step. First attemps to externalize those processes were taken under the form of "outsourced" services, that is, services provided by external, although still local, companies. All this prepared the companies to take the next step and give offshore development a chance.
How does it work?There are many approaches to offshore development, but in its simplest form it is just a matter of defining what must be done, finding a foreign provider, signing an agreement on what must be done, when and for how much, then just wait for the job to be done; after the work is done and accepted, the provider is funded.
Is it profitable? And, how profitable is "profitable"?During the last three years I have been managing the first of the Software Factories in IECI, one of the biggest IT consulting companies in Spain. Being the first Software Factory in the company, I had to start from scratch, with a team compound of about twenty young software engineers. My mission was to develop software for the dozens of projects of my division, mainly Web Content Management systems, and do it profitable. But, how to do it profitable? Well, one of the keys was reusability, so we put the focus on finding the "commons" in the projects of the division. The other key was increasing margin, and to do that I only could reduce costs, so first step was to choose a provider of development services with the right skills needed in our projects and with the right rate. In terms of rate, my team, located at Spain, had a mean rate of 180€ (250$) per man-day (I have to say a very low rate in Spain). The external company, located at India, had a mean rate of 100€ (140$) per man-day. So, at a glance, it seems clear the profitability was there! Yes, but you must take care of some aspects that will increase the effective rate of your external provider. Let me explain. First of all, our external resources were not doing the same kind of work as our engineers: our internal staff was in charge of the requirement analysis with customer, the final installation in customer enviroment, support and project management, while the external team was in charge of development and bug fixing. Beside that, the fact of working with an external company meant an extra work of coordination and management, so this costs should be taken into account. So, how did we compared the real costs of our people against the costs of the external company? Well, to make the story short, when we were doing our costs estimation for a development, we split costs between management, analysis, development and support, taking into account the extra effort of doing the development outside as a percent of the management effort. Given this, we asked our provider for an estimation on the development part only. Then, we compared the costs of doing the development in house or outside with the external provider. For instance, for a given work package we had these numbers (left: costs with internal resources; right: costs with offshore provider):
You can see from these numbers that total costs for the whole project felt down from 178€ man-day to about 137€ man-day, about 23.5% lower. Also notice that, as we never gave the provider our internal estimation, their estimation was even shorter than our (they agreed to do it with an effort of 85 man-days, when we estimated a 90 man-days effort). In terms of pure development, the ratio is even better, as costs felt down from 15.278€ to 9.181€ (8.500€ + 681€), which is 40% lower.
Is profit the only benefit?By far, the answer is no. Profit may be one of the benefits of offshored development, but there are many others. Among them, one of the main benefits I found as a manager who hired offshore development services was workload peak absortion. As I told you before, I managed a team of 20 engineers, that worked as an internal software factory giving service to our eBusiness division, with dozens of ongoing projects every month. Despite the big amount of potential work, some weeks we found we had no work for all our engineers, but the most usual situation was the opposite: we had much more work to do than people to do it; thanks to our external provider in India we could almost always do the extra work, and we had a "floating population" of engineers of about three times our own size. Another benefit was enlargement of our knowledge base, as we could count on the skills of our provider to fill some gaps in our own knowledge. And one more, unexpected, extra benefit my company got was the enforcement of Software Engineering procedures, as we always had an SRS an Test Plan ready before start developing, no matter if the work package was going to be developed internally or externally.
How do I find the right provider?It depends on many factors: what kind of services you need, what skills you need, the expected workload, or even if you need services from a big company or an individual. For instance, if you are in a big company, planning to use offshored services on a regular basis, probably you should look for one or more partners for a long term relationship. Or, if you just need a fix to an old program that has been working for so long with no problems, but needs to meet a new requirement, you could try to look for a guru on that old language ready to start working. Whatever is your situation, if you want a good start point you could try some of these web sites:
There you'll find literally thousands of good programmers, small companies and not-so-small-companies, willing to help. You can even contract individuals per hours, paying the provider only when you need its services. Beside that, you'll have some guarantees from these platforms, like money refund if you don't accept the deliverables or if the provider didn't deliver on time, arbitration services in case of dispute, etc. They are the best place to find people or companies to start a further relation if everything goes well.
|






