Contents
Outsourcing, a mega-trend which forces changes onto every IT organization
Top 
Introduction
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 started to affect also IT jobs which 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 which do already that. This article is intended to shed some more light on how that will effect 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 which establishes a relationship with an outsourcing vendor. Outsourcing vendors will have best practices in place which mirror those.
Top 
What were the enabling factors for outsourcing?
There has been recently 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, etc. All of them were complex and costly. Over time standards are introduced which allows the product to be assembled faster and cheaper. It becomes easier to assemble the product from a set of available components which are all following this standard. Today all components in a Personal Computer follow strict standards so you can choose your processor, video card, etc. 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, etc. When the product or technology is viewed as commodity with transparent prices and reliable quality and service, then 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 how a software application should be build. 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 like TCP/IP networks, Internet, VPN, VOIP, email, 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.
Top 
What parts of IT will get outsourced and what will not?
IT used to have the image of technology gurus sitting in the corner and 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 which get 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 requires also 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 which 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 which companies tend to keep in-house, which is high value product research. When it comes to inventing the next big thing then 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 hardware vendors sell each year new versions of an existing laptop series which are just slight adaptations, like a better processor, a better video screen or card, etc.
Top 
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 for interacting effectively with customers and outsourcing partners. Good time management skills, meeting skills, project management skills, etc. 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 also employees 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 seeing 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 to outsource the IT role or not. Many times IT is seen by business owners as difficult to interact with, unreliable and they are 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 its value and be more responsive to your customers. In such scenarios cost plays a much less role in the decision whether to outsource or not.
Top 
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 CEO's 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, etc. 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 which it must face quickly and effectively or the whole value of outsourcing is in question.
Top 
What to choose - outsourcing vendor or outsourcing partner?
Now you 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 which will end up in a selection of an outsourcing vendor or partner. I make here 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 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 which model to choose which then creates confusion for staff on both sides. Choose the outsourcing vendor model if you have discreet projects with clear specifications and exit criteria's. You want to avoid any unnecessary management overhead. The completion of the project might then terminate the outsourcing relationship or let it enter a new phase - like 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 remainder sections of this article apply more to an outsourcing partner relationship.
Top 
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 still you 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 like 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 will also 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.
Don't take anything for granted as manager who is in charge of the outsourcing relationship. 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, etc. 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.
Top 
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 as 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 over night can become part of your standard capabilities. It will take some time for you to work the details out but that's how time-zone differences can become your advantage.
Top 
Rotate onsite coordinators to your facilities
Many outsourcing providers offer on-site coordinators, which is a member of their team placed in your facility. This helps bridging 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, etc. He/she needs to be part of the outsourcing team which 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 fast. Despite a vast skilled labor pool in the world, many are not yet exposed to the productivity pressures known in North America and Europe.
Top 
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, 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.
Top 
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. Be also 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, what is the problem solved by your solution, etc. Then dive into the technical aspects. Involve your brightest people you have as you want to get the best possible training. Explain how your development environment is set up, how your builds are running, how the product is installed, 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 it 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 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.
Top 
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 live cycle of a project. In general have short daily calls to review requirements, designs, questions, issues, etc. Have a weekly management call where you review the post week activities and upcoming week goals. Additionally have monthly or quarterly calls which focus more on growing the relationship strategically. The weekly and more important monthly or quarterly calls require strong senior management support. Building and maintaining the relationship in general requires active participation and support from senior management.
Top 
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 quite less in regions like 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, etc. Understand the productivity differences. It's like a junior programmer will need more time then a senior programmer. Same way, people in different geographical parts of the world have different approaches, skill-levels etc. which result in productivity differences. As a rule of thumb assume an initial productivity ratio of one to two which 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 skeptic of such claims. Cost reductions of a third sound 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, etc.
Top 
Other articles on this topic
There are many other articles on the topic of outsourcing. Here is a selection of some useful articles:
Top 
Summary
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 we touched in this article as well as many other things we can't touch in this short article. Outsourcing has become part of our 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 @ klaus_salchner@hotmail.com [^]. I want to hear if you learned something new. Contact me if you have questions about this topic or article.
Top 