OUTSOURCING SOFTWARE APPLICATIONS DEVELOPMENT

26

Transcript of OUTSOURCING SOFTWARE APPLICATIONS DEVELOPMENT

OUTSOURCING SOFTWAREAPPLICATIONS DEVELOPMENT:ISSUES, IMPLICATIONS,AND IMPACTRasha Abbas Philip DartEd Kazmierczak Fergus O'BrienTechnical Report 97/27December 1997Department of Computer ScienceThe University of MelbourneParkville 3052, Australia

OUTSOURCING SOFTWARE APPLICATIONSDEVELOPMENT: ISSUES, IMPLICATIONS, ANDIMPACTRasha AbbasEricsson Australia723 Swanston StCarlton, 3053Australia+613 9282 [email protected] Philip DartComputer ScienceThe University Of MelbourneParkville 3052Australia+613 9344 [email protected] KazmierczakComputer ScienceThe University Of MelbourneParkville 3052Australia+613 9344 [email protected] Fergus O'BrienSERC723 Swanston StCarlton 3053Australia+613 9282 [email protected]

ABSTRACTInformation technology has become one of the fastest-growing, fastest-changingmarkets in the world. The high demand on software applications and ser-vices is forcing more companies to turn to outsourcing to meet their customerneeds. We de�ne software outsourcing as contracting out software services,operations, products or development of applications.This paper presents an overview of outsourcing in software development.In particular, we attempt to isolate some of the motivating factors for out-sourcing software development, we examine the issues and concerns whicharise from outsourcing software development and discuss their implications.Both the technical and management aspects of these issues are addressed.Further, the impact of outsourcing on software development processes is dis-cussed. We conclude by drawing attention to the issues and technical factorswhich in uence the outsourcing decision.

Contents1 Introduction 11.1 Software Outsourcing . . . . . . . . . . . . . . . . . . . . . . 11.2 Facets of Software Outsourcing . . . . . . . . . . . . . . . . . 21.3 Aims of the Paper . . . . . . . . . . . . . . . . . . . . . . . . 32 Drivers for Outsourcing 42.1 Globalisation and Global Software Outsourcing . . . . . . . . 42.2 Specialisation and Software Outsourcing . . . . . . . . . . . . 42.3 Key Bene�ts Of Outsourcing . . . . . . . . . . . . . . . . . . 43 Application Development Outsourcing 53.1 Outsourcing Components Of the Software Application . . . . 63.2 Outsourcing Phases of Application Development . . . . . . . 63.3 Degree and Category of Outsourcing . . . . . . . . . . . . . . 64 Software Development Outsourcing: Issues and Impact 84.1 Issues in Software Development Outsourcing . . . . . . . . . . 84.2 Impact Of Outsourcing on Software Development . . . . . . . 124.3 The Outsourcing Decision . . . . . . . . . . . . . . . . . . . . 165 Summary and Further Work 17

i

List of Figures1 Facets of software outsourcing. . . . . . . . . . . . . . . . . . 22 Contracting out part of a software system. . . . . . . . . . . . 53 Examples of development tasks. . . . . . . . . . . . . . . . . . 74 Focus on core business. . . . . . . . . . . . . . . . . . . . . . . 85 Impact of outsourcing on software development models. . . . 126 Decision tree for outsourcing. . . . . . . . . . . . . . . . . . . 177 Analysing the outsourcing decision. . . . . . . . . . . . . . . . 18

ii

List of Tables1 Issues in Outsourcing. . . . . . . . . . . . . . . . . . . . . . . 9

iii

1 IntroductionInformation technology (IT) has become one of the fastest-growing, fastest-changing markets in the world. The demand to produce new or specialisedsoftware for specialised markets, business, government or domestic use isever increasing. For example the telecommunications industry, which wasfounded on electro-mechanical genius, now places more than 80% of thevalue of a switch in its software [20]. In addition, the demand for newtelecommunications services, primarily based on software, or supported orcustomised by software, is increasing and growing more vital.However, as the scale and complexity of the marketplace continues togrow, many of the opportunities are turning into threats. Far from maintain-ing the pace of change, the industry is seeing customer needs outstrippingits ability to deliver [18]. Indeed, the need for outsourcing is driven by theinability of organisations to develop code fast enough or change their infras-tructures and sta� expertise to keep up with the changes in the informationtechnology world and the demands imposed on them.1.1 Software OutsourcingOutsourcing is a new term for an old practice and is not limited to theinformation technology world; it means contracting out work [5, 13]. Wede�ne software outsourcing as contracting out the development, planning,management, training, maintenance, or operation of software services, skills,products, or applications.Enterprises have been contracting out for as long as business have ex-isted, but what renews interest in software outsourcing and demands ourattention today is the dramatic change in scope. Software outsourcing inthe past was limited to sub-contracting and small-scale contracts. How-ever, it is becoming a multi-billion dollar global industry, and a sizeableproportion of all IT resources are spent on outsourcing. According to a U.S.International Trade Commission report, the global outsourcing market is ex-pected to reach $99 billion in revenues by 1998 [9]. As a result, vendors thatspecialise in outsourcing services or outsourcing management are growingand global and large-scale outsourcing is becoming more prevalent.Organisations are engaging in outsourcing in an attempt to meet marketdemands. More organisations are using new but not necessarily home growntools, making alliances and using external expertise to help keep up withthe development demands [13, 23].With outsourcing, organisations aim to improve qualities of softwareproducts and services, speed delivery times, and reduce costs. This isachieved through improving company focus, gaining access to the neededexpertise, sharing risks and costs, and re-using products and experiences.For the remainder of the paper, we will use the following de�nitions:1

