outsourcing software applications development: issues ... - CiteSeerX

3 downloads 111899 Views 181KB Size Report
vices is forcing more companies to turn to outsourcing to meet their customer ... arise from outsourcing software development and discuss their implications.
OUTSOURCING SOFTWARE APPLICATIONS DEVELOPMENT: ISSUES, IMPLICATIONS, AND IMPACT Rasha Abbas Ed Kazmierczak

Philip Dart Fergus O'Brien

Technical Report 97/27 December 1997

Department of Computer Science The University of Melbourne Parkville 3052, Australia

OUTSOURCING SOFTWARE APPLICATIONS DEVELOPMENT: ISSUES, IMPLICATIONS, AND IMPACT Rasha Abbas

Ericsson Australia 723 Swanston St Carlton, 3053 Australia +613 9282 2415 [email protected]

Ed Kazmierczak

Computer Science The University Of Melbourne Parkville 3052 Australia +613 9344 9106 [email protected]

Philip Dart

Computer Science The University Of Melbourne Parkville 3052 Australia +613 9344 9103 [email protected]

Fergus O'Brien

SERC 723 Swanston St Carlton 3053 Australia +613 9282 2413 [email protected]

ABSTRACT Information technology has become one of the fastest-growing, fastest-changing markets in the world. The high demand on software applications and services is forcing more companies to turn to outsourcing to meet their customer needs. 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 outsourcing software development, we examine the issues and concerns which arise 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 discussed. We conclude by drawing attention to the issues and technical factors which in uence the outsourcing decision.

Contents

1 Introduction

1

2 Drivers for Outsourcing

4

3 Application Development Outsourcing

5

4 Software Development Outsourcing: Issues and Impact

8

1.1 Software Outsourcing . . . . . . . . . . . . . . . . . . . . . . 1.2 Facets of Software Outsourcing . . . . . . . . . . . . . . . . . 1.3 Aims of the Paper . . . . . . . . . . . . . . . . . . . . . . . .

2.1 Globalisation and Global Software Outsourcing . . . . . . . . 2.2 Specialisation and Software Outsourcing . . . . . . . . . . . . 2.3 Key Bene ts Of Outsourcing . . . . . . . . . . . . . . . . . .

3.1 Outsourcing Components Of the Software Application . . . . 3.2 Outsourcing Phases of Application Development . . . . . . . 3.3 Degree and Category of Outsourcing . . . . . . . . . . . . . .

1 2 3 4 4 4 6 6 6

4.1 Issues in Software Development Outsourcing . . . . . . . . . . 8 4.2 Impact Of Outsourcing on Software Development . . . . . . . 12 4.3 The Outsourcing Decision . . . . . . . . . . . . . . . . . . . . 16

5 Summary and Further Work

17

i

List of Figures 1 2 3 4 5 6 7

Facets of software outsourcing. . . . . . . . . . . . . . . Contracting out part of a software system. . . . . . . . . Examples of development tasks. . . . . . . . . . . . . . . Focus on core business. . . . . . . . . . . . . . . . . . . . Impact of outsourcing on software development models. Decision tree for outsourcing. . . . . . . . . . . . . . . . Analysing the outsourcing decision. . . . . . . . . . . . .

ii

. . . . . . .

. . . . . . .

. 2 . 5 . 7 . 8 . 12 . 17 . 18

List of Tables 1

Issues in Outsourcing. . . . . . . . . . . . . . . . . . . . . . .

iii

9

1 Introduction Information technology (IT) has become one of the fastest-growing, fastestchanging markets in the world. The demand to produce new or specialised software for specialised markets, business, government or domestic use is ever increasing. For example the telecommunications industry, which was founded on electro-mechanical genius, now places more than 80% of the value of a switch in its software [20]. In addition, the demand for new telecommunications services, primarily based on software, or supported or customised by software, is increasing and growing more vital. However, as the scale and complexity of the marketplace continues to grow, many of the opportunities are turning into threats. Far from maintaining the pace of change, the industry is seeing customer needs outstripping its ability to deliver [18]. Indeed, the need for outsourcing is driven by the inability of organisations to develop code fast enough or change their infrastructures and sta expertise to keep up with the changes in the information technology world and the demands imposed on them.

