APPROACH EXPERIENCE SERVICES PORTFOLIO CONTACT
 


White Paper: Small Business--Successfully Outsourcing Your Software Development

Introduction

Over the past twenty years as companies have adapted to the emerging global economy, few topics have been as hotly debated as the concept of outsourcing. The word alone can elicit all sorts of responses, from a delightful smile to an embarrassing cringe. Having worked in this business model for over four years, I have experienced both reactions; those experiences have taught me how to mitigate the risks so I can now enjoy many more smiles than cringes. So what are the risks and rewards involved with this controversial form of software development? Over the years I've encountered several myths about outsourcing--in this white paper I'll debunk these myths and detail the potential pitfalls to navigate. Hopefully this information will help companies enjoy the many benefits from the proper use of outsourcing.

What Is Outsourcing?

MYTH: Outsourcing is unmanageable

The first image that comes into a business manager's mind when they hear the term "Outsourcing" is a bunch of foreign programmers huddled in a far-away office writing code without any supervision. It is easy to imagine the fear this mental picture brings. There are many ways to outsource project, so it is important to define exactly what we mean when we use the term.

A simple definition for outsourcing is any use of outside resources by a company to perform a business function. This can encompass many arrangements--by this definition, a US based company hiring a US consultancy to implement an ERP is considered outsourcing. Outsourcing does not always mean hiring foreign labor to perform work for your company, although many do this for the obvious cost benefits. This white paper will focus on software development outsourcing that involves the use of offshore resources, because the very nature of software procurement allows code to be written anywhere by anyone, since software can be transferred electronically when it is completed. Perhaps this is why the Online Dictionary of Computing defines outsourcing as "Paying another company to provide services which a company might otherwise have employed its own staff to perform, e.g. software development."

So why do companies outsource? We all know the most common argument is because it saves money. However, companies outsource for reasons beyond just saving a dollar. In today's knowledge based economy, it is more important than ever for a company's internal resources to focus on what they know best. Any peripheral business functions that fall outside their core competency may be better managed by a company that specializes in that function. If a firm out of Austin, Texas manufactures and distributes healthcare components to hospitals, their primary focus is to understand their customers and develop new components to meet the hospitals' needs. But they still need an internal accounting system, software to manage their warehouses and suppliers. These functions, though important to their business, lie outside their primary value proposition. Instead of home-growing software to manage these functions, they can outsource these tasks to a third party who specialized in the arenas, so they may get higher quality at a lower price.

Investopedia has an excellent commentary that sums up the functional and cost benefits to outsourcing:

"Outsourcing is an effective cost-saving strategy when used properly. It is sometimes more affordable to purchase a good from companies with comparative advantages than it is to produce the good internally. An example of a manufacturing company outsourcing would be Dell buying some of its computer components from another manufacturer in order to save on production costs. Alternatively, businesses may decide to outsource book-keeping duties to independent accounting firms, as it may be cheaper than retaining an in-house accountant."

In the world of software development outsourcing, there is a third reason to outsource. The available pool of talented programmers continues to shrink in the US, while outsourcing countries like China and India continue to develop bright young talent in growing numbers. Outsourcing gives US based companies the ability to take advantage of this talent to help their organization.

Nobody understands this better than Randy Walker, head of outsourcing for the Asia Pacific region for IBM, one of the largest companies to embrace the concept of outsourcing. In a July 28th, 2006 article in BusinessWeek, he had this to say about the benefits of outsourcing, "...first it was labor arbitrage. It was, what's cheaper than the US? But now its all about skills anywhere in the world, be it Russia, Dalian [China], India, Philippines...customers are demanding the change. They are demanding more value beyond labor arbitrage. It's a different level of skills and talent. Everyone expects cost savings, but they don't want 'cheap', they want 'value'."

Software development outsourcing is so popular because every company can use software to increase productivity, while so many businesses have core competencies that lie outside this space. According to OffshoreIToutsourcing.com, over 40% of all Fortune 500 companies outsource their technology.