In-house: Use of internal resources.Outsourcing: Use of external agents.Outsourcer: The party that uses the external provider for the outsourcedservice.Outsourcing vendor: The contractor or external provider delivering theoutsourcing service to the outsourcer.Collaborative software development: Use of both in-house and contractedservices to accomplish a software development task. This type of col-laborative outsourcing is also known as alliance outsourcing [16].1.2 Facets of Software OutsourcingSoftware outsourcing has many facets, but the three main ones that con-cern us here are People, Technology and Process as represented in Figure 1.Outsourcing can take place in any one of the areas of personnel, technologyor process depending on the organisation's situation and needs.Outsourcing

Process

People Technology Figure 1: Facets of software outsourcing.The outsourcing of people takes place to provide the organisation withneeded expertise. With shortages in quali�ed people, resourcing is becominga major driving factor for outsourcing. Outsourcing people also saves theorganisation from the trouble of providing the variety of work and careerpaths needed to attract and keep talented people and saves on training costsfor sta� in the rapidly changing IT industry.Process outsourcing is another facet of software outsourcing that coversany procedure or process associated with IT. This may cover, for example,outsourcing the task of auditing compliance to a standard, or outsourcingparts of the application development process. Organisations may decide tooutsource parts of the software development process in order to improve ef-�ciency and quality of their overall development process. Alternatively, the2

organisation may need to implement newly evolving processes, improve pro-cess speed and time to delivery, reduce process risk, or to follow a speci�edprocess, with speci�ed tasks, of which it has little or no experience. For ex-ample, software development for specialised requirements, such as securityor safety, requires special processes to be followed and specialised analysesto be undertaken [3, 6].New or emerging technologies are the third facet of outsourcing. To becompetitive, organisations often need to embrace a wide variety of technolo-gies. Lacking expertise or knowledge of these new technologies in-house andaiming to reduce the risk involved in investing in new technologies, organisa-tions resort to outsourcing for technology education services, identi�cationand testing of new technologies, or technology advice and support services.This gives the organisation increasing exibility and access to modern tech-nology [19]. Examples of outsourcing which are motivated by technologyare making use of cutting edge programming languages, operating systems,hardware and software platforms, emerging network technologies and spe-cialised development tools.1.3 Aims of the PaperThe increasing complexity of the IT world drives more organisations towardoutsourcing. However, the technical aspects of outsourcing software devel-opment raise some interesting problems and issues which must be addressed.Many organisations have recorded failures and disappointments because ofa lack of procedures and clarity prior to embarking on outsourcing ventures.Further, outsourcing in software development is a growing area. Theproblem is that the fear of giving too great a monopoly to the supplierwith too few ways of measuring value for money is still preventing someorganisations from making full use of outsourcing [15]. There is a need toanalyse the issues that arise with software development outsourcing and toestablish frameworks and models which allow the organisations to outsourceaspects of their software development without losing control.In this paper we look at outsourcing software development and attemptto isolate some of its motivating factors. We examine the issues which arisefrom outsourcing in software development and discuss their implications.Furthermore, we compare key management and technical decisions that in- uence outsourcing in software development. Finally we discuss the e�ectof outsourcing on current software development processes.The aim of this paper is to shed light on outsourcing software devel-opment in an attempt to identify the technical and managerial issues thatin uence outsourcing decisions.Our paper draws on experiences that have been recorded in the literatureas well as lessons drawn from outsourcing projects within Ericsson Australia.3