1.1 Software Outsourcing

Outsourcing is a new term for an old practice and is not limited to the information technology world; it means contracting out work [5, 13]. We de 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 existed, but what renews interest in software outsourcing and demands our attention today is the dramatic change in scope. Software outsourcing in the past was limited to sub-contracting and small-scale contracts. However, it is becoming a multi-billion dollar global industry, and a sizeable proportion of all IT resources are spent on outsourcing. According to a U.S. International Trade Commission report, the global outsourcing market is expected to reach $99 billion in revenues by 1998 [9]. As a result, vendors that specialise in outsourcing services or outsourcing management are growing and global and large-scale outsourcing is becoming more prevalent. Organisations are engaging in outsourcing in an attempt to meet market demands. More organisations are using new but not necessarily home grown tools, making alliances and using external expertise to help keep up with the development demands [13, 23]. With outsourcing, organisations aim to improve qualities of software products and services, speed delivery times, and reduce costs. This is achieved through improving company focus, gaining access to the needed expertise, 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 outsourced service. Outsourcing vendor: The contractor or external provider delivering the outsourcing service to the outsourcer. Collaborative software development: Use of both in-house and contracted services to accomplish a software development task. This type of collaborative outsourcing is also known as alliance outsourcing [16].

1.2 Facets of Software Outsourcing

Software outsourcing has many facets, but the three main ones that concern us here are People, Technology and Process as represented in Figure 1. Outsourcing can take place in any one of the areas of personnel, technology or process depending on the organisation's situation and needs. Process

Outsourcing

People

Technology

Figure 1: Facets of software outsourcing. The outsourcing of people takes place to provide the organisation with needed expertise. With shortages in quali ed people, resourcing is becoming a major driving factor for outsourcing. Outsourcing people also saves the organisation from the trouble of providing the variety of work and career paths needed to attract and keep talented people and saves on training costs for sta in the rapidly changing IT industry. Process outsourcing is another facet of software outsourcing that covers any procedure or process associated with IT. This may cover, for example, outsourcing the task of auditing compliance to a standard, or outsourcing parts of the application development process. Organisations may decide to outsource parts of the software development process in order to improve ef ciency and quality of their overall development process. Alternatively, the 2

organisation may need to implement newly evolving processes, improve process speed and time to delivery, reduce process risk, or to follow a speci ed process, with speci ed tasks, of which it has little or no experience. For example, software development for specialised requirements, such as security or safety, requires special processes to be followed and specialised analyses to be undertaken [3, 6]. New or emerging technologies are the third facet of outsourcing. To be competitive, organisations often need to embrace a wide variety of technologies. Lacking expertise or knowledge of these new technologies in-house and aiming to reduce the risk involved in investing in new technologies, organisations resort to outsourcing for technology education services, identi cation and testing of new technologies, or technology advice and support services. This gives the organisation increasing exibility and access to modern technology [19]. Examples of outsourcing which are motivated by technology are making use of cutting edge programming languages, operating systems, hardware and software platforms, emerging network technologies and specialised development tools.

1.3 Aims of the Paper

The increasing complexity of the IT world drives more organisations toward outsourcing. However, the technical aspects of outsourcing software development raise some interesting problems and issues which must be addressed. Many organisations have recorded failures and disappointments because of a lack of procedures and clarity prior to embarking on outsourcing ventures. Further, outsourcing in software development is a growing area. The problem is that the fear of giving too great a monopoly to the supplier with too few ways of measuring value for money is still preventing some organisations from making full use of outsourcing [15]. There is a need to analyse the issues that arise with software development outsourcing and to establish frameworks and models which allow the organisations to outsource aspects of their software development without losing control. In this paper we look at outsourcing software development and attempt to isolate some of its motivating factors. We examine the issues which arise from 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 ect of outsourcing on current software development processes. The aim of this paper is to shed light on outsourcing software development in an attempt to identify the technical and managerial issues that in uence outsourcing decisions. Our paper draws on experiences that have been recorded in the literature as well as lessons drawn from outsourcing projects within Ericsson Australia. 3

2 Drivers for Outsourcing In the following sections, we discuss some of the trends and the key bene ts of outsourcing and collaborative software development.