Proper Outsourcing

MYTH: Software outsourcing does not work

It is no surprise that some companies have failed in their attempts at outsourcing. In many ways, they are more complex projects to manage than a typical technology project. A neoIT Study conducted in January 2005 "...estimates that in 2005 as many as 40 percent of global sourcing projects may fail to achieve desired results." A successful outsourcing project depends, more than any other factor, on the proper structure. Like a solid house, it all begins with the foundation.

Without exception, every outsourced software project should have a local presence to communicate with the client. It is impossible to fully understand the requirements and expectations without this. A local presence can be a project manager, business analyst, or team of resources to handle client interfacing. This presence and the client must have the appropriate face time to clearly and easily communicate requirements and software. Advances in web-based communication have made it possible to meet remotely, so as long as the client and vendor are in similar time zones, they can communicate via phone and chat using online meeting software. With this face time, the project manager will be armed with all the knowledge they need to create the proper software for the client.

Only certain phases of an outsourced software project should be completed by an offshore team. Software analysis and design can NEVER be outsourced—these phases must be handled by the local presence because they deal with the intricacies of effective communication. When companies describe software requirements to a vendor, there is often non-verbal communication and back-and forth collaboration that can only be understood by a local presence. Let’s look at the standard 5 phase approach for completing software projects, examining which phases can be handled remotely:
· Analysis -- Local. A local presence needs to handle all requirements gathering due to the collaborative nature of software development
· Design -- Local. All software design should be handled by the same team that gathers the requirements—they are most familiar with how the software is supposed to function, so they should translate those requirements into a technical specification
· Development -- Offshore. Once the requirements are translated into a technical specification, the project essentially has a blueprint in a universal language. The offshore team can take the specs and write the code for the project
· Testing – Offshore. The offshore team can unit and system test all of the code they develop. Once that is complete, the local team can perform acceptance testing with the client.
· Deployment / Maintenance -- Local and Offshore. The local team should be responsible for launching the software when complete. They are also responsible for organizing maintenance work (bug fixes, minor updates, etc.) to be handled efficiently by the offshore team.

Many companies try to bypass the local presence and work directly with remote outsourced teams. This is the primary cause for failures on an outsourcing software project. When working with an offshore software development team, there are several challenges to overcome:
· Language barrier -- Though most offshore teams can speak, read and write in English, their interpretation of words, figures of speech, and expressions differs from ours. This can cause misunderstandings when identifying and documenting requirements.
· Time zone differences -- This poses a larger problem than people think. Many offshore teams are located in China or India, which can be anywhere from 10 to 14 hours ahead of clients in the US. This makes it very difficult to conduct meetings to discuss software requirements or design, since the end of a US day usually coincides with the beginning of the offshore team's day.
· Cultural (national and corporate) barriers -- The differences in national cultures between a client and an offshore team can cause problems on a project. Some cultures put less emphasis on attention to detail, creative thinking, and problem solving than others. This can affect the outcome of a project. Different countries also have different calendars and holidays, which have to be factored into a project plan. Finally corporate cultures between an offshore team and a client can be drastically different, making communication even more difficult.

Use an outsourcing company with strong ties to the remote team and rigorous control processes in place. It is important to work with an outsourcing vendor with enough history and process with their offshore team to overcome the above challenges. A good outsourcing company should have at least 2 years experience working with their offshore team. This is enough time to learn the differences between languages, national and corporate cultures. It is also important to use an outsourcing company who has had their local resources visit the offshore team for the proper face-time. Personally, I have been to India to meet with our offshore team, and it makes a world of difference to communicate face-to-face about software projects. Finally, and most importantly, there should be a thorough an rigorous control process in place between the local presence and the offshore team within an outsourcing company. These two entities should have very detailed processes for:

· Coding Conventions
· Software Documentation
· Version Control
· Project Management

