Over the last few years, there has been a tremendous amount of discussion, arguing, and writing about outsourcing. Decades ago, we started offshoring manufacturing—blue collar work—to China and many other Asian countries. There is very little manufacturing happening in North America and we all came to accept that. But in the late nineties and especially in the early years of the 21st century, this trend also started to affect IT jobs that were considered to be high paying and safe white collar jobs. There are many arguments for and against it. There are many emotions and fears associated with outsourcing. Many of us working in the IT industry have been affected by it directly or indirectly. If we haven't been affected by it yet, we for sure know a friend or neighbor who has been.
This article does not intend to argue the very fact of whether to outsource or not to outsource. There are enough articles out there that do already that. This article is intended to shed some more light on how that will affect IT organizations—what will be offshored over time and what will not be offshored. This article also covers how to manage an outsourcing relationship. What are the best practices you should put in place to make the outsourcing relationship a success? Realizing that my audience is scattered around the world, I want to stress that these best practices are mostly from the view of an organization that establishes a relationship with an outsourcing vendor. Outsourcing vendors will have best practices in place that mirror those.
What Were the Enabling Factors for Outsourcing?
Recently, there was a very interesting article by Jonathan Schwartz
. It talks about how industries are moving from customization, to standardization, and finally to utilization. Newly invented products or technologies are very often proprietary, which are complex and costly. Think about your first Personal Computer, your first Operating System, your first Word Processing system, and so forth. All of them were complex and costly. Over time, standards are introduced that allow the product to be assembled faster and cheaper. It becomes easier to assemble the product from a set of available components that are all following this standard. Today, all components in a Personal Computer follow strict standards so you can choose your processor, video card, and so forth. Many vendors allow customers to assembly their own computers. This would be impossible without standardization. It also makes it easier to use a product. Standardization in the software industry means, for example, that there are commonly known approaches how to achieve scalability, how to manage session state, and so on. When the product or technology is viewed as a commodity with transparent prices and reliable quality and service, you reach utilization. The IT industry is just entering this phase.
What does that have to do with outsourcing? IT, having gone through the standardization phase and just now entering the utilization phase, has really enabled the widespread use of outsourcing. Without standards, it would be very hard to outsource. Nowadays, there are standards in place for hardware as well as for software. There are many common practices about how a software application should be built. Because of these standards, it is now possible to outsource the development of applications. Secondly, IT itself has made it possible to collaborate and exchange information easier and faster. Technologies such as TCP/IP networks, the Internet, VPN, VOIP, e-mail, instant messaging, and many more make it easy for your IT infrastructure to span the globe. It virtually does not matter anymore where your workers are sitting as long as they have high speed Internet connectivity.
Which Parts of IT Will Get Outsourced and Which Will Not?
IT used to have the image of technology gurus sitting in the corner, coming up with new magic code or hardware components. This is a thing of the past. As a rule of thumb, the closer you are to your internal or external customers, the less likely your job is to be outsourced. It doesn't matter where someone is located when it comes to coming up with the most sophisticated programming logic. But it does matter very much when it comes to understanding the pains and needs of your customers, whether these are internal or external customers. Software development can be split up in two parts.
First, you need to understand the pain and need of your customer's; this gets translated into requirements. Understanding the requirements requires closeness as well as a good understanding of the business your customer is in. Coming up with a proper architecture and design of the solution also requires a good understanding of the business the customer is in as well as a good understanding of the overall IT infrastructure needs the customer has. All this translates into requirements and design specifications that detail the what and how of the product. These functions are typically done in-house.
The actual implementation of the product, meaning the actual writing of the code and the actual testing, can be done wherever you have skilled resources available. Nowadays that can be India, China, Russia, or many other countries. And, that is a growing trend in the IT industry. You define the what and how; then offshore the actual implementation and only oversee it so it meets the what and how when delivered.
There is one more area that companies tend to keep in-house; that is high-value product research. When it comes to inventing the "next big thing," this is likely still done in-house. Some of the research is done offshore, but that tends to be more product renewal, meaning you have an existing product and you renew it year after year so you can continue selling it as new a product. For example, each year hardware vendors sell new versions of an existing laptop series that are just slight adaptations, like a better processor, a better video screen or card, and the like.
What Does that Mean for the In-House IT Organization and IT Employees?
IT organizations must recognize this new business environment unless they want to be surprised by it one day. Each individual employee in the IT field needs to recognize this change. Soft skills are as important nowadays as hard skills. Good communication skills are a must to interact effectively with customers and outsourcing partners. Good time management skills, meeting skills, project management skills, and so forth are all a must to have. Gone are the days where you can get a secure job just because you are an exceptional hardcore C++ developer. IT managers should mandate a certain amount of training in these areas and spend a bigger part of their training dollars on soft skills.
But, employees also need to recognize that fact. You no longer can afford to not work on these soft skills just because they don't interest you. That doesn't mean you need to become the best communicator and project manager in the world. But, good communication and project management skills will make it that much easier to work with your customers. That naturally translates into better understanding the business and being more effective with all the people you need to interact. This naturally translates itself into being seen as someone who can't be replaced.
IT managers should seriously assess how effective their IT organizations are in addressing the needs and pains of their customers. Customer satisfaction may play an important role whether business owners are considering whether to outsource the IT role. Many times, IT is seen by business owners as difficult to interact with, unreliable, and they very often don't understand its value. But rather, they see it as a big cost center. Exposing your IT employees more to the rest of the organization will demonstrate their value and be more responsive to your customers. In such scenarios, cost plays a much smaller role in the decision of whether or not to outsource.
What is the Business Driver for Outsourcing?
Many organizations have decided to jump on the outsourcing bandwagon. The industry has matured the last few years when it comes to outsourcing. It used to be that CEOs heard it's the new trend and it works for others so we must do it too. The industry has a better understanding what works and what does not work. Outsourcing is poised to grow over the years to come. Therefore, more and more employees will be exposed to it whether they like it or not. Only very rarely is IT completely outsourced. In most cases, your in-house IT organization is restructured and complemented with an outsourcing relationship. A contributing factor is that technologies are becoming more complex and that budgets over the last few years have dropped across the board.
It is important to include employees into the process as early as possible. The very fact of outsourcing causes fear and uncertainty. First of all, there must be a clear understanding of the business objective. Is it to cut costs, decrease time-to-market, freeze budget while still increasing R&D capabilities, and so on? When understanding the business objective, it is important to assess what changes are needed in your in-house IT capabilities. A proper assessment can very well come to the conclusion that it does not make sense to outsource but rather make some changes to your in-house capabilities. But, entering an outsourcing relationship forces new challenges onto your IT organization that it must face quickly and effectively or the whole value of outsourcing is in question.
What to Choose: Outsourcing Vendor or Outsourcing Partner?
Now, you have established that outsourcing is the right thing to achieve your business goals. Depending on size, complexities, and other factors, it may very well make sense to get help in that assessment. Next, you need to go through an RFP process that will end up in a selection of an outsourcing vendor or partner. Here, I make a clear distinction between vendor and partner. You should know right from the beginning what type of relationship you are after. An outsourcing vendor relationship is where you hand off clear specifications and monitor the delivery. Your objective is to give an agreed-upon piece of work to a vendor and that he delivers it to the agreed-upon specification, time, and cost back to you. This naturally means there is less interaction between your IT organization and the outsourcing vendor.
An outsourcing partner relationship is more like a natural extension of your in-house IT organization. You want to interact with the outsourcing partner on a very regular basis, best on a daily base. The outsourcing team is a team dedicated to your organization and performs whatever work it gets fed from you. You worry less about on agreeing what a project costs you. You know, based on the team size, what your monthly costs are and you feed it whatever work needs to get done. You can shift priorities as you would with your in-house team. You foster a long-term relationship with the employees who, over time, understand your culture and how you do business. They will also understand your business better over time and therefore will become more effective.
A lot of organizations get confused about which model to choose; this then creates confusion for staff on both sides. Choose the outsourcing vendor model if you have discreet projects with clear specifications and exit criteria. You want to avoid any unnecessary management overhead. The completion of the project then might terminate the outsourcing relationship or let it enter a new phase—such as ongoing maintenance of the product. Choose the outsourcing partner model if you want to expand your capabilities while leveraging cost efficiencies. You are complementing your in-house IT staff with outsourcing staff. Treat them as part of your team. They need to feel they are part of your organization. You develop their capabilities and your industry knowledge so you can leverage it for future projects. Your management overhead is higher but you have ongoing return of investment. This model applies if you, for example, use the outsourcing partner to create an annual release of your product.
The remaining sections of this article apply more to an outsourcing partner relationship.
Understand the Culture Effect!
We are living in a global world. Products are developed in all parts of the world and then marketed and sold all around the globe. You would think by now everyone understands that there are cultural differences. And, you still hear once in a while about embarrassing mistakes by global brands. Forgive me not mentioning any here for amusement for the obvious reasons. The simplest thing such as color can mean totally different things. Red is a color of happiness and prosperity in China while it is a color of mourning in South Africa. Body language can have a different meaning in the world. Direct eye contact is a sign of trustworthiness and import communication medium in the most parts of North America and Europe while avoiding it in Africa, Asia, and Latin America is a sign of respect. You can find many books and articles about this topic.
What has outsourcing to do with it? As soon as you start to outsource your projects to places like India, China, Russia, or other places, you will be confronted with cultural differences. Recognize these cultural differences, educate your in-house team on those differences, and then work on overcoming them. Diversity can be one of your most competitive advantages because it brings people with different backgrounds, approaches, and thought processes together to solve a common problem. But, ignorance to cultural differences and the resulting problems can be disastrous. A lot also will depend on how much the outsourcing team has been already exposed to other customers in North America or Europe and how many of your in-house staff have already worked with partners and customers around the world.
As a manager who is in charge of the outsourcing relationship, don't take anything for granted. As with any in-house team, it is very important to frequently check that everyone has the same understanding of priorities, requirements, design goals, milestones, and so forth. Ask one more time whether there are any further questions about the requirement. When you think the design is well thought through, ask someone from the outsourcing team to summarize it. Don't ask the outsourcing staff to just acknowledge it but rather summarize it in their own words. Constant communication between the in-house team and the outsourcing team with frequent check points and professional courtesy will make culture differences a non issue.
Take Advantage of the Time-Zone Difference
Understand that there is a time zone difference; understand how to work with it and use it as an advantage. It can suddenly turn your development team into an around-the-clock development team. Make sure that you have at least a few hours of overlap between your outsourcing team and your in-house team. This makes it much easier because you can communicate easily, interact daily, and resolve any outstanding issues. India, for example, is nine and a half hours ahead of the US east coast (normally ten and a half hours because India does not have daylight savings). So, you can get about good three hours of time overlap with your outsourcing team (it is common practice for IT staff in India to start later in the morning and therefore stay later in the evenings).
When your in-house team starts, it should communicate with the outsourcing team and understand open questions and issues as well as receive any open handovers, like project deliverables. By the time the in-house team leaves, it should have resolved all open issues and questions so the Indian team can pick up as soon as they come in. It takes a bit for this routine to sink in, but it can create some real efficiencies for you. You suddenly can react very quickly to customer and market situations. Developing a critical customer fix overnight can become part of your standard capabilities. It will take some time for you to work out the details, but that's how time-zone differences can become your advantage.
Rotate Onsite Coordinators to Your Facilities
Many outsourcing providers offer on-site coordinators, who are members of their team placed in your facility. This helps bridge the cultural and time-zone differences. It makes it easier to have someone from the outsourcing team sitting at the same table as your in-house team. This really should be a member of your outsourcing team and not another high-level project manager. The on-site coordinator needs to understand your technology, your product, your practices, your business, and so on. He/she needs to be part of the outsourcing team that does the actual work. It becomes another channel for them to raise issues and questions and to solicitate additional input for projects and ongoing activities.
He/she is there to help with communication and coordination, but should not replace all other communication channels. Rotating the on-site coordinator every three months from team members in your outsourcing team provides also the benefit of additional exposure between the teams. Someone who was on-site for three months and has built many relationships will be more efficient when he/she goes back to the outsourcing team. But, the person must be very good technically, strong in communication, and able to multitask many things quickly. Despite a vast skilled labor pool in the world, many are not yet exposed to the productivity pressures known in North America and Europe.
Go and Visit Them Once in a While
We are all human beings and as such we tend to work better with someone we have built a relationship with. You will never be able to arrange that everyone meets in person. As important as it is to have an on-site coordinator, is it to visit the outsourcing team at least once a year, preferably twice or three times. Send your key team members and the folks who manage the outsourcing relationship. It makes a difference seeing the facilities, meeting the team, and seeing it with your own eyes. Your team will suddenly spend less time arguing about certain things because there is a better mutual understanding or because there is an understanding of certain differences in approach. These benefits will very quickly outweigh by far the costs associated with visiting the outsourcing team.
Did I Forget to Mention "Knowledge Transfer?"
It is important to invest in the initial knowledge transfer. After selecting your outsourcing provider, be very particular in selecting the core team members. Be involved in the selection process. Perform a final interview of each team member. Also, be very specific in the required skill set. When the core team has been assembled, bring them on-site to your facility and run a knowledge transfer. In the knowledge transfer, explain your business, how your customers are using your solution, the problem solved by your solution, and so on. Then, dive into the technical aspects. Involve your brightest people you have because you want to get the best training possible. Explain how your development environment is set up, how your builds are running, how the product is installed, and how you debug and troubleshoot application issues to finally the code itself. Spend less time in the code but more in providing a comprehensive picture. Cover all the areas your in-house team needs to do every day. Do daily reviews of the covered areas. Ask them to summarize it in their own words. Perform question and answer sessions each morning and evening to make sure the covered topics are really understood.
This core team then goes back and trains the remaining team. Tape as many sessions as possible so they can be replayed to other team members. When the team goes back, they should be able to install the application, set up the development, and build environments and start working on the first projects. Then continue with daily calls to build on top of that. This allows them to answer questions the outsourcing team might run into at the beginning. Put yourself into their shoes; you are a new person who gets thrown into this project and you are sitting far away from the people who know all the answers. Depending on the scope of the outsourcing project or relationship as well as complexities of your project, you should consider the on-site training effort to be around four to eight weeks.
Daily, Weekly, Monthly, or Quarterly Calls
Constant interaction with the outsourcing partner will enable you to proactively manage the ongoing activities. This depends very much on the type of work as well as the life cycle of a project. In general, have short daily calls to review requirements, designs, questions, issues, and the like. Have a weekly management call where you review the past week's activities and upcoming week's goals. Additionally, have monthly or quarterly calls that focus more on growing the relationship strategically. The weekly and, more importantly, monthly or quarterly calls require strong senior management support. Building and maintaining the relationship in general requires active participation and support from senior management.
For the "Bean Counters" Under Us
It's not just simple math when it comes to really understanding what the cost savings are when it comes to outsourcing. Yes, labor costs are significantly less in regions such as India and China. But, cheapest is not always the cheapest way to build and grow your product. Never go for the cheapest offer. There is a reason they are cheap. Stay in the middle field. Add the overhead of your own team spending time in helping the outsourcing team, ongoing knowledge transfer, ongoing product support, managing the relationship, and so forth. Understand the productivity differences. It's like a junior programmer will need more time than a senior programmer. In the same way, people in different geographical parts of the world have different approaches, skill-levels, and so on that result in productivity differences. As a rule of thumb, assume an initial productivity ratio of one to two that, after a year or more, levels out at one to one and a half.
You will hear claims that your product can be developed for less then half the costs doing it yourself on-site. I personally am skeptical of such claims. Cost reductions of a third sounds realistic to me. Some organizations might be able to achieve a bit more or less. Everything varies on product complexities, your own in-house team, and so forth.
As with everything, it takes time to build and grow an outsourcing partnership to success. It will take you twelve to eighteen months to make it work right. It requires senior management support and sponsorship as well as buy-in and support from every one of your in-house team members. You need to work on overcoming the culture shock and fears of your in-house team. You need to prove to your in-house team that it can work. And, many other things I touched on in this article, as well as many other things I can't touch in this short article also are involved. Outsourcing has become part of the IT environment and will stay for a long time. A maturing IT industry, combined with the enablers provided by IT, makes IT outsourcing a fast growing market. Success or failure of an outsourcing relationship often depends on how committed everyone involved is. If done right, it can free up in-house resources to concentrate on higher-value work while still being able to deliver products and services on time and with quality. If you have comments on this article or this topic, please contact me at firstname.lastname@example.org. I want to hear if you learned something new. Contact me if you have questions about this topic or article.
About the Author
Klaus Salchner has worked for 14 years in the industry, nine years in Europe and another five years in North America. As a Senior Enterprise Architect with solid experience in enterprise software development, Klaus spends considerable time on performance, scalability, availability, maintainability, globalization/localization, and security. The projects he has been involved in are used by more than a million users in 50 countries on three continents.
Klaus calls Vancouver, British Columbia his home at the moment. His next big goal is runnng the New York marathon in 2005. Klaus is interested in guest speaking opportunities or as an author for .NET magazines or Web sites. He can be contacted at email@example.com or through http://www.enterprise-minds.com.
Enterprise application architecture and design consulting services are available. If you want to hear more about it, contact me! Involve me in your projects and I will make a difference for you. Contact me if you have an idea for an article or research project. Also, contact me if you want to co-author an article or join future research projects!