2.1 Globalisation and Global Software Outsourcing

With the fast advances in communication, our world is becoming a global village and this trend is often referred to as Globalisation. Globalisation provides new opportunities internationally for many companies. It means that companies are not bound by their local expertise because international resources are now within reach. This trend is encouraging collaborative software development and global software outsourcing because unlike material goods, digital information can be transported quickly and cheaply. Software development tasks can be relocated to another country for their advanced technological expertise or for a reduction in cost over local competitors. Indeed, software programming can, and has, been outsourced to third world countries for a fraction of the cost of developing the product locally [13].

2.2 Specialisation and Software Outsourcing

Many organisations are now turning to outsourcing to help them cut costs, improve services, and focus on their core business activities [13]. This helps organisations 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 and growing increasingly more complex, specialisation is becoming vital. No one person or organisation can capture everything in IT and then keep up with the updates, upgrades, changes, and additions. People and organisations need to specialise in speci c areas. Outsourcing tends to be coupled with specialisation. As a party becomes specialised, work can be done more eciently. Rather than solving every problem from rst principles, they reuse solutions that have worked for them in the past. When they nd a good solution, they use it repeatedly with di erent customers. IT rms have been pioneers in developing partnered relationships and focused strategies, for example, Sun Microsystems focuses internal operations on small set of critical core activities and outsource nearly everything else in its value chain [16]. Alcatel has decided to buy-in Digital's computer technology, rather than developing its own. The aim is to allow the company to concentrate on its existing expertise in high-availability telecommunications software [10].

2.3 Key Bene ts Of Outsourcing

Initially, outsourcing was used as a means for cutting costs. However, it was realised that it is not just about cutting costs, but more about improving 4

services and focusing on core business activities, as well as coping with internal and external demands. Market leaders in all industries are increasingly using outsourcing as a way to build and sustain competitive advantage [21]. Outsourcing also helps organisations to improve focus, capitalise on global opportunities and free up in-house resources for more strategic tasks. Further, outsourcing provides a means of keeping pace with changes in the IT industry without the overhead of constantly training sta for new technologies [4]. Another less obvious, yet equally important, bene t of outsourcing is in breaking away from an organisation's paradigm, which includes its processes, technology and personnel. Software development can be carried out by people that are not from the same organisation or in the same geographical location and consequently bring a di erent approach to the development. Recent research indicates that crossing paradigms helps to unlock creativity and 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 spread their software development costs among a number of customers. Software Application 1111111 0000000 00 11 0000000 1111111 00 11 00000 11111 0000000 1111111 00 11 00000 11111 00 11 00000 11111 11111 00000 11111 00000 00 11 00000 11111 00 11 00000 11111 00 0000011 11111 00 11

000 111 0000 1111 1010 000 111 000 111 0001010 111

00 11 1111111 0000000 0000000 1111111 00 11 000000 111111 0000000 1111111 00 11 000000 111111 00 11 000000 111111 00 11 000000 111111 00 11 000000 111111 00 00000011 111111

111111111111 000000000000

1111 0000 00 11 0000 1111 00 11 0000 1111 00 11 0000 1111 00 Outsourced 11 0000 1111

In-House

Figure 2: Contracting out part of a software system.

3 Application Development Outsourcing By application development outsourcing we mean contracting out the development of an application. It can take the form of contracting out the entire application, total outsourcing, or contracting out only some components of the development of the application, selective outsourcing . Selective outsourcing can occur in one of two forms: outsourcing the products required 5

of a software development phase or outsourcing the production of a de ned component of the software application.

3.1 Outsourcing Components Of the Software Application

Application component outsourcing means contracting out a component of a software application. Figure 2 is intended to indicate the degrees of freedom in the outsourcing arrangement. The outsourcer de nes the requirements of the component to be outsourced as well as its interfaces or drivers. The outsourcing vendor is required to meet the requirements and communicate through the interfaces, but may be free beyond that to adopt any paradigm or practice to ful l them. Any changes from the outsourcer or the outsourcing vendor to these requirements need to be communicated and agreed upon and may be subject to collaborative con guration management or collaborative risk management.

3.2 Outsourcing Phases of Application Development