2 Drivers for OutsourcingIn the following sections, we discuss some of the trends and the key bene�tsof outsourcing and collaborative software development.2.1 Globalisation and Global Software OutsourcingWith the fast advances in communication, our world is becoming a globalvillage and this trend is often referred to as Globalisation. Globalisationprovides new opportunities internationally for many companies. It meansthat companies are not bound by their local expertise because internationalresources are now within reach. This trend is encouraging collaborative soft-ware development and global software outsourcing because unlike materialgoods, digital information can be transported quickly and cheaply. Softwaredevelopment tasks can be relocated to another country for their advancedtechnological expertise or for a reduction in cost over local competitors. In-deed, software programming can, and has, been outsourced to third worldcountries for a fraction of the cost of developing the product locally [13].2.2 Specialisation and Software OutsourcingMany organisations are now turning to outsourcing to help them cut costs,improve services, and focus on their core business activities [13]. This helpsorganisations concentrate on what they are good at|their core business|and leave the rest to somebody else. As the IT world is changing so fast andgrowing increasingly more complex, specialisation is becoming vital. No oneperson or organisation can capture everything in IT and then keep up withthe updates, upgrades, changes, and additions. People and organisationsneed to specialise in speci�c areas. Outsourcing tends to be coupled withspecialisation. As a party becomes specialised, work can be done moree�ciently. Rather than solving every problem from �rst principles, theyreuse solutions that have worked for them in the past. When they �nd agood solution, they use it repeatedly with di�erent customers.IT �rms have been pioneers in developing partnered relationships and fo-cused strategies, for example, Sun Microsystems focuses internal operationson small set of critical core activities and outsource nearly everything else inits value chain [16]. Alcatel has decided to buy-in Digital's computer tech-nology, rather than developing its own. The aim is to allow the company toconcentrate on its existing expertise in high-availability telecommunicationssoftware [10].2.3 Key Bene�ts Of OutsourcingInitially, outsourcing was used as a means for cutting costs. However, it wasrealised that it is not just about cutting costs, but more about improving4

services and focusing on core business activities, as well as coping with inter-nal and external demands. Market leaders in all industries are increasinglyusing outsourcing as a way to build and sustain competitive advantage [21].Outsourcing also helps organisations to improve focus, capitalise on globalopportunities and free up in-house resources for more strategic tasks. Fur-ther, outsourcing provides a means of keeping pace with changes in the ITindustry without the overhead of constantly training sta� for new technolo-gies [4].Another less obvious, yet equally important, bene�t of outsourcing is inbreaking away from an organisation's paradigm, which includes its processes,technology and personnel. Software development can be carried out bypeople that are not from the same organisation or in the same geographicallocation and consequently bring a di�erent approach to the development.Recent research indicates that crossing paradigms helps to unlock creativityand to cultivate ideas and a fresh way of looking at and doing things [12, 17].For outsourcing vendors there is a bene�t due to the economies of scale.Outsourcing vendors can reuse material for common applications and spreadtheir software development costs among a number of customers.��������������

��������������

���������������������

���������������������

������������

������������

��������

��������

����������������

����������������

����������������

������������������������������������

������������������������������������

����

����

���������� ����������

������������������������

���������������������

���������������������

������������

������������

������������������������������

������������������������������

��������

In-HouseOutsourced

Software Application

Figure 2: Contracting out part of a software system.3 Application Development OutsourcingBy application development outsourcing we mean contracting out the devel-opment of an application. It can take the form of contracting out the entireapplication, total outsourcing, or contracting out only some components ofthe development of the application, selective outsourcing . Selective out-sourcing can occur in one of two forms: outsourcing the products required5

of a software development phase or outsourcing the production of a de�nedcomponent of the software application.3.1 Outsourcing Components Of the Software ApplicationApplication component outsourcing means contracting out a component ofa software application.Figure 2 is intended to indicate the degrees of freedom in the outsourcingarrangement. The outsourcer de�nes the requirements of the component tobe outsourced as well as its interfaces or drivers. The outsourcing vendoris required to meet the requirements and communicate through the inter-faces, but may be free beyond that to adopt any paradigm or practice toful�l them. Any changes from the outsourcer or the outsourcing vendorto these requirements need to be communicated and agreed upon and maybe subject to collaborative con�guration management or collaborative riskmanagement.3.2 Outsourcing Phases of Application DevelopmentOutsourcing software development phases means contracting a vendor tocarry out one or more of the software development phases, for example,external expertise may be required during the requirements analysis, de-sign, coding, testing, or maintenance phases. More typically, organisationsoutsource the programming tasks while retaining the analysis and designphases. Note that development phases can be completely outsourced orthey can be carried out collaboratively.3.3 Degree and Category of OutsourcingOutsourcing can lie on a spectrum with contracting out the entire develop-ment at one end (total outsourcing) and outsourcing none of it at the other(total in-house).In this paper we use a simple classi�cation scheme in order to look inmore detail at the kinds of tasks which are being outsourced. Our classi�-cation scheme classi�es tasks as control tasks, specialised tasks or commontasks . Further, these tasks can be associated with the process or component(see Figure 3 for some examples of such tasks). Common tasks are tasks thatare common knowledge to people in the industry or routine tasks. Thesetasks could be resource intensive or time consuming but require less domainexperience to do them. Specialised tasks are tasks that need specialisedknowledge and high domain experience to be done e�ciently. Control tasksare the tasks that control the development process (for example project man-agement tasks) or tasks that control the application (for example access to�le system, memory access,or process spawning). Further, these tasks (com-mon, specialised, or control) may fall into or outside the core competencies6

