Content uploaded by Edmund Kazmierczak
Author content
All content in this area was uploaded by Edmund Kazmierczak on Mar 27, 2014
Content may be subject to copyright.
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
Ericsson Australia
723 Swanston St
Carlton, 3053
Australia
+613 9282 2415
rasha@epa.ericsson.se
Philip Dart
Computer Science
The University Of Melbourne
Parkville 3052
Australia
+613 9344 9103
philip@cs.mu.oz.au
Ed Kazmierczak
Computer Science
The University Of Melbourne
Parkville 3052
Australia
+613 9344 9106
eka@cs.mu.oz.au
Fergus O'Brien
SERC
723 Swanston St
Carlton 3053
Australia
+613 9282 2413
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 dene 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 inuence 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 Benets 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 supp orted 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
dene
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 scop e. 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 denitions:
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.
Outsourcing
Process
People Technology
Figure 1: Facets of software outsourcing.
The outsourcing of people takes place to provide the organisation with
needed expertise. With shortages in qualied people, resourcing is becoming
a major driving factor for outsourcing. Outsourcing p eople 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 specied
process, with specied tasks, of which it has little or no experience. For ex-
ample, software development for sp ecialised requirements, such as security
or safety, requires special processes to be followed and specialised analyses
to b e undertaken [3, 6].
New or emerging technologies are the third facet of outsourcing. To b e
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, identication
and testing of new technologies, or technology advice and support services.
This gives the organisation increasing exibility and access to mo dern 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 eect
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
inuence 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 benets
of outsourcing and collab orative 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 b ecause 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 transp orted 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 fo cus 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 specic areas. Outsourcing tends to be coupled with
specialisation. As a party b ecomes specialised, work can b e 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 dierent 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-availabil ity telecommunications
software [10].
2.3 Key Benets 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 ab out 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, benet 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 dierent 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 benet 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.
00
00
00
00
00
00
00
11
11
11
11
11
11
11
0000000
0000000
0000000
1111111
1111111
1111111
0000
0000
0000
1111
1111
1111
00
00
00
00
11
11
11
11
0000
0000
1111
1111
00
00
00
00
00
00
00
00
11
11
11
11
11
11
11
11
000000
000000
000000
000000
000000
000000
111111
111111
111111
111111
111111
111111
0
0
0
0
1
1
1
1
0000011111
0000011111
000000000000111111111111
0000000
0000000
0000000
1111111
1111111
1111111
000
000
000
000
111
111
111
111
00000
00000
00000
00000
00000
00000
11111
11111
11111
11111
11111
11111
00001111
In-HouseOutsourced
Software Application
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 dened
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 denes 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 b eyond that to adopt any paradigm or practice to
full 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 conguration 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 sp ectrum 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 classication scheme in order to look in
more detail at the kinds of tasks which are being outsourced. Our classi-
cation scheme classies tasks as
control tasks
,
specialised tasks
or
common
tasks
. Further, these tasks can be associated with the pro cess 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
Control Tasks
- Project Management
- Formal Reviews
- Change Request
Signatory
Control Tasks
- Access to Memory
- Education & Training
Specialised TasksSpecialised Tasks
- Application Design - Data & Information
- Security Manager
- Legacy Transformation
PROCESS PRODUCT
Common Tasks
Common Tasks
- Programming - Glue Code
- Test Plans Management
Figure 3: Examples of development tasks.
of the organisation. Core competencies are critical activities, skill services,
and knowledge bases that create continuous added value and 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 comp etencies.
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 sp ecialised tasks requiring expertise not worth
developing in-house.
7
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
Specialised Tasks
Not part of desired
competencies
Common Tasks
Not part of core
competencies
Specialised Tasks
In-House Development Outsourced Tasks
Control Tasks
Core competencies
Common Tasks
Core Competency
(Expertise not available in-house)
Figure 4: Focus on core business.
4 Software Development Outsourcing: Issues and
Impact
4.1 Issues in Software Development Outsourcing
Outsourcing software application development raises some technical and
managerial issues which are dierent 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
oered 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 inuence 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 condentiality [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 decomp osition
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 Verication & Validation
Privacy Conguration
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 b e 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 b e kept in house or protected in the contract. During
system analysis and design, these critical and controlling aspects of the
system need to be identied, classied, 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 pro jects, 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 b etween 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 pro ject plan;
to monitor the status of the project, and all of the outsourced
components, so that adjustments to the pro ject plan can b e made
or, if needed, corrective action can be taken.
In addition to the coordination and monitoring eorts needed, the
potential diversity of technology platforms, architectures and develop-
ment paradigms can raise issues of compatibility and p ortability 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
dier. The outsourcer and the vendor may use dierent software en-
gineering processes or dierent analysis and design methodologies and
consequently dierent development tools.
The outsourcer must ensure that any standards or processes which
they are required to follow, p erhaps as part of the outsourcer's con-
tract, are also followed by the vendor.
If dierent 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 dierent tool sets then
there may well be a problem when exchanging documents, code, soft-
ware designs and other pro ject related materials. In general, strategies
for integrating outsourced products, which have been developed using
methods and technologies dierent to the outsourcer's methods and
technologies may need to be put in place, for example, a strategy for
joint
conguration management
(see section 4.2) which takes into ac-
count dierent conguration management tools.
Trust and assurance
Projects may require trusted components, for example, a pro ject 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 prop erties of the whole system
and, in general, not just components.
System decomposition, integration and interfaces
If the development of subsystems is to be outsourced (comp onent out-
sourcing), then the criteria for decomposing the system will b e dierent
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-eects 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 b oth.
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
Outsourcer
- Bonding
- Monitoring
- Blending of Efforts,
- Benchmarks
Outsourcing Relationship Outsourcing Vendor
- Vendor selection and capacity
- Project plan
- Development processes & paradigms
- Identify core strategic specialities
- Resolve Ownership, IP, and liabilities
- Lines of authority for accepting changes
- change impact and propagation procedures
- Assurance that components meets technical
and operational requirements
- Components function correctly within
their intended operating environment
- Relationship
- Control
- Withdrawal from outsourcing decision
- Skills & capacity of vendor
- Delays on delivery time
- Changing requirements & environment
- Privacy and security
PLANNING
CONFIGURATION MANAGEMENT
- Availability
- Project plan
- Development processes & paradigms
- Specialities and expertise needed
- Resolve Ownership, IP, and liabilities
- change impact and propagation procedures
- Lines of authority for accepting changes
- Components function correctly
- Availability of required skills
- Changing requirements & environment
- Penalties
- Withdrawal of outsourcer
PLANNING
CONFIGURATION MANAGEMENT
VERIFICATION & VALIDATION
RISK MANAGEMENT
VERIFICATION & VALIDATION
RISK MANAGEMENT
Instigate and Manage
Outsourcing Relationship
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 pro cesses. We can identify at
least the following areas which will be inuenced by outsourcing:
project planning;
ongoing pro ject management;
conguration management;
verication and validation;
risk management;
These key activities have been summarised in Figure 5.
The issues which inuence pro ject planning are:
the need to evaluate, choose and negotiate with p otential 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 conguration management, joint validation and ver-
ication 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 pro ject can be out-
sourced and which aspects of the project are best kept in-house. This may
be a matter of organisational p olicy, in which case there may b e 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 inuences 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 pro ject 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 pro ject because the time involved in establishing the
outsourcing agreement, the availability of resources and the timely delivery
of products will need to b e 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 b oth 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 eorts of:
establishing the relationship with the outsourcing vendor;
dening the communication and control channels;
structuring the internal personnel to oversee the outsourcing work;
making the ongoing adjustments in the outsourcing relationship.
Monitoring
eorts, in the context of ongoing pro ject 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 verication and validation processes for the outsourced compo-
nents meet the project standards;
that proper conguration management pro cesses are being followed;
that proper risk management pro cedures 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 reected in the contract.
Conguration management deals with the tracking and control of changes
to evolving components [14, 1]. From the project management perspective,
proper conguration management allows the current status of components
to be determined and used to coordinate the pro ject planning and imple-
mentation activities [1]. From the technical perspective, conguration 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, conguration 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 conguration 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 conguration management proce-
dures in place, but once conguration items are shared then another layer
of conguration management may need to be put in place to dene:
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 verication and validation. Once a product has b een outsourced
then the outsourcer may require assurance that the product actually meets
its technical and operational specications. Note that this is a dierent
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 dierent verication and validation practices across organisations.
Consequently, the impact of outsourcing on verication and validation prac-
tices is likely to b e 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 imp ediments to withdrawing from the outsourc-
ing decision, once it has b een made and implemented.
Some of the pro ject 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 co ordinating 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 oers organisations new opportunities as well as new challenges.
We believe that a
structured approach
to making the outsourcing decision
will be b enecial for taking into account the numerous factors which inu-
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 pro cesses. 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 comp eten-
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 sp ecic 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 b e considered in
addition to the managerial and economic factors usually considered.
A decision tree can be used to model the dierent alternatives, and to
help in analysing and evaluating the dierent 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 p otential vendors are, when the prop er 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
Application
Development
- Technical people
support
- Market survey
- Feasibility study
- Time
- Technology
- Control
- Trust
- Safety
- Expertise
- Cost
Alternative
(points inside reflect
technical inputs needed)
Uncertain
core
non
core
- Expertise
- Interest
- Technology
- Time
- Cost
In-house
In-house
Selective Outsourcing
Total Outsourcing
Selective Outsourcing
Strongly Coupled
Figure 6: Decision tree for outsourcing.
a nal criteria, organisations need to evaluate whether: outsourcing
ts the organisation's strategy and situation, the internal 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, sp eed 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, specications, design, in-
terfaces, risk management, measurements, and outsourcing project manage-
ment. Organisations need to adapt their pro cess models to accommo date 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
* How strong is the company’s
competitive position?
* What are the company’s strengths,
weaknesses, opportunities, and threats?
* What are the company’s key
competencies?
* How far does change is the industry
affect the company’s business?
* Which company’s are in the strongest/
weakest competitive positions?
*What are the industry’s dominant traits?
Key Factors
* Cost saving
* Time
(meeting deadlines, first to market,..)
* Human Resources and expertise
* Competition
* Globalisation
* Specialisation and focus
* Alliances and partenrships
* Technology
* Process
* Capability development
Key Questions
* Does outsourcing have good fit with
* Is there vendor/s that meet company
* Have all internal alternatives been
evaluated?
company’s strategy and situation?
requirements?
* Is it feasible?
* Will it improve performance/ time/ cost?
* Will it help build a copetitive advantage?
Key Criteria
Outsourcing Issues
* Capacity, availability, capability of
outsourcing vendors
* Scale/size of outsourcing (total/selective)
* Vendor Relationship
(strategic/ short term)
* Change, CM, and evolvability
* Performance measures
* Maintenance & system maintenability
reports, configuration mangement)
* Process visibility (documentation,
* Development paradigms
* System decomposition and interfaces
development tools, programming lang.)
* Technology (Platform, OS,
* Trust/ assurance
* Contract and conformance
* Ownership, IP, & location of source
* Frequency of use
* Bonding, monitoring, and coordination
efforts and resources
* Liability/ responsibility
* Flexibility and control
* Cost
Management
Technical
Drivers to Outsourcing
[ Yes/No, Who, When, What, Degree]
Taking The Decision
Figure 7: Analysing the outsourcing decision.
issues and risks before taking the decision. A
Software Development Out-
sourcing Framework
could be developed to assist those making outsourcing
decisions in systematically working through the issues and options.
Further, the increased imp ortance 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 conguration management systems that
can be tailored to support dierent development practices at dierent 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 inuence 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 Conguration
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 mo del for customer supplier relationships.
Technical Rep ort 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] Elsp eth McFadzean. The classication 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 Rob ertson.
The Truth About Outsourcing
.
Gower, 1995.
[16] Detmar Straub. Eective Outsourcing of IT Services: Myths Versus
Realities. Course notes, Melb ourne 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] Rob ert White and Barry James.
The Outsourcing Manual
. Brookeld,
1996.
[23] Staord 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