Professional Documents
Culture Documents
APPLICATIONS DEVELOPMENT:
ISSUES, IMPLICATIONS,
AND IMPACT
Rasha Abbas Philip Dart
Ed Kazmierczak Fergus O'Brien
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
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 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 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.
Process
Outsourcing
People Technology
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 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, identication
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 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
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 benets
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 specic 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 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-availability 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 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, 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.
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
PROCESS PRODUCT
7
In-House Development Outsourced Tasks
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 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 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 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 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 eorts 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
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, perhaps 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 project 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 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 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 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
- 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;
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 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 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 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 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 verication and validation processes for the outsourced compo-
nents meet the project standards;
that proper conguration 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.
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 project 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.
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
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 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 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 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 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 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 Robertson. The Truth About Outsourcing.
Gower, 1995.
[16] Detmar Straub. Eective 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 . 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