Control Tasks

- Project Management- Formal Reviews

- Change RequestSignatory

Control Tasks

- Access to Memory

- Education & Training

Specialised TasksSpecialised Tasks

- Application Design - Data & Information

- Security Manager

- Legacy Transformation

PROCESS PRODUCT

Common TasksCommon Tasks

- Programming - Glue Code

- Test Plans Management

Figure 3: Examples of development tasks.of the organisation. Core competencies are critical activities, skill services,and knowledge bases that create continuous added value and competitiveadvantage to the organisation and distinguish it from its competitors [5].The case studies in [5, 11, 15, 22] seem to indicate that organisations areoutsourcing mainly common tasks and some specialised tasks that are notpart of their core strategic competencies.Specialised tasks which are outsourced could be highly critical and im-portant but need very specialised resources that the outsourcer is not inter-ested in acquiring or cannot acquire in the needed time frame. An exampleof outsourced specialised tasks is software packages for dealing with taxa-tion. These are essential to organisations but are probably only needed oncea year, but if they were developed in-house then they would need highly spe-cialised personnel to be allocated all year around to monitor and maintainchanges in taxation law. Vendors, typically relieve organisations of thisrequirement.Organisations also outsource some of their core tasks if they don't havethe needed expertise internally. In this case the outsourcing relationship iseither a partnership or a strongly coupled relationship with the intentionof learning and gaining the experience internally. Figure 4 depicts the taskcategories and the idea of focusing on core business while letting others doless creative tasks or very specialised tasks requiring expertise not worthdeveloping in-house. 7

����������������������������������������������������������������

����������������������������������������������������������������

Specialised TasksNot part of desired

competencies

Common TasksNot part of core

competencies

Specialised Tasks

In-House Development Outsourced Tasks

Control Tasks

Core competencies

Common Tasks

Core Competency (Expertise not available in-house)Figure 4: Focus on core business.4 Software Development Outsourcing: Issues andImpact4.1 Issues in Software Development OutsourcingOutsourcing software application development raises some technical andmanagerial issues which are di�erent from the issues associated with purein-house development. This causes enough concern in some organisations toprevent them from taking full advantage of the opportunities and advantageso�ered by outsourcing.There is a need to examine these issues as a �rst step towards �ndingways of resolving them. Table 1 lists some of the management and technicalissues which in uence the nature of outsourcing in software development. Itis important to note that management and technical issues in outsourcingare strongly interdependent. We discuss some of these issues below.ControlThis covers control over the software engineering process and controlover the �nal product. Control over the software development processis essential to maintaining control over the quality and other desirableproperties of the product. There is a danger that by outsourcing aproduct, and consequently surrendering some control over its devel-opment, the outsourcer can no longer guarantee properties such assecurity, quality and con�dentiality [11, 15]. Agreements and contract8

Management TechnicalOutsourcing decision Trust (safety, security,(who, when) reliability)Vendor capacity Vendor capabilityand availabilityOutsourcing scale/size Outsourcing scale/size(total/selective) (total/selective)Contract Criticality/ControlOwnership/IP/ System decompositionLocation & InterfaceFrequency of use ParadigmsLiability/Responsibility TechnologyCost Process visibilityRelationship with vendor Conformance measures/(strategic/ short-term) QualityResourcing System evolvability& Re-usabilityRisk Management Veri�cation & ValidationPrivacy Con�gurationManagementManaging the process/ MaintenanceCoordinating vendorsTable 1: Issues in Outsourcing.terms need to clearly address this issue but additional assurance maybe required by the outsourcer that targets for system properties, suchas safety, are met.Further, issues of control need to be raised when decomposing thesystem into submodules and identifying what aspects of the systemcan be outsourced. Critical aspects of the system along with aspectsthat give them market advantage and future control over the �nalproduct need to be kept in house or protected in the contract. Duringsystem analysis and design, these critical and controlling aspects of thesystem need to be identi�ed, classi�ed, and agged for management.Responsibilities and ownershipThe duties, responsibilities and liabilities of each of the parties in anoutsourcing venture and the ownership of the �nal products have tobe clearly stated in the contract. Further, ownership of intermediateproducts, such as designs, scenarios or test data needs to be consid-ered. This is especially important when these products of the software9