Of course, all of these processes are necessary on a regular software development project, but they are even more important when remote developers are used.

Candidates for Outsourcing

MYTH: Software outsourcing is not right for my company

Some people think only large companies have the ability to benefit from outsourcing. In reality, almost every company can benefit, no matter what their size. If a company's value propositions and core competencies lie outside the software development space, then that company can benefit from outsourcing their software needs. According to the Global Outsourcing Report, "Three-quarters of U.S. companies outsourced some or all of their information technology activities in 2004, and that percentage is likely to increase this year..."

Almost every kind of software development project can be outsourced, no matter how big or small. Obviously, the larger the project, the more cost benefit a company will receive from outsourcing. However, this does not preclude small, independent projects from being successfully outsourced. If a company has a software development project that will consume internal resources time and effort, then an outsourced company can likely perform the same work at a lower cost.

Outsourcing and ROI

MYTH: Outsourcing does not save money

We have all heard the horror stories from colleagues about an outsourced project that failed and ended up taking much longer to complete than it would have if it had been done in-house. When thinking about outsourcing and ROI, the benefit of using lower-wage resources can evaporate if the project takes much longer to complete than originally planned. However, with the appropriate structure described above, a successful outsourced project can save enormous amounts of money. According to OffshoreIToutsourcing.com, "companies who outsource their technology save between 50% and 70% on software projects."

Let's analyze the average hourly cost of an internal resource versus an offshore resource, and how that cost is factored into a software project. According to Forrester Research in May 2005, "To get high-quality service levels from top-tier vendors, customers should expect to pay in the $24 to $30 per hour range for offshore labor..." From my experience, a "high-quality" offshore resource is usually a senior programmer at $30 per hour. Compare this to a senior programmer in the US, who likely makes in the range of $80 to $90 per hour.

My experience with outsourcing has taught me that 1 hour of offshore work does not take the place of 1 hour of work by an internal resource. After factoring in the cultural, language and management barriers associated with using offshore resources, replacing 1 hour of work by an internal resource usually translates to 1.25 or 1.5 hours of offshore work. In short, it takes an offshore developer with the same level of competence 25 to 50% longer to complete a task than it would for an internal resource, holding all other factors constant. This would bring the cost of an offshore programmer up from an average of $30 per hour to a more accurate estimate of $37.50 to $45 per hour. Yet even factoring in this extra cost, a company can expect to save in the range of 40 to 60% for EVERY hour worked on the project. It is hard to argue with those savings, even when an offshore programmer might work slower than an internal resource.

Now let's talk about ROI in terms of a company's overall annual IT spending. Companies usually measure their IT spending in terms of a percentage of sales. Most companies in the high growth stage, according to the Gartner Group, will spend between 12% and 16% of their sales on IT. By comparison, Amazon spent 7.8% of their sales on IT in the second quarter of 2006, according to Reuters.com.

Compare these numbers with one of our clients who make great use of outsourcing. This company is an online supplier of health products. Because they are an online-only business, their technology plays a huge role in their overall operation. Yet they still chose to outsource their entire technology operation. We structured a team that includes a US based project manager, an offshore project manager, two software programmers and a local testing resource. This team manages, updates, and maintains 13 different websites that take orders all over the world. This year the company expects to gross 10 million dollars in sales, while their overall technology expenses should not exceed $350,000. This high-growth internet-only company manages to build their business only spending roughly 3.5% of sales on technology. Among other things, the savings are derived directly from the cost-effectiveness in using offshore resources.

Conclusion

Now that we have looked at the various myths, pitfalls, risks and rewards associated with outsourcing, it is easier to understand how often these projects can go astray. Outsourcing is not easy. But when applied by experts who use the appropriate structure and processes on a project, a company can enjoy all the benefits that outsourcing can provide: high quality, large cost savings, and increased ROI.

 


© Copyright 2008 Square One Solutions, Inc.