|
||||||||||||
- First, the architecture was fatally flawed. The programs worked miraculously with bugs that could not be resolved because fixing them would create bugs in other parts of the system.
- Second, maintenance was a nightmare. In order to make simple changes to the application, we needed to run batch programs that took hours. The risk imposed on the application when making such changes was enormous. One night, these batch files wiped out key data for half of our customers (fortunately, everything was backed up).
- Because the companies did not communicate well with each other they built duplicate and triplicate components and each would bill us accordingly. Our onshore developers would spend “all-nighters” chatting with their offshore counterparts in each company trying to figure out how the application was coded. In essence, our offshore vendors did not really know what they were doing. They staffed their facilities as quickly as they could and, they learned on our dime.
Manage locally — period. It does not matter whether you or your vendor play the role of project managers, perform project management locally. IT projects have vast interactions between users and analysts, comparing existing systems and functionality with desired results. Important decisions happen in meetings where all the stakeholders are present. Local project management (a vendor supplied project manager is OK) will give you the visibility and control you need throughout the life cycle of the application. Moreover, in large projects with sizeable teams overseas, insist also on strong offshore project management. Make sure that they have a clear direction and unambiguous set of goals and deliverables. Ask for offshore team leads for the different components and an overall offshore project manager responsible for the offshore deliverables. Offshore management onsite is crucial. It is hard enough to control projects in house; offshore scope control without strong direction is a nightmare. As part of your evaluation of an offshore partner, consider where their company is based. A company based in the United States offers great benefits from a project management standpoint, including the availability of experienced onsite project managers and technically competent resources. These will help you ensure a smooth knowledge transfer and scope communication with offshore. Another added benefit of a US based company is that if needed you can have their staff onsite very quickly without having to wait weeks for visas an other official paperwork to be processed. An effective management team structure and escalation process is similar to the one in Figure 1, where there is a clear set of roles and their equivalent in the offshore vendor. This team structure allows a clear escalation process. Furthermore, it ensures proper risk management. The key shown in the chart below is to have US-based account and project managers who can address issues without delays. By being so close, the visibility that the offshore teams gain is enormous. They are prepared to make appropriate changes as required by the projects. In contrast, if you opt for having pure offshore management, not only you may lose a shift in every issue because of time and space differences, but you will have to provide pristine communication and hope your instructions are not misinterpreted overseas.
Deciding What to Send Offshore
In theory, deciding what send offshore is a simple: companies can outsource non-core development applications, and boost their return on capital by using third-party development centers. But in reality,
things are more complicated. First, it is not trivial to figure out what's core and what's non-core. For instance, building robust software applications may seem to be a non-core activity for a large supermarket chain whose revenues come from selling items in their stores, but in reality some of the most important competitive advantages in retail come from cutting edge software-based item management. In order to take full advantage of offshore development, think of new paradigm: define what your
company and IT department needs to deliver and, wherever possible, break it down into modules that are measurable, trackable and quantifiable. A project consisting of a ‘PeopleSoft migration to Oracle
Financials for Accounts Receivables’, for instance, matches these criteria, whereas the ‘construction of an Enterprise Midrange System’ does not. Once you have componentized these projects, regardless of
whether they are core or non-core, go through that list and determine the feasibility of its offshore development with your offshore partner/vendor.
Great offshore development componentized activities are:
- Rapid prototyping of unknown/unproven technologies. This frees resources internally to evaluate results and determine their usability in the Enterprise
- Reverse engineering of legacy and/or undocumented applications. Every company has those skeletons in the closet… sooner or later they need to come out.
- Code Migrations. This requires an enormous amount of time to analyze cryptic data, set up the transfer process, test and perform the migration. In addition, offshore works great for setting up and cleaning up data to prepare the migration.
- Your classic software development projects. Here it is strongly recommended that your offshore partner is part of the team as close as possible to inception. This helps to clearly define the scope of the offshore responsibilities.
- Testing and maintenance. These are major areas for effective use of offshore resources.
Do not treat offshore as just plain staff augmentation: use it as part of your organization. Don’t think that offshore resourcing is good only for staff augmentation. During the high-tech boom, there was an incredible development backlog. This motivated companies to try offshore development overseas. A classic picture of the offshore development used for staff augmentation of a large IT department looks like figure 2,
where offshore was used to alleviate the peaks and valleys created by the beginning and end of new and existing projects.
If chart shown in figure 2 reflected a person’s heart rate at a hospital, it would not be long before this patient gets a heart attack! While this
strategy works fine in the short-term, if you place these peaks and valleys on your offshore partner, it will not be long before it starts to not function properly because new resources will need to be trained, retrained, hired and laid off. Sooner or later it will also affect your organization. If this is your offshore long-term strategy you are going to hinder your offshore partner’s ability to properly train resources to fit your needs and ultimately, your culture. Fortunately, Figure 2 shows only a myopic view of the IT organization as a whole.
A broader view of this IT organization and the offshore staff augmentation
is displayed in Figure 3. Notice how the overall picture looks ok because
the scale has changed. Still, the ups and downs are taken by offshore and essentially your savings amount to the difference in cost between US resources and offshore resources in the shaded area. Once your organization learns how to effectively leverage offshore resources, you will obtain the real savings by reducing your full time US-based IT staff and enlarging your offshore resources accordingly, as shown in Figure 4.
Ideally, a true offshore integration consists of using your people as leaders who manage small offshore teams, the latter being responsible for developing the actual work. Remember the statement that
offshore is process and not an event? Start this process by changing the hiring process.
The software industry has shown a clear shift into sending software development work abroad much like the “maquiladoras” in manufacturing. If you are considering offshore development, now is the time to start looking into it. Offshore development is a process that must be melded into your company and a new set of development paradigms must be adopted. “Offshoring” will provide US software companies with a competitive edge only if they learn to execute properly. This execution consists of building an internal foundation, so that culture, architecture, design patterns, frameworks and company-specific processes can be conveyed and learned mutually between you and your counterpart abroad. References:
"How to Think Strategically About Outsourcing," Harvard Management Update, Vol. 7, No. 5, May 2002.