engineering process are needed by the outsourcer for ongoing systemmaintenance or evolution.Any outsourcing agreement for cooperative software development needsto be exible enough to allow room for changes, yet strong enough toprotect all parties involved. The need for exibility is a consequenceof the changing nature of projects, for example, there may be changesto requirements, changes to schedules or changes to designs once col-laborative development is underway.Finally, information may need to be exchanged between the vendor andthe outsourcer which in turn may raise privacy and security concerns.Managing and coordinating outsourcing vendorsMany risks in software development are associated with the diversityof the participants and activities within the software life-cycle. Theimpact of outsourcing on these risks can be variable [13]. The issueshere are:� to ensure the availability and capacity of the vendor to carry outthe collaborative development at the critical times in the overallproject plan;� to plan dependencies in the project plan;� to monitor the status of the project, and all of the outsourcedcomponents, so that adjustments to the project plan can be madeor, if needed, corrective action can be taken.In addition to the coordination and monitoring e�orts needed, thepotential diversity of technology platforms, architectures and develop-ment paradigms can raise issues of compatibility and portability acrossthe project. The problem here is to ensure that the various compo-nents are compatible and can be integrated into the overall system.Development paradigmsIssues of compatibility, integration and communication across devel-opment paradigms need to considered. This is especially critical ifthe development paradigms used by the outsourcer and the vendordi�er. The outsourcer and the vendor may use di�erent software en-gineering processes or di�erent analysis and design methodologies andconsequently di�erent development tools.The outsourcer must ensure that any standards or processes whichthey are required to follow, perhaps as part of the outsourcer's con-tract, are also followed by the vendor.If di�erent analysis and design methods are used then, at the veryleast, there is a risk of confusion in communication between outsourcer10

and vendor. If the methods are supported by di�erent tool sets thenthere may well be a problem when exchanging documents, code, soft-ware designs and other project related materials. In general, strategiesfor integrating outsourced products, which have been developed usingmethods and technologies di�erent to the outsourcer's methods andtechnologies may need to be put in place, for example, a strategy forjoint con�guration management (see section 4.2) which takes into ac-count di�erent con�guration management tools.Trust and assuranceProjects may require trusted components, for example, a project mayrequire a secure or a safety related component. If such a component isoutsourced then the outsourcer may wish to seek assurance that thecomponent meets its safety or security requirements. The problem forthe outsourcer is to obtain assurance that the outsourced componentmeets the required level of trustworthiness.The problem for both parties is to gain the necessary assurance thatthe system as a whole meets its safety or security requirements. Atechnical issue is that even if the outsourced component meets itssafety or security requirements the system as a whole may fail to meetits safety or security requirements. The reason for this is that systemproperties, like safety or security, are properties of the whole systemand, in general, not just components.System decomposition, integration and interfacesIf the development of subsystems is to be outsourced (component out-sourcing), then the criteria for decomposing the system will be di�erentto total in-house development. The organisation of the architecturalcomponents of the system and the interfaces between them need tobe carefully considered to minimize dependencies and side-e�ects ofchange. However, there will always be the need to handle change.One of the problems that may need to be faced is that as the projectprogresses the interfaces will change. This may be as a result of chang-ing client requirements or it may result from a better understandingof the problem to be solved by the outsourcer, the vendor or both.Any subsystem which is outsourced will have to be integrated into thewhole at a later stage. There is a need to ensure that the subsys-tem behaviour meets its requirements after integration into the wholesystem. 11

Outsourcer

- Bonding

- Monitoring

- Blending of Efforts,

- Benchmarks

Outsourcing Relationship Outsourcing Vendor

- Vendor selection and capacity- Project plan- Development processes & paradigms- Identify core strategic specialities- Resolve Ownership, IP, and liabilities

- Lines of authority for accepting changes

- change impact and propagation procedures

- Assurance that components meets technicaland operational requirements

- Components function correctly withintheir intended operating environment

- Relationship- Control- Withdrawal from outsourcing decision- Skills & capacity of vendor- Delays on delivery time- Changing requirements & environment- Privacy and security

PLANNING

CONFIGURATION MANAGEMENT

- Availability- Project plan- Development processes & paradigms- Specialities and expertise needed- Resolve Ownership, IP, and liabilities

- change impact and propagation procedures

- Lines of authority for accepting changes

- Components function correctly

- Availability of required skills

- Changing requirements & environment

- Penalties

- Withdrawal of outsourcer

PLANNING

CONFIGURATION MANAGEMENT

VERIFICATION & VALIDATION

RISK MANAGEMENT

VERIFICATION & VALIDATION

RISK MANAGEMENT

Instigate and ManageOutsourcing Relationship

Figure 5: Impact of outsourcing on software development models.4.2 Impact Of Outsourcing on Software DevelopmentIn section 4.1 we have tried to identify some of the issues associated withoutsourcing software development. In this section we examine the impactthat those issues have on software engineering processes. We can identify atleast the following areas which will be in uenced by outsourcing:� project planning;� ongoing project management;� con�guration management;� veri�cation and validation;� risk management;These key activities have been summarised in Figure 5.The issues which in uence project planning are:� the need to evaluate, choose and negotiate with potential outsourcingvendors; 12

