Offshore implementation of software projects has for several years been accepted as an effective manner to overcome constraints in terms of cost and time. The selection of an offshore partner and the role played by the partner in projects involving a migration towards service oriented architecture are discussed in this document. The topics addressed include a description of the benefits, challenges and governance involved in such a partnership. Tasks and responsibilities of each of the partners, the client and the service provider, specific activities that are better executed within the onsite environment and those that can safely be transferred to an offshore location, thereby effectively utilizing the resources at both ends are explicitly described.
This document is written as a guide to an alternative mechanism for project implementation for business owners holding responsibility to deliver IT solutions in the SOA space. It could also be of interest to enterprise architects, project managers, and others involved in creating and executing software projects who would like to know more about how the phenomenon of offshore/onsite coordination, that emerged in the nineties, can be effectively applied towards realizing the promise of SOA . Offshore/onsite partnerships rightly managed, with an awareness of the pitfalls and the correct set of mutual expectations established early in the project cycle, help considerably in realizing these projects, be it a full scale enterprise adoption, or a series of small iterative steps towards increasing reuse of technical assets.
Introduction: SOA – the familiar, new methodology
The concept of using offshore resources towards implementing IT solutions has been increasingly adopted by large and medium enterprises during the past two decades. In the early eighties, large monolithic systems that demanded coding at the client site required a model where technologists from overseas worked on the system performing tasks on a time and material basis under day-to-day supervision. The advent of distributed computing in the nineties, larger and improved connectivity through public and private channels, allowed a gradual shift towards a model where certain parts of IT projects were executed by the service provider in foreign locations. India is by far today the world's largest offshore provider of IT services to enterprise clients in North America and Europe. Other locations that offer such services are South America, the Eastern bloc, Northern Ireland and China.
Service providers in these locations; who were in the past and even today primarily chosen because of their cost benefits, are moving up the ladder in terms of developing larger and more sophisticated delivery skills. They offer a variety of programming language skills and are adept in the configuration and use of products from most major product manufacturers. Most of them practice good testing procedures with some going so far as to build environments that duplicate the client's onsite environment. All of this permits finite parts of the project to be executed in part overseas under fixed prices and adhering to mutually agreed service level agreements, as opposed to older tightly controlled time and material model. Adoption of standards facilitated such delegation.
Thinking of Service-oriented Architecture (SOA) as a methodology of implementing IT solutions, rather than a technology, allows significant benefits to an enterprise that seeks to adapt to change. The concepts and designs behind SOA are not new, they are derived from distributed n-tier systems that have been adopted and are functioning well in most large enterprises all over the world. The nature of SOA mimics the model of offshore development where services are provided on demand for finite discrete parts of the whole. These units of service are atomic, created as single reusable units of logic that can be combined when required to fulfill business functionality. Therefore the model of constructing such units in offshore locations, away from the client environment, within tightly defined parameters of construction and acceptance, mirrors the eventual use of these independent units in a business model. Further adoption of SOA is almost always through an iterative process that gradually replaces existing tightly bound applications. These iterations are mapped to the business priorities and are created under the discipline and standards that are first created in a plan that governs the enterprise architecture.
This iterative approach facilitates incremental knowledge transfer. The understanding and familiarity of the client environment is necessary for a successful outsourced implementation can thus be achieved gradually and improve with the delivery of each component.
This paper examines the following topics that when better understood, studied and applied with respect to the enterprise's individual needs could yield significant business benefits in terms of cost and speed of implementation of a service-oriented solution.
- Overview of offshore/onsite model
- What remains Onsite?
- What goes offshore?
- Mapping Onsite to Offshore
- Criteria for selection of an SOA Partner
Overview of the Offshore/Onsite IT development model
The term offshore in this paper refers to development conducted in a different geographical location, usually another country from where the principal hubs of the IT structure are designed, hitherto developed, maintained and run to provide the enterprise with its IT needs. These lines are blurry in the emerging one world model where geographical distinctions cease to exist in consuming and providing an enterprise's IT needs. However, for purposes of better examining a separation of work, we will in this paper adhere to the slightly dated scenario where service providers and consumers are separated by one of the seven seas, disparate cultures, and perhaps a less than complete native understanding of each others requirements and capability.
The term onsite, in this paper, refers to a quintessential concept of one hub of IT activity where knowledge is deemed to reside, where the business needs are first seen and communicated to analysts and in turn designers who create the solutions, deliver them and maintain them. As we know, this notion is also rapidly disappearing in a world without barriers, where essential knowledge and execution is by intent dispersed, where consumers and providers of an enterprise's products and needs are scattered across the planet.
The figure below describes a successful model adopted by us (THBS) with a large client in Europe with whom a very successful offshore/onsite relationship has been created over a few years. In the diagram, 'THBS onsite' refers to the activities performed by the provider's (in this case THBS) resources placed onsite who work in conjunction with the resources from the customer's IT team while 'THBS Offshore' refers to the activities performed by the provider's resources offshore working from the provider's premises.
What remains onsite?
Service oriented architecture blends beautifully with the reality of a dispersed mix of consumers and providers, residing together and separately, in fact in a mobile and dynamic world where these ingredients that sustain a business, shift at will. The backbone of SOA is the internet and we all know only too well where this is now spread and will continue to spread at a rate of adoption that is unprecedented in the acceptance of technology.
However, one of the tenets of SOA and indeed most enterprise-wide IT spread across firewalls is governance, centralized governance. This applies in the separation of tasks between onsite and offshore. The enterprise architecture that governs the enterprise in terms of standards, design and task allocation, should be constructed onsite through discussion and interaction with those providing a roadmap of the business needs. This top-down approach is essential to defining and creating an SOA, where redundancy of services is minimized through gradually increasing integration and deployment of components that perform one or a given set of functionalities.
The level of granularity required in construction of such components is therefore best understood at the hub of activity, though of course this should not be confused with the traditional hub and spoke model of integration, which SOA is not. Hence, we can safely suggest the creation of the enterprise architecture is best done onsite, though offshore resources and the potential partner who will implement such services as well as perhaps maintain them can and should be involved as early as possible to understand the approach.
A preliminary step before determining the actual components to be built is the detailed study and documentation of the existing applications and their use. This step is required to avoid application bloat i.e. creating different applications to perform similar functionality that can be provided through SOA. This exercise again has to be done onsite, since information is often held in people's heads and needs to be brought into a repository. Such a repository, if it at all exists, is rarely current and complete. Hence a review of existing assets and their use is highly desirable before the SOA build starts.
The next level of activity often involves determination of the sequence of activities. This is effectively a selection of applications, legacy or to be built, that should be considered first to be “SOAized” (since the term SOA is now approaching dictionary status as a noun and verb). In fact, in a lighter vein, the only thing certain in the life of IT assets, just as death and taxes to humans, is change and more change. SOA is adopted as a methodology that from inception creates an IT asset, which acknowledges that change is a given and like the Ninja Turtle, thrives in its mutant nature. The sequence of applications or parts thereof that are SOAized is therefore relevant only in satisfying speed of response in terms of business urgency. The eventual solution, actually a misnomer, because it will continuously evolve, will provide that all IT assets that have the potential of reuse will be made available for reuse, through an SOA. However, since such an effort is usually spread over a few years, and perhaps ongoing; the determination of what gets done first is a decision best made onsite by consultation between the business owners and the onsite analysts. The partner or overseas provider may, if required, facilitate such communication by providing models that facilitate such decisions, but the decision is best taken onsite and primarily by the enterprise's management.
Steps in going offshore
The third level of activity is often associated with actually implementing part of the SOA. These phases of implementation as determined above can be executed through traditional division of labor, adopted in other offshore/onsite combinations similar to the model described above in Fig. High Level Design (HLD) that maps the business requirements into the executable logic is best-conducted onsite to start with, to facilitate the required communication between the designers and the analysts. The offshore partner who will execute the coding should be given ownership of this element to preserve accountability and sign off the design by the client as a pre-requisite to start the subsequent steps of Low Level Design, Build, Test and Deployment.
What goes offshore?
Quite simply, the answer should be ‘everything else’.
However this ideal state and it is an ideal state, with numerous and overwhelming benefits as detailed in the benefits section below, is not reachable instantly. Neither is it a Utopian unreachable goal, but rather a progressive flow that achieves increasing creation and deployment of an offshore environment.
The offshore model, successful in many types of IT projects, is particularly well suited towards SOA adoption. While building SOA, the work involved relates to discrete pieces of activity that will be eventually autonomous and therefore separately built. The integration of these functions in the SOA environment is achieved through logic that is not hard-coded. Hence traditional issues associated with APIs are largely eliminated. The messaging invokes the use of the asset. This means assets can be well constructed separately and at different times under common standards, discovered progressively for use when ready, by publishing their description of services in the repository for internal or external use, within or outside firewalls.
The first step in the creation of the service is often defining the functionality exposed in the service contract. This allows comparison with other existing service contracts to avoid replication of assets.
This exercise requires good WSDL (Web services description language) skills and an understanding of standards that is often not found onsite within traditional IT environments maintained by the client. These skills, like the IT assets they build in the SOA, are reusable and hence better maintained offshore to facilitate reuse by the service provider or partner responsible for the build.
The second step is the actual build. Since SOA requires extensive use of XML, including an understanding of the XML tools and SOAP messaging, this is again best done offshore where such skills are often taught and maintained across the service provider's IT resource base. While there are many tools to generate XML, a judicious study of these tools and understanding of their capability, restrictions and sometimes lack of ability to coexist with other tools in code development done elsewhere is an aspect that should be considered. Such review can be done through the governance procedures that are conducted onsite while the actual use of these tools can be effectively conducted offshore.
Mapping Onsite to Offshore
The third step is testing. The beauty of SOA is that functionality will be deployed through existing private or public information highways. Therefore, realistic testing can be done without the need to construct a dedicated integration testing environment with risk of API's malfunctioning at the last moment (that all of us are familiar with), after release dates are promised to an eager business audience that is impatient for release and unwilling to accept callbacks. The applications that are SOAized can be tested quietly and effectively through similar media and environment that they will effectively be deployed in, since the logic for their use and discovery lies in the message that evokes them.
The final step is deployment. This activity is made easier by various products. These products provide built in features required in SOA that would otherwise have to be laboriously built. Message transformation, fault handling, reliable message delivery, appropriate routing to the correct endpoints are often included under the product category called Enterprise Service Buses or ESB. The selection of the most suitable bus could be done onsite, by the client, with the service provider acting in an advisory capacity, under the primary governance structure that is in place when enterprise architecture standards are drawn up. Configuration and deployment of these buses could be done offshore.
Mapping Onsite to Offshore
Project coordination, i.e. the synchronization of the different parts of the project conducted offshore and onsite is now a science. Like all sciences, to be practiced effectively, some considerations that are more in the nature of an art, have to be taken into account. Chief amongst these, are the long associated human issues that have to be acknowledged, patiently managed and overcome with the diverse cultures, not only in terms of ethnicity but also in terms of their role in the organisation. SOA requires an unusually high level of interaction between the business and IT. The business, according to our earlier definition, remains “onsite”. Hence there must be an ongoing interaction onsite between the supplier of these services and the users, to make sure the services do meet the functionality required by the changing business. This is done by providing the right level of granularity in design, so composition to meet change can be achieved without having to break up prior designed components. Granularity comes at a cost of processing overhead that in turn could erode performance to unacceptable levels and result in irate business users. Hence, the communication with the user community is to be closely maintained and the lessons learnt transferred to the ongoing builds that are the hallmark of an iterative and successful SOA adoption.
They may be classified into the following categories that may be addressed holistically when drafting governance and individually, through a series of steps specific to each.
Temptations and Hurdles
Considering the change in how IT budgets are reviewed in terms of business benefits; there is sometimes an overwhelming compulsion to urgently create what is termed as a “False SOA”. The false SOA has some or all of the following characteristics:
A. An attempt to provide web services to expose legacy applications that contain ill- separated business logic, parts of which may not be relevant to a user and thereby, do not provide an efficient means of execution when deployed outside their existing environment.
B. An attempt to expose services without considering the impact of processing overhead as a result of discovering them through content heavy messaging. In an SOA, all parts of the enterprise do not have to be exposed. Traditional processes such as methods, routines and functions all of which support an RPC like communication do not have to be eliminated, provided, their use is not likely to be requested outside their existing area of deployment. Similarly, if processing overhead is accepted, capacity planning is a parallel activity that is required with regard to the infrastructure as a whole.
C. Neglecting to factor in security requirements that now take deeper significance as services hitherto not accessible or protected through domain rights or similar localized security measures, now have to be validated at an enterprise level.
D. By far, one of the greatest temptations and one of the most harmful could be in not adopting a uniform set of standards in the construction of the SOA at all levels from code to messaging or in service descriptions. All players must be educated in the standards that are adopted by the enterprise and preferably these must be the same as those adopted by the trading partners of the enterprise, who will eventually access and use some of these services in a model of electronic commerce. Communication between business partners without human intervention is no longer a choice but often mandated by clients and vendors with whom the enterprise does business.
E. Attempting too much too quickly. SOAization is not a big bang. As stressed before, it is highly recommended that it be implemented in bits across an enterprise, evaluated and expanded upon, all under the governance of a carefully thought corporate strategy.
A. Resources: Since languages such as XML, in its various flavors and the data formats are now to be created in human readable form through metadata, the skill-set required for a large-scale implementation may not reside within the enterprise or within its traditional service providers. SOA providers are usually niche companies that understand the middleware environment intimately and have taken a proactive step in training their resources at all levels to “think XML”.
B. Individual needs: An enterprise that is spread out, is the logical beneficiary of an SOA model in terms of application reuse. Such an enterprise usually faces resistance from legacy users accustomed to specific user interfaces and perhaps even a set of functionalities. Some of these functionalities might not be core to the enterprise's business ability and even erode its agility, meaning its need to respond to customer requests for change in a timely manner. A balance has to be worked out at the outset, that studies what can be SOAized and what needs to remain at a local level.
Benefits of Partnerships
The cost benefit of an SOA is often difficult to quantify. An SOA does not provide a new set of functionalities. It provides easier access to existing ones and the structure to develop and satisfy new requirements at lesser cost and faster. The question may then be asked whether the SOA model is a luxury and whether the enterprise can survive and continue its business without the need for such a mammoth overhaul. The answer lies in understanding the cost of business that is lost, as a result of user needs not being addressed within the corporate agility that an SOA model permits. The answer also lies in the danger, the very real danger of being left out by business partners who require an SOA model to conduct their relationships such as facilitated by automated ‘Get Metadata’ requests that have to be consistently sent back and forth between service providers and service requestors, prior to communication. This could manifest itself in an unpleasant and unnoticed event such as sending a customer invoice that is rejected simply because of being unable to comply with the business partner's requirements of communication that are often changed without notice but published according to acceptable discovery standards.
As can be construed from the earlier parts of this paper and summarized below, some of the benefits of involving an offshore partner to implement an SOA are:
1) Discrete parts can be constructed in parallel, in an overseas environment to speed up a migration of one or more applications depending upon the business needs and integrated in a non-disruptive manner.
2) Costs are vastly reduced and permanent fixed overhead through hiring the specialized skills required for SOA such as XML knowledge are avoided.
3) SOA construction requires the use of relatively new tools and products that are not often found within traditional IT environments and there is a scarcity of onsite providers/consultants familiar with such tools.
4) SOA migration is a long process, iterative in nature and existing personnel in IT departments who are occupied with the “here and now” issues in development and support of an existing enterprise are cleanly separated from the ongoing nature of this exercise, allowing them to focus on their “onsite” tasks.
Criteria for selection of an SOA Partner
Offshore development is a partnership, exceeding the mutual obligations of a client-provider relationship. The word “partnership” is often used without fully understanding the implications of the term, either by the client or by the vendor. Simply put, a partnership implies that a contractual understanding is merely an expression of one of the aspects of the relationship. As we say in the business, there is a “perceived contract” that far overweighs the terms of the contractual understanding, for it is simply impossible and sometimes counterproductive to describe each other’s obligations, and consequently benefits of the relationship, in terms of a contractual understanding.
Nowhere is this more important than in building SOA. This is a long drawn out process that, over years, can save the enterprise client millions of dollars and several months of elapsed time through follow-the-clock development.
Choosing and staying with the right partner
New development is typically supported by managed service contracts that guarantee agreed performance levels. Therefore the Offshore Partner (OSP) must have an attitude that displays partnership and this will be evidenced early, through his willingness to understand what is important to the business, to accept willingly that change in requirements and specifications is a welcome part of business and in fact, the very driver of the SOA movement.
The right attitude that can be checked through personal references is perhaps one of the key selection criteria. While SOA is relatively new, the core designs in the SOA space are really not that new. SOA in one form or another resembles integration. So much so that some of the integration tools in the market today claim to be SOA tools and the Enterprise Service Bus (ESB) is often deployed in an integration capacity. In itself, this is not a bad thing, for the ESB can be a very cost effective integration broker with built-in functions that address message transformation, fault handling, binding and other features that resemble a much more expensive integration product.
Expertise in Middleware, demonstrated expertise in executing projects overseas and integrating them with a high degree of success in legacy environments is therefore a skill that bodes well for an enterprise who is selecting an offshore service partner.
Another important criterion is focus. SOA, as we stated before is a platform agnostic methodology, it works in J2EE, .Net and in fact in various other heterogeneous environments. The focus of the provider must therefore be in his commitment and skill base to the methodology as opposed to a broad line service provider. This is a specialized niche field requiring specialized niche experts who are required to keep abreast of the developments in the space and share their understanding with the enterprise client.
Choose a specialist, keep charge of the reins, for you know your business better than anyone and tell the specialist what you want to achieve. Together set in the road map for implementation and hold the service provider responsible to reach the agreed milestones of progress.