Outsourcing software development phases means contracting a vendor to carry out one or more of the software development phases, for example, external expertise may be required during the requirements analysis, design, coding, testing, or maintenance phases. More typically, organisations outsource the programming tasks while retaining the analysis and design phases. Note that development phases can be completely outsourced or they can be carried out collaboratively.

3.3 Degree and Category of Outsourcing

Outsourcing can lie on a spectrum with contracting out the entire development 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 in more detail at the kinds of tasks which are being outsourced. Our classi cation scheme classi es tasks as control tasks, specialised tasks or common tasks . Further, these tasks can be associated with the process or component (see Figure 3 for some examples of such tasks). Common tasks are tasks that are common knowledge to people in the industry or routine tasks. These tasks could be resource intensive or time consuming but require less domain experience to do them. Specialised tasks are tasks that need specialised knowledge and high domain experience to be done eciently. Control tasks are the tasks that control the development process (for example project management tasks) or tasks that control the application (for example access to le system, memory access,or process spawning). Further, these tasks (common, specialised, or control) may fall into or outside the core competencies 6

Common Tasks

Common Tasks - Programming

- Glue Code

Specialised Tasks - Application Design - Test Plans - Education & Training

Specialised Tasks - Data & Information Management - Legacy Transformation

Control Tasks

Control Tasks

- Project Management - Formal Reviews - Change Request Signatory

- Access to Memory - Security Manager

PROCESS

PRODUCT

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 competitive advantage to the organisation and distinguish it from its competitors [5]. The case studies in [5, 11, 15, 22] seem to indicate that organisations are outsourcing mainly common tasks and some specialised tasks that are not part of their core strategic competencies. Specialised tasks which are outsourced could be highly critical and important but need very specialised resources that the outsourcer is not interested in acquiring or cannot acquire in the needed time frame. An example of outsourced specialised tasks is software packages for dealing with taxation. These are essential to organisations but are probably only needed once a year, but if they were developed in-house then they would need highly specialised personnel to be allocated all year around to monitor and maintain changes in taxation law. Vendors, typically relieve organisations of this requirement. Organisations also outsource some of their core tasks if they don't have the needed expertise internally. In this case the outsourcing relationship is either a partnership or a strongly coupled relationship with the intention of learning and gaining the experience internally. Figure 4 depicts the task categories and the idea of focusing on core business while letting others do less creative tasks or very specialised tasks requiring expertise not worth developing in-house.

7

In-House Development

Outsourced Tasks

Common Tasks

11111111 00000000 00000000 11111111 00000000 11111111 00000000 11111111 00000000 11111111 00000000 11111111 00000000 11111111 00000000 11111111 Control Tasks

Specialised Tasks

Common Tasks Not part of core competencies Core Competency (Expertise not available in-house)

Specialised Tasks Not part of desired competencies

Core competencies

Figure 4: Focus on core business.

4 Software Development Outsourcing: Issues and Impact 4.1 Issues in Software Development Outsourcing

Outsourcing software application development raises some technical and managerial issues which are di erent from the issues associated with pure in-house development. This causes enough concern in some organisations to prevent them from taking full advantage of the opportunities and advantages o ered by outsourcing. There is a need to examine these issues as a rst step towards nding ways of resolving them. Table 1 lists some of the management and technical issues which in uence the nature of outsourcing in software development. It is important to note that management and technical issues in outsourcing are strongly interdependent. We discuss some of these issues below. Control This covers control over the software engineering process and control over the nal product. Control over the software development process is essential to maintaining control over the quality and other desirable properties of the product. There is a danger that by outsourcing a product, and consequently surrendering some control over its development, the outsourcer can no longer guarantee properties such as security, quality and con dentiality [11, 15]. Agreements and contract 8

Management

Technical

Outsourcing decision (who, when) Vendor capacity and availability Outsourcing scale/size (total/selective) Contract Ownership/IP/ Location Frequency of use Liability/Responsibility Cost Relationship with vendor (strategic/ short-term) Resourcing

Trust (safety, security, reliability) Vendor capability Outsourcing scale/size (total/selective) Criticality/Control System decomposition & Interface Paradigms Technology Process visibility Conformance measures/ Quality System evolvability & Re-usability Veri cation & Validation Con guration Management Maintenance