� the need to schedule, monitor and integrate outsourced tasks;� the nature of the outsourcing relationship;� the need to plan and budget for joint software engineering activities,for example, joint con�guration management, joint validation and ver-i�cation or team risk management [8, 7].In theory organisations can decide to outsource a product or serviceat any time in the development process. Whether this is feasible, or in-deed practical, remains to be seen. At the very least there are a numberof planning activities which must take place when outsourcing parts of thedevelopment. For outsourcing, organisations also need to identify their corestrategic specialties and decide which aspects of the project can be out-sourced and which aspects of the project are best kept in-house. This maybe a matter of organisational policy, in which case there may be little impacton project planning, or it may be decided on a case by case basis in whichcase the decision process will need to be scheduled.The nature of relationships with vendors and their availability at thecritical times in projects in uences planning. If the decision has been madeto outsource parts of the development then it is critical that vendors with therequired expertise are available and have the capacity to do the work at thecritical times in the project plan. In the absence of a strategic alliance witha vendor who can satisfy the project requirements, the outsourcer may needto �nd and evaluate vendors who could meet the requirements. This is bestdealt with early in the project because the time involved in establishing theoutsourcing agreement, the availability of resources and the timely deliveryof products will need to be taken into account in the overall project plan. Wedo not wish to suggest that establishing the project plan takes precedenceand that �nding a developer to carry out the required tasks is a secondaryconsideration, but rather that the outsourcing decision depends on both theproject plan and the availability of developers at the critical times.In order for the outsourcer to exercise a level of control over the de-velopment of the outsourced components, then bonding, monitoring andbenchmarking need to be continuously practiced. [16]. Bonding , in thecontext of project management, refers to e�orts of:� establishing the relationship with the outsourcing vendor;� de�ning the communication and control channels;� structuring the internal personnel to oversee the outsourcing work;� making the ongoing adjustments in the outsourcing relationship.Monitoring e�orts, in the context of ongoing project management, is di-rected towards verifying the process controls and ensuring standard practicesacross the board [16]. In practice this could mean ensuring,13

� compliance with standards;� that veri�cation and validation processes for the outsourced compo-nents meet the project standards;� that proper con�guration management processes are being followed;� that proper risk management procedures are being followed;� that there is su�cient progress against the overall project plan.Further, the outsourcing vendors' performance, expertise, cost, and qual-ity need to be continuously benchmarked against competitors. These bench-mark measures need to be agreed on and re ected in the contract.Con�gurationmanagement deals with the tracking and control of changesto evolving components [14, 1]. From the project management perspective,proper con�guration management allows the current status of componentsto be determined and used to coordinate the project planning and imple-mentation activities [1]. From the technical perspective, con�guration man-agement allows us to control and coordinate changes, determine the impactof those changes and propagate those changes to the required items.In an outsourcing situation, con�guration items will have to be sharedbetween the outsourcer and the outsourcing vendor. The problem is thatthe changing nature of projects means that the con�guration items sharedbetween outsourcer and outsourcing vendor are subject to change and suchchange needs to be controlled across all parties. Both the outsourcer and theoutsourcing vendor may have established con�guration management proce-dures in place, but once con�guration items are shared then another layerof con�guration management may need to be put in place to de�ne:� baselines for items which need to be shared between outsourcer andoutsourcing vendor;� proper channels of communication;� proper lines of authority for change control;� change impact and propagation procedures.Another area where the outsourcing decision has an impact is in thearea of veri�cation and validation. Once a product has been outsourcedthen the outsourcer may require assurance that the product actually meetsits technical and operational speci�cations. Note that this is a di�erentrequirement from any service agreements or contracts which may be in place.In the case of outsourcing a system component, the outsourcer needsassurance that the component not only functions correctly, but that it func-tions correctly within its intended operating environment, and this couldmean taking into account such non-functional factors as:14

� system performance;� system useability;� system safety or reliability;� system security.Verifying that a system exhibits these properties and meets its require-ments is already a di�cult task. In the presence of outsourcing, the veri�-cation and validation tasks are likely to be more di�cult because of factorssuch as di�erent veri�cation and validation practices across organisations.Consequently, the impact of outsourcing on veri�cation and validation prac-tices is likely to be in the degree of di�culty rather than in the practicesthemselves.Outsourcing involves both business risk and project management risk.Some of the business risks include the following.� Establishing and maintaining the relationships required for successfuloutsourcing can be complex and resource intensive [13].� losing control over key aspects of the system can cause the outsourcerto become strategically dependent on the outsourcing vendor.� There are substantial impediments to withdrawing from the outsourc-ing decision, once it has been made and implemented.Some of the project risks which are related to outsourcing are the following.� The required skills and abilities needed to do the job may not beavailable or accessible.� The outsourcing vendors lack the capacity to deliver the outsourcedproducts in accordance with overall project plan.� Delays when coordinating multiple vendors will have high consequences,especially if the work or product is on a critical path with high depen-dencies.� The risks associated with integrating potentially diverse technologiesinto a working overall system.� Changing requirements and environments which may impact on thecost, delivery times, and quality of work.This along with the known risks of any software development project makesrecognising risk and managing risk more important. Further, well knownprocess models which take project risk into account, for example Boehm'sSpiral [2] model, may not be suitable in a multi-vendor situation. Proceduresfor managing risk in the context of numerous stakeholders, such as the SEI'sTeam Risk management procedures, may take on greater importance.15

