You are on page 1of 26

OUTSOURCING SOFTWARE

APPLICATIONS DEVELOPMENT:
ISSUES, IMPLICATIONS,
AND IMPACT
Rasha Abbas Philip Dart
Ed Kazmierczak 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 Philip Dart


Ericsson Australia Computer Science
723 Swanston St The University Of Melbourne
Carlton, 3053 Parkville 3052
Australia Australia
+613 9282 2415 +613 9344 9103
rasha@epa.ericsson.se philip@cs.mu.oz.au
Ed Kazmierczak Fergus O'Brien
Computer Science SERC
The University Of Melbourne 723 Swanston St
Parkville 3052 Carlton 3053
Australia Australia
+613 9344 9106 +613 9282 2413
eka@cs.mu.oz.au fob@serc.rmit.edu.au
ABSTRACT
Information technology has become one of the fastest-growing, fastest-changing
markets in the world. The high demand on software applications and ser-
vices 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 out-
sourcing 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 dis-
cussed. We conclude by drawing attention to the issues and technical factors
which in uence the outsourcing decision.
Contents
1 Introduction 1
1.1 Software Outsourcing . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Facets of Software Outsourcing . . . . . . . . . . . . . . . . . 2
1.3 Aims of the Paper . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Drivers for Outsourcing 4
2.1 Globalisation and Global Software Outsourcing . . . . . . . . 4
2.2 Specialisation and Software Outsourcing . . . . . . . . . . . . 4
2.3 Key Bene ts Of Outsourcing . . . . . . . . . . . . . . . . . . 4
3 Application Development Outsourcing 5
3.1 Outsourcing Components Of the Software Application . . . . 6
3.2 Outsourcing Phases of Application Development . . . . . . . 6
3.3 Degree and Category of Outsourcing . . . . . . . . . . . . . . 6
4 Software Development Outsourcing: Issues and Impact 8
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 Facets of software outsourcing. . . . . . . . . . . . . . . . . . 2
2 Contracting out part of a software system. . . . . . . . . . . . 5
3 Examples of development tasks. . . . . . . . . . . . . . . . . . 7
4 Focus on core business. . . . . . . . . . . . . . . . . . . . . . . 8
5 Impact of outsourcing on software development models. . . . 12
6 Decision tree for outsourcing. . . . . . . . . . . . . . . . . . . 17
7 Analysing the outsourcing decision. . . . . . . . . . . . . . . . 18

ii
List of Tables
1 Issues in Outsourcing. . . . . . . . . . . . . . . . . . . . . . . 9