Risk Management Privacy Managing the process/ Coordinating vendors

Table 1: Issues in Outsourcing. terms need to clearly address this issue but additional assurance may be required by the outsourcer that targets for system properties, such as safety, are met. Further, issues of control need to be raised when decomposing the system into submodules and identifying what aspects of the system can be outsourced. Critical aspects of the system along with aspects that give them market advantage and future control over the nal product need to be kept in house or protected in the contract. During system analysis and design, these critical and controlling aspects of the system need to be identi ed, classi ed, and agged for management. Responsibilities and ownership The duties, responsibilities and liabilities of each of the parties in an outsourcing venture and the ownership of the nal products have to be clearly stated in the contract. Further, ownership of intermediate products, such as designs, scenarios or test data needs to be considered. This is especially important when these products of the software 9

engineering process are needed by the outsourcer for ongoing system maintenance or evolution. Any outsourcing agreement for cooperative software development needs to be exible enough to allow room for changes, yet strong enough to protect all parties involved. The need for exibility is a consequence of the changing nature of projects, for example, there may be changes to requirements, changes to schedules or changes to designs once collaborative development is underway. Finally, information may need to be exchanged between the vendor and the outsourcer which in turn may raise privacy and security concerns. Managing and coordinating outsourcing vendors Many risks in software development are associated with the diversity of the participants and activities within the software life-cycle. The impact of outsourcing on these risks can be variable [13]. The issues here are:  to ensure the availability and capacity of the vendor to carry out the collaborative development at the critical times in the overall project plan;  to plan dependencies in the project plan;  to monitor the status of the project, and all of the outsourced components, so that adjustments to the project plan can be made or, if needed, corrective action can be taken. In addition to the coordination and monitoring e orts needed, the potential diversity of technology platforms, architectures and development paradigms can raise issues of compatibility and portability across the project. The problem here is to ensure that the various components are compatible and can be integrated into the overall system. Development paradigms Issues of compatibility, integration and communication across development paradigms need to considered. This is especially critical if the development paradigms used by the outsourcer and the vendor di er. The outsourcer and the vendor may use di erent software engineering processes or di erent analysis and design methodologies and consequently di erent development tools. The outsourcer must ensure that any standards or processes which they are required to follow, perhaps as part of the outsourcer's contract, are also followed by the vendor. If di erent analysis and design methods are used then, at the very least, there is a risk of confusion in communication between outsourcer 10

and vendor. If the methods are supported by di erent tool sets then there may well be a problem when exchanging documents, code, software designs and other project related materials. In general, strategies for integrating outsourced products, which have been developed using methods and technologies di erent to the outsourcer's methods and technologies may need to be put in place, for example, a strategy for joint con guration management (see section 4.2) which takes into account di erent con guration management tools. Trust and assurance Projects may require trusted components, for example, a project may require a secure or a safety related component. If such a component is outsourced then the outsourcer may wish to seek assurance that the component meets its safety or security requirements. The problem for the outsourcer is to obtain assurance that the outsourced component meets the required level of trustworthiness. The problem for both parties is to gain the necessary assurance that the system as a whole meets its safety or security requirements. A technical issue is that even if the outsourced component meets its safety or security requirements the system as a whole may fail to meet its safety or security requirements. The reason for this is that system properties, like safety or security, are properties of the whole system and, in general, not just components. System decomposition, integration and interfaces If the development of subsystems is to be outsourced (component outsourcing), then the criteria for decomposing the system will be di erent to total in-house development. The organisation of the architectural components of the system and the interfaces between them need to be carefully considered to minimize dependencies and side-e ects of change. However, there will always be the need to handle change. One of the problems that may need to be faced is that as the project progresses the interfaces will change. This may be as a result of changing client requirements or it may result from a better understanding of the problem to be solved by the outsourcer, the vendor or both. Any subsystem which is outsourced will have to be integrated into the whole at a later stage. There is a need to ensure that the subsystem behaviour meets its requirements after integration into the whole system.

11

PLANNING

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

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

CONFIGURATION MANAGEMENT - Lines of authority for accepting changes - change impact and propagation procedures

- Lines of authority for accepting changes

Instigate and Manage Outsourcing Relationship