4.3 The Outsourcing DecisionOutsourcing o�ers organisations new opportunities as well as new challenges.We believe that a structured approach to making the outsourcing decisionwill be bene�cial for taking into account the numerous factors which in u-ence the success or otherwise of an outsourcing venture.We have examined some of the issues involved in outsourcing and triedto describe their impact on software engineering processes. The outsourcingdecision is usually made in a broader context which we outline below.� Organisation's situationOrganisations need to analyse their current situation to identify prob-lem areas. They need to evaluate the organisation's position amongcompetitors and the organisation's strengths and weaknesses. Theyneed to identify the organisation's core business, skills and competen-cies. Further, the organisation needs to evaluate the available internaland external alternatives and with respect to the people, processes andtechnology required for the project.� Drivers to outsourcingA key point in analysing the outsourcing decision is an assessmentof the organisation's drivers to outsourcing. This should guide theselection and the relationship with the outsourcing vendor. This wouldalso guide the degree of outsourcing (a scale ranging from total in-house, selective outsourcing, or total outsourcing).� Outsourcing issuesIssues raised in this paper along with other issues speci�c to the organ-isation needs to be evaluated and resolved. We have tried to show thatthere are a number of technical factors which need to be considered inaddition to the managerial and economic factors usually considered.A decision tree can be used to model the di�erent alternatives, and tohelp in analysing and evaluating the di�erent possibilities. An exam-ple decision tree for the scale of outsourcing has been given in Figure 6.It shows some of the technical factors needed as input for making theoutsourcing decision.� Making the decisionWith the outsourcing decision, the organisation needs to decide what isbeing outsourced, who the potential vendors are, when the proper timeto outsource will be, and the degree of outsourcing (a scale rangingfrom total in-house, selective outsourcing, or total outsourcing). Afterassessing the situation, identifying the drivers and evaluating all issues,organisations can make a decision whether to go with outsourcing. As16

ApplicationDevelopment

- Technical peoplesupport

- Market survey- Feasibility study

- Time- Technology- Control- Trust - Safety

- Expertise

- Cost

Alternative(points inside reflecttechnical inputs needed)

Uncertain

core

noncore

- Expertise- Interest- Technology- Time- Cost

In-house

In-house

Selective Outsourcing

Total Outsourcing

Selective OutsourcingStrongly Coupled

Figure 6: Decision tree for outsourcing.a �nal criteria, organisations need to evaluate whether: outsourcing�ts the organisation's strategy and situation, the internal alternativeshave been evaluated, there are outsourcing vendors available that meetthe requirements and criteria, and outsourcing achieve the goals thatis motivating and driving the organisation to outsource.Some of the issues, drivers to outsourcing, and key questions that need tobe addressed before taking the decision to outsource have been summarisedin Figure 7. The questions and issues in Figure 7 are meant to serve asa guide, and each organisation may need to come up with its own set ofcriteria for the �nal decision on outsourcing.5 Summary and Further WorkOutsourcing brings along new opportunities and challenges. Through out-sourcing, organisations aim to focus on core business, improve qualities ofsoftware products and services, speed delivery times, and reduce costs. Thisis achieved through improving company focus, gaining access to the neededexpertise and technologies, improving processes, sharing risks and costs, andre-using products and experiences.Outsourcing, however, brings along key technical and management is-sues that need to be addressed and resolved. Further work is still neededto resolve issues such as paradigms, boundaries, speci�cations, design, in-terfaces, risk management, measurements, and outsourcing project manage-ment. Organisations need to adapt their process models to accommodate theoutsourcing activities. This along with the large number of options availablemakes taking the outsourcing decisions more complex. It is important to as-sess the organisation's situation and drivers to outsourcing and address the17

Company’s Situation

* How strong is the company’scompetitive position?

* What are the company’s strengths,weaknesses, opportunities, and threats?

* What are the company’s keycompetencies?

* How far does change is the industryaffect the company’s business?

* Which company’s are in the strongest/weakest competitive positions?

*What are the industry’s dominant traits?

Key Factors

* Cost saving* Time(meeting deadlines, first to market,..)* Human Resources and expertise

* Competition* Globalisation* Specialisation and focus

* Alliances and partenrships* Technology* Process* Capability development

Key Questions

* Does outsourcing have good fit with

* Is there vendor/s that meet company

* Have all internal alternatives beenevaluated?

company’s strategy and situation?

requirements?

* Is it feasible?

* Will it improve performance/ time/ cost?

* Will it help build a copetitive advantage?

Key Criteria

Outsourcing Issues