iii
1 Introduction
Information technology (IT) has become one of the fastest-growing, fastest-
changing 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 maintain-
ing 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 infras-
tructures 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 ex-
isted, 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. How-
ever, 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 ex-
pected 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 col-
laborative 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 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, 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 pro-
cess 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 ex-
ample, 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 technolo-
gies. Lacking expertise or knowledge of these new technologies in-house and
aiming to reduce the risk involved in investing in new technologies, organisa-
tions 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 tech-
nology [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 spe-
cialised 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 devel-
opment 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 devel-
opment 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 soft-
ware 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. In-
deed, 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 fo-
cused 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 tech-
nology, 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 inter-
nal 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. Fur-
ther, outsourcing provides a means of keeping pace with changes in the IT
industry without the overhead of constantly training sta for new technolo-
gies [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 00
11
1111111
0000000
0000000
1111111
00
11
00000
1111100
11 000000
111111
0000000
1111111
00
11
00000
11111 11111
00000
00
11 11111
00000 000000
111111
000000
11111100
11
00000
11111
00000
1111100
11 000000
11111100
11
0000011
1111100
00
11 000000
11111100
11
00000011
11111100

111111111111
000000000000
000
111
0000
1111 1010
000
111
000
111
0001010
111

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 devel-
opment 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 out-
sourcing 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 inter-
faces, 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, de-
sign, 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 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 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 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 competencies
6
Common Tasks Common Tasks
- Programming - Glue Code

Specialised Tasks Specialised Tasks

- Application Design - Data & Information


Management
- Test Plans
- Education & Training - Legacy Transformation

Control Tasks Control Tasks


- Project Management - Access to Memory
- Formal Reviews - Security Manager
- Change Request
Signatory

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 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 example
of outsourced specialised tasks is software packages for dealing with taxa-
tion. 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 spe-
cialised 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 Common Tasks


Not part of core
competencies

Specialised Tasks Core Competency


11111111
00000000 (Expertise not available in-house)
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
Control Tasks
Specialised Tasks
Not part of desired
Core competencies 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 devel-
opment, the outsourcer can no longer guarantee properties such as
security, quality and con dentiality [11, 15]. Agreements and contract

8
Management Technical
Outsourcing decision Trust (safety, security,
(who, when) reliability)
Vendor capacity Vendor capability
and availability
Outsourcing scale/size Outsourcing scale/size
(total/selective) (total/selective)
Contract Criticality/Control
Ownership/IP/ System decomposition
Location & Interface
Frequency of use Paradigms
Liability/Responsibility Technology
Cost Process visibility
Relationship with vendor Conformance measures/
(strategic/ short-term) Quality
Resourcing System evolvability
& Re-usability
Risk Management Veri cation & Validation
Privacy Con guration
Management
Managing the process/ Maintenance
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 consid-
ered. 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 col-
laborative 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 develop-
ment paradigms can raise issues of compatibility and portability across
the project. The problem here is to ensure that the various compo-
nents are compatible and can be integrated into the overall system.
Development paradigms
Issues of compatibility, integration and communication across devel-
opment 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 en-
gineering 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 con-
tract, 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, soft-
ware 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 ac-
count 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 out-
sourcing), 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 chang-
ing 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 subsys-
tem behaviour meets its requirements after integration into the whole
system.

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

CONFIGURATION MANAGEMENT CONFIGURATION MANAGEMENT

- Lines of authority for accepting changes - Lines of authority for accepting changes
- change impact and propagation procedures - change impact and propagation procedures
Instigate and Manage
Outsourcing Relationship
VERIFICATION & VALIDATION VERIFICATION & VALIDATION
- Bonding
- Assurance that components meets technical - Components function correctly
- Monitoring
and operational requirements
- Blending of Efforts,
- Components function correctly within
their intended operating environment - Benchmarks

RISK MANAGEMENT RISK MANAGEMENT


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

Outsourcer 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 ver-
i 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 in-
deed 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 out-
sourced 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 de-
velopment 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 di-
rected 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 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 sucient 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 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 imple-
mentation activities [1]. From the technical perspective, con guration man-
agement 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 proce-
dures 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 func-
tions 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 require-
ments 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 prac-
tices 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 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 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 depen-
dencies.
 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 u-
ence 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 prob-
lem 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 competen-
cies. 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 in-
house, selective outsourcing, or total outsourcing).
 Outsourcing issues
Issues 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 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 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 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
Strongly Coupled
- Expertise Selective Outsourcing
- Time
core - Technology
- Control
- Trust
- Safety
- Cost
- Technical people
Application support In-house
Development - Market survey
- Feasibility study
Total Outsourcing
- Expertise
- Interest
non - Technology
core - Time Selective Outsourcing
- Cost
Alternative
(points inside reflect
technical inputs needed) 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 out-
sourcing, 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 is-
sues that need to be addressed and resolved. Further work is still needed
to 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 the
outsourcing activities. This along with the large number of options available
makes taking the outsourcing decisions more complex. It is important to as-
sess the organisation's situation and drivers to outsourcing and address the
17
Company’s Situation Outsourcing Issues
Key Questions
Management
* What are the company’s strengths, * Capacity, availability, capability of
weaknesses, opportunities, and threats?
outsourcing vendors
* How strong is the company’s
competitive position? * Scale/size of outsourcing (total/selective)
* What are the company’s key * Vendor Relationship
competencies? (strategic/ short term) Taking The Decision
[ Yes/No, Who, When, What, Degree]
* How far does change is the industry * Contract and conformance
affect the company’s business? * Ownership, IP, & location of source Key Criteria
*What are the industry’s dominant traits? * Frequency of use
* Which company’s are in the strongest/ * Bonding, monitoring, and coordination * Does outsourcing have good fit with
weakest competitive positions? efforts and resources company’s strategy and situation?
* Liability/ responsibility * Is there vendor/s that meet company
* Flexibility and control requirements?
Drivers to Outsourcing * Cost * Will it help build a copetitive advantage?
Key Factors Technical * Will it improve performance/ time/ cost?
* Cost saving * Trust/ assurance * Is it feasible?
* Time * Technology (Platform, OS,
(meeting deadlines, first to market,..) * Have all internal alternatives been
development tools, programming lang.) evaluated?
* Human Resources and expertise
* System decomposition and interfaces
* Alliances and partenrships
* Development paradigms
* Technology
* Process * Process visibility (documentation,
* Capability development reports, configuration mangement)
* Specialisation and focus * Maintenance & system maintenability
* Globalisation * Performance measures
* Competition * Change, CM, and evolvability

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 outsourcing
decisions 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 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 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 outsourcing
projects 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 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 Se-
curity 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. In-
ternational 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. Techni-
cal 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. Interna-
tional Journal of Information Management, pages 449{459, December
1993.
[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 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? Tele-
coms 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

You might also like