VERIFICATION & VALIDATION

- change impact and propagation procedures VERIFICATION & VALIDATION

- Bonding - Assurance that components meets technical and operational requirements

- Monitoring - Blending of Efforts,

- Components function correctly within their intended operating environment

- Benchmarks

RISK MANAGEMENT

RISK MANAGEMENT

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

Outsourcer

- Components function correctly

- Availability of required skills - Withdrawal of outsourcer - Changing requirements & environment - Penalties

Outsourcing Relationship

Outsourcing Vendor

Figure 5: Impact of outsourcing on software development models.

4.2 Impact Of Outsourcing on Software Development

In section 4.1 we have tried to identify some of the issues associated with outsourcing software development. In this section we examine the impact that those issues have on software engineering processes. We can identify at least 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 outsourcing vendors; 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 veri cation or team risk management [8, 7]. In theory organisations can decide to outsource a product or service at any time in the development process. Whether this is feasible, or indeed practical, remains to be seen. At the very least there are a number of planning activities which must take place when outsourcing parts of the development. For outsourcing, organisations also need to identify their core strategic specialties and decide which aspects of the project can be outsourced and which aspects of the project are best kept in-house. This may be a matter of organisational policy, in which case there may be little impact on project planning, or it may be decided on a case by case basis in which case the decision process will need to be scheduled. The nature of relationships with vendors and their availability at the critical times in projects in uences planning. If the decision has been made to outsource parts of the development then it is critical that vendors with the required expertise are available and have the capacity to do the work at the critical times in the project plan. In the absence of a strategic alliance with a vendor who can satisfy the project requirements, the outsourcer may need to nd and evaluate vendors who could meet the requirements. This is best dealt with early in the project because the time involved in establishing the outsourcing agreement, the availability of resources and the timely delivery of products will need to be taken into account in the overall project plan. We do not wish to suggest that establishing the project plan takes precedence and that nding a developer to carry out the required tasks is a secondary consideration, but rather that the outsourcing decision depends on both the project plan and the availability of developers at the critical times. In order for the outsourcer to exercise a level of control over the development of the outsourced components, then bonding, monitoring and benchmarking need to be continuously practiced. [16]. Bonding , in the context 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 directed towards verifying the process controls and ensuring standard practices across the board [16]. In practice this could mean ensuring, 

13

compliance with standards;  that veri cation and validation processes for the outsourced components meet the project standards;  that proper con guration management processes are being followed;  that proper risk management procedures are being followed;  that there is sucient progress against the overall project plan. Further, the outsourcing vendors' performance, expertise, cost, and quality need to be continuously benchmarked against competitors. These benchmark measures need to be agreed on and re ected in the contract. Con guration management deals with the tracking and control of changes to evolving components [14, 1]. From the project management perspective, proper con guration management allows the current status of components to be determined and used to coordinate the project planning and implementation activities [1]. From the technical perspective, con guration management allows us to control and coordinate changes, determine the impact of those changes and propagate those changes to the required items. In an outsourcing situation, con guration items will have to be shared between the outsourcer and the outsourcing vendor. The problem is that the changing nature of projects means that the con guration items shared between outsourcer and outsourcing vendor are subject to change and such change needs to be controlled across all parties. Both the outsourcer and the outsourcing vendor may have established con guration management procedures in place, but once con guration items are shared then another layer of con guration management may need to be put in place to de ne:  baselines for items which need to be shared between outsourcer and outsourcing 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 the area of veri cation and validation. Once a product has been outsourced then the outsourcer may require assurance that the product actually meets its technical and operational speci cations. Note that this is a di erent requirement from any service agreements or contracts which may be in place. In the case of outsourcing a system component, the outsourcer needs assurance that the component not only functions correctly, but that it functions correctly within its intended operating environment, and this could mean 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 requirements is already a dicult task. In the presence of outsourcing, the veri cation and validation tasks are likely to be more dicult because of factors such as di erent veri cation and validation practices across organisations. Consequently, the impact of outsourcing on veri cation and validation practices is likely to be in the degree of diculty rather than in the practices themselves. Outsourcing involves both business risk and project management risk. Some of the business risks include the following.  Establishing and maintaining the relationships required for successful outsourcing can be complex and resource intensive [13].  losing control over key aspects of the system can cause the outsourcer to become strategically dependent on the outsourcing vendor.  There are substantial impediments to withdrawing from the outsourcing 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 be available or accessible.  The outsourcing vendors lack the capacity to deliver the outsourced products 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 dependencies.  The risks associated with integrating potentially diverse technologies into a working overall system.  Changing requirements and environments which may impact on the cost, delivery times, and quality of work. This along with the known risks of any software development project makes recognising risk and managing risk more important. Further, well known process models which take project risk into account, for example Boehm's Spiral [2] model, may not be suitable in a multi-vendor situation. Procedures for managing risk in the context of numerous stakeholders, such as the SEI's Team Risk management procedures, may take on greater importance. 