* Capacity, availability, capability ofoutsourcing vendors* Scale/size of outsourcing (total/selective)* Vendor Relationship(strategic/ short term)

* Change, CM, and evolvability* Performance measures* Maintenance & system maintenabilityreports, configuration mangement)* Process visibility (documentation,* Development paradigms* System decomposition and interfaces

development tools, programming lang.)* Technology (Platform, OS,* Trust/ assurance

* Contract and conformance* Ownership, IP, & location of source* Frequency of use* Bonding, monitoring, and coordinationefforts and resources* Liability/ responsibility* Flexibility and control* Cost

Management

Technical

Drivers to Outsourcing

[ Yes/No, Who, When, What, Degree]Taking The Decision

Figure 7: Analysing the outsourcing decision.issues and risks before taking the decision. A Software Development Out-sourcing Framework could be developed to assist those making outsourcingdecisions in systematically working through the issues and options.Further, the increased importance of system decomposition and integra-tion on outsourcing development projects, together with the increased po-tential for multi-paradigm development on these projects, invites researchinto technical developments to support for outsourcing. Such research wouldneed to address issues such as design methodologies and tools that supportmultiple paradigms, or distributed con�guration management systems thatcan be tailored to support di�erent development practices at di�erent dis-tributed sites.Finally, our examination of some of the issues related to software develop-ment outsourcing has led us to the position that management of outsourcingprojects and software engineering techniques and tools are interdependent.Management decisions impact on collaborative software engineering prac-tices and the availability or expertise of organisations in various techniquesand technologies in uence the decisions that can be made. This relationshipbetween project management and software engineering will form the contextfor much of our future research. 18

References[1] ANSI/IEEE Std 1042-1987. IEEE Guide to Software Con�gurationManagement. In IEEE Software Engineering Standards. IEEE, NewYork, 1994.[2] B. Boehm. Software Engineering Economics. Prentice Hall, 1981.[3] Commision of the European Communities. Information Technology Se-curity Evaluation Criteria. June 1991.[4] John Davidson. Outsourcing is Future of IT. The Australian FinancialReview, page 26, July 29 1997.[5] Leon de Loo�. Information Systems Outsourcing Decision Making: Amanagerial Approach. Idea Group Publishing, 1997.[6] Draft Standard 1508. Functional Safety: Safety Related Systems. In-ternational Electro-Technical Commision, June 1995.[7] R.P Higuera, A.J. Dorofee, J.A. Walker, and R.C. Williams. Teamrisk management: A new model for customer supplier relationships.Technical Report CMU/SEI-94-SR-005, Software Engineering Institute,July 1994.[8] R.P Higuera, D. P. Gluch, A.J. Dorofee, R.L. Murphy, J.A. Walker,and R.C. Williams. An introduction to team risk management. Techni-cal Report CMU/SEI-94-SR-001, Software Engineering Institute, May1994.[9] IBM Global Services. http://www.ibm.com/services/articles/outsrca2.html,June 1997.[10] Intelligent Network Newsletter. Alacatel Takes Decision To Go WithDigital Alpha Platform. Intelligent Network Newsletter, page 13, May1997.[11] Karen Ketler and John Walstrom. The outsourcing decision. Interna-tional Journal of Information Management, pages 449{459, December1993.[12] Elspeth McFadzean. The classi�cation of creative problem solving tech-niques. Technical Report HWP 9632, Henley Management College,1996.[13] Daniel Minoli. Analyzing Outsourcing: Reengineering Information andCommunication Systems. McGraw-Hill,Inc., 1995.19

[14] R. Pressman. Software Engineering: A Practitioner's Approach.McGraw-Hill, fourth edition, 1997.[15] Brian Rothery and Ian Robertson. The Truth About Outsourcing.Gower, 1995.[16] Detmar Straub. E�ective Outsourcing of IT Services: Myths VersusRealities. Course notes, Melbourne Business School, The University ofMelbourne, July 1997.[17] Katherine Sweetman. Cultivating Creativity. Harvard Business Review,pages 10{12, March-April 1997.[18] Telecommunication Information Networking Architecture Consortium.The TINA Report. Available from TINA-C General Manager, Tel: +1908 758 2214, Fax: +1 908 758 2865.[19] Telecoms World. Outsourcing: Buying freedom or losing control? Tele-coms World, pages 50{56, September 1997.[20] Telefonaktiebolaget LM Ericsson. http://www.ericsson.se/software,June 1997.[21] The Outsourcing Institute. Outsourcing: HowIndustry Leaders Are Reshaping the AmericanCorporation. http://www.outsourcing.comi//get-starti/95seintr.html,1995.[22] Robert White and Barry James. The Outsourcing Manual . Brook�eld,1996.[23] Sta�ord Williamson. If Yesterday Is Tomorrow, This Must be Toronto.In Proceedings of IEEE International Symposium on Assessment ofSoftware Tools, Toronto, Canada. IEEE, 1996.20