[
Advertise | Submit Code | About us | Contact us | Link us
]
Go!
Membership Services
Login
Register

Home
C# General

General

C# Language

Design & Architecture

Algorithms

Database

Security

Active Directory

COM Interop

Remoting
C# Windows Forms

General

Combo and List boxes

Miscellaneous Controls

Button Controls

Edit Controls
Cutting Edge

ASP.NET 2.0

Visual Studio 2005

Windows Longhorn

SQL Server 2005
C# Multimedia and GDI+

General

DirectX

GDI+

Audio
Internet & Web

General

Images and multimedia

Database

Utilities

Security

ASP.NET Controls

Design and Architecture

Webservices
.NET

General

Design & Architecture

Algorithms

Database

Security

Active Directory

COM Interop

Remoting

ADO.NET

XML.NET

Tools

Enterprise

IDE
Visual Basic .NET

VB.NET General

VB.NET Controls
General Reading

.NET Books Review

Product Showcase

Book Chapters

Business Design & Strategy
Community

Discuss

Job Board

Discussion

CodeXchange
DeveloperLand

Advertise

Submit Code

About us

Contact us

Link us
Miscellaneous

Favorite Links

Downloads

Programming Sites

Top Stories
Regular Expressions

E-Mail

Date/Time
Home > General Reading > Business Design & Strategy
Outsourcing, a mega-trend which forces changes onto every IT organization
Posted by on Thursday, April 21, 2005 (EST)

This article takes a closer look at what IT functions are and are not outsourced. It takes also a closer look at how to manage an outsourcing relationship successfully. What are the things to do and not to do?

This article has been viewed: 3,506 times
Technology: Business Design & Strategy.

Contents

Outsourcing, a mega-trend which forces changes onto every IT organization

Top Go to Table of Contents

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 Go to Table of Contents

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 Go to Table of Contents

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 Go to Table of Contents

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 Go to Table of Contents

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 Go to Table of Contents

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 Go to Table of Contents

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 Go to Table of Contents

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 Go to Table of Contents

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 to Table of Contents

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 Go to Table of Contents

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 Go to Table of Contents

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 Go to Table of Contents

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 Go to Table of Contents

Other articles on this topic

There are many other articles on the topic of outsourcing. Here is a selection of some useful articles:

Top Go to Table of Contents

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 Go to Table of Contents

About Klaus Salchner

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 doing 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 klaus_salchner@hotmail.com or 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.

Click here if you want to know more about .

Other articles that may interest you

  • Write a Word Add-In – Part 0
  • Write a Word Add-In – Part I
  • Lengthy Operations on Single Thread in .NET Application
  • Learning Draughts
  • Exceptions and Performance
  • Average Rating :

    Discussion Forums
    Got a programming related question? Hopefully someone has the answer... Want to help out other developers? Visit our discussion forums.

    Sponsored by:

    New Articles

  • Exceptions and Performance
    Almost every time exceptions are mentioned in mailing lists and newsgroups, people say they're really expensive.Let's examine that claim, shall we?

  • Creating multilingual websites - Part 1
    Extend the existing globalization capabilities of .NET to create flexible and powerful multilingual web sites. First, create a custom ResourceManager, and then create custom localized-capable server controls to easily deploy multilingual functionality.

  • Parameter passing in C#
    Many people have become fairly confused about how parameters are passed in C#, particularly with regard to reference types. This page should help to clear up some of that confusion

  • Most Popular Articles

  • LDAP, IIS and WinNT Directory Services
    This article explains how to use .NET Directory Services to retrieve and search directory objects, create new directory objects and edit or delete existing directory objects. Describes Active Directory Application Mode (ADAM) and how to use the IIS, WinNT and LDAP directory (ADSI) provider.

  • An in-depth look at WMI and instrumentation, Part II
    WMI stands for Windows Management Instrumentation and, as the name indicates, is about managing your IT infrastructure this article is the second part of a two-part series.

  • An in-depth look at WMI and instrumentation, Part I
    WMI stands for Windows Management Instrumentation and, as the name indicates, is about managing your IT infrastructure this article provides an in-depth look at WMI and MOM 2005

  • New Books

  • Murach's ASP.NET 2.0 Upgrader's Guide: VB Edition
    What’s new and how to use it! That’s what this book delivers if you’re a VB developer who’s interested in upgrading from ASP.NET 1.x to ASP.NET 2.0.

  • C# in easy steps
    Learn to program with Microsoft’s premier programming language. No previous programming knowledge is assumed. With numerous easy-to-follow examples, this title explains the essentials of object-oriented programming with C#.

  • Murach's ASP.NET web programming with VB.NET
    Murach's ASP.NET web programming with VB.NET by Doug Lowe and Anne Prince is a in depth training and reference book for ASP.NET programming using VB.NET. The book builds upon Murach's previous books and covers more advanced concepts for programming ASP.NET pages.

  • Got Code?

    if you have any article , source code , or anything else you'd like to share with this community that you think others might find useful, please submit it here and we will gladly make it available on this site. submit@developerland.com.
    Partners

    All articles are copyrighted by their individual authors unless otherwise specified , everything else Copyright ©2004-2006 DeveloperLand