15

4.3 The Outsourcing Decision

Outsourcing o ers organisations new opportunities as well as new challenges. We believe that a structured approach to making the outsourcing decision will be bene cial for taking into account the numerous factors which in uence the success or otherwise of an outsourcing venture. We have examined some of the issues involved in outsourcing and tried to describe their impact on software engineering processes. The outsourcing decision is usually made in a broader context which we outline below. 







Organisation's situation Organisations need to analyse their current situation to identify problem areas. They need to evaluate the organisation's position among competitors and the organisation's strengths and weaknesses. They need to identify the organisation's core business, skills and competencies. Further, the organisation needs to evaluate the available internal and external alternatives and with respect to the people, processes and technology required for the project. Drivers to outsourcing A key point in analysing the outsourcing decision is an assessment of the organisation's drivers to outsourcing. This should guide the selection and the relationship with the outsourcing vendor. This would also guide the degree of outsourcing (a scale ranging from total inhouse, selective outsourcing, or total outsourcing). Outsourcing issues Issues raised in this paper along with other issues speci c to the organisation needs to be evaluated and resolved. We have tried to show that there are a number of technical factors which need to be considered in addition to the managerial and economic factors usually considered. A decision tree can be used to model the di erent alternatives, and to help in analysing and evaluating the di erent possibilities. An example 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 the outsourcing decision. Making the decision With the outsourcing decision, the organisation needs to decide what is being outsourced, who the potential vendors are, when the proper time to outsource will be, and the degree of outsourcing (a scale ranging from total in-house, selective outsourcing, or total outsourcing). After assessing the situation, identifying the drivers and evaluating all issues, organisations can make a decision whether to go with outsourcing. As 16

- Expertise

Strongly Coupled Selective Outsourcing

- Time core - Technology - Control - Trust - Safety - Cost - Technical people

Application support Development - Market survey

In-house

- Feasibility study

Total Outsourcing - Expertise - Interest

non - Technology core - Time - Cost Alternative (points inside reflect technical inputs needed)

Selective Outsourcing

In-house

Uncertain

Figure 6: Decision tree for outsourcing. a nal criteria, organisations need to evaluate whether: outsourcing ts the organisation's strategy and situation, the internal alternatives have been evaluated, there are outsourcing vendors available that meet the requirements and criteria, and outsourcing achieve the goals that is motivating and driving the organisation to outsource. Some of the issues, drivers to outsourcing, and key questions that need to be addressed before taking the decision to outsource have been summarised in Figure 7. The questions and issues in Figure 7 are meant to serve as a guide, and each organisation may need to come up with its own set of criteria for the nal decision on outsourcing.

5 Summary and Further Work Outsourcing brings along new opportunities and challenges. Through outsourcing, organisations aim to focus on core business, improve qualities of software products and services, speed delivery times, and reduce costs. This is achieved through improving company focus, gaining access to the needed expertise and technologies, improving processes, sharing risks and costs, and re-using products and experiences. Outsourcing, however, brings along key technical and management issues that need to be addressed and resolved. Further work is still needed to resolve issues such as paradigms, boundaries, speci cations, design, interfaces, risk management, measurements, and outsourcing project management. Organisations need to adapt their process models to accommodate the outsourcing activities. This along with the large number of options available makes taking the outsourcing decisions more complex. It is important to assess the organisation's situation and drivers to outsourcing and address the 17

Company’s Situation Key Questions * What are the company’s strengths, weaknesses, opportunities, and threats? * How strong is the company’s competitive position? * What are the company’s key competencies? * How far does change is the industry affect the company’s business? *What are the industry’s dominant traits? * Which company’s are in the strongest/ weakest competitive positions?

Drivers to Outsourcing Key Factors

Outsourcing Issues Management * Capacity, availability, capability of outsourcing vendors * Scale/size of outsourcing (total/selective) * Vendor Relationship (strategic/ short term) * Contract and conformance * Ownership, IP, & location of source * Frequency of use * Bonding, monitoring, and coordination efforts and resources * Liability/ responsibility * Flexibility and control * Cost

Technical

* Cost saving * Time (meeting deadlines, first to market,..) * Human Resources and expertise * Alliances and partenrships * Technology * Process * Capability development * Specialisation and focus * Globalisation * Competition

* Trust/ assurance * Technology (Platform, OS, development tools, programming lang.) * System decomposition and interfaces * Development paradigms * Process visibility (documentation, reports, configuration mangement) * Maintenance & system maintenability * Performance measures * Change, CM, and evolvability

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

Key Criteria * Does outsourcing have good fit with company’s strategy and situation? * Is there vendor/s that meet company requirements? * Will it help build a copetitive advantage? * Will it improve performance/ time/ cost? * Is it feasible? * Have all internal alternatives been evaluated?

Figure 7: Analysing the outsourcing decision. issues and risks before taking the decision. A Software Development Outsourcing Framework could be developed to assist those making outsourcing decisions in systematically working through the issues and options. Further, the increased importance of system decomposition and integration on outsourcing development projects, together with the increased potential for multi-paradigm development on these projects, invites research into technical developments to support for outsourcing. Such research would need to address issues such as design methodologies and tools that support multiple paradigms, or distributed con guration management systems that can be tailored to support di erent development practices at di erent distributed sites. Finally, our examination of some of the issues related to software development outsourcing has led us to the position that management of outsourcing projects and software engineering techniques and tools are interdependent. Management decisions impact on collaborative software engineering practices and the availability or expertise of organisations in various techniques and technologies in uence the decisions that can be made. This relationship between project management and software engineering will form the context for much of our future research.

18

References [1] ANSI/IEEE Std 1042-1987. IEEE Guide to Software Con guration Management. In IEEE Software Engineering Standards. IEEE, New York, 1994. [2] B. Boehm. Software Engineering Economics. Prentice Hall, 1981. [3] Commision of the European Communities. Information Technology Security Evaluation Criteria. June 1991. [4] John Davidson. Outsourcing is Future of IT. The Australian Financial Review, page 26, July 29 1997. [5] Leon de Loo . Information Systems Outsourcing Decision Making: A managerial Approach. Idea Group Publishing, 1997. [6] Draft Standard 1508. Functional Safety: Safety Related Systems. International Electro-Technical Commision, June 1995. [7] R.P Higuera, A.J. Dorofee, J.A. Walker, and R.C. Williams. Team risk 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. Technical Report CMU/SEI-94-SR-001, Software Engineering Institute, May 1994. [9] IBM Global Services. http://www.ibm.com/services/articles/outsrca2.html, June 1997. [10] Intelligent Network Newsletter. Alacatel Takes Decision To Go With Digital Alpha Platform. Intelligent Network Newsletter, page 13, May 1997. [11] Karen Ketler and John Walstrom. The outsourcing decision. International Journal of Information Management, pages 449{459, December 1993. [12] Elspeth McFadzean. The classi cation of creative problem solving techniques. Technical Report HWP 9632, Henley Management College, 1996. [13] Daniel Minoli. Analyzing Outsourcing: Reengineering Information and Communication 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 Versus Realities. Course notes, Melbourne Business School, The University of Melbourne, 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: +1 908 758 2214, Fax: +1 908 758 2865. [19] Telecoms World. Outsourcing: Buying freedom or losing control? Telecoms World, pages 50{56, September 1997. [20] Telefonaktiebolaget LM Ericsson. http://www.ericsson.se/software, June 1997. [21] The Outsourcing Institute. Outsourcing: How Industry Leaders Are Reshaping the American Corporation. 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 of Software Tools, Toronto, Canada. IEEE, 1996.

20