APPLICABILITY OF AGILE SOFTWARE DEVELOPMENT … · Chapter 2 gives the reader an introduction to...

50
Helsinki University of Technology Software Business and Engineering Institute T-76.650 Software Engineering Seminar: Agile Software Development APPLICABILITY OF AGILE SOFTWARE DEVELOPMENT METHODOLOGIES TO DIFFERENT DEVELOPMENT ENVIRONMENTS DETERMINED BY A VENTURE’S BUSINESS MODEL AND EXTERNAL ENVIRONMENT 15.4.2002 [email protected] Jan-Mikael Tierala 48726M

Transcript of APPLICABILITY OF AGILE SOFTWARE DEVELOPMENT … · Chapter 2 gives the reader an introduction to...

Helsinki University of Technology

Software Business and Engineering Institute

T-76.650 Software Engineering Seminar: Agile Software Development

APPLICABILITY OF AGILE SOFTWARE DEVELOPMENT METHODOLOGIES TO

DIFFERENT DEVELOPMENT ENVIRONMENTS DETERMINED BY A VENTURE’S BUSINESS

MODEL AND EXTERNAL ENVIRONMENT

15.4.2002

[email protected]

Jan-Mikael Tierala 48726M

Table of Contents

1 Introduction .......................................................................................................................... 3 1.1 Background .................................................................................................................. 3 1.2 Research Problem......................................................................................................... 4 1.3 Objectives of the Research........................................................................................... 4 1.4 Scope of the Research .................................................................................................. 5 1.5 Research Methods and Reliability................................................................................ 5 1.6 Structure and Outline of the Report ............................................................................. 6

2 Agile Software Development Methodologies ...................................................................... 7 2.1 Definition of a Methodology........................................................................................ 7 2.2 Evolution of Methodologies......................................................................................... 8 2.3 Agile Methodologies .................................................................................................. 11

2.3.1 Extreme Programming Methodology................................................................. 13 2.3.2 Scrum Methodology........................................................................................... 15 2.3.3 Difference between Extreme Programming and SCRUM ................................. 16

3 Software Business Environment ........................................................................................ 17 3.1 External Environment ................................................................................................ 18 3.2 Internal Environment.................................................................................................. 20 3.3 Internal Processes....................................................................................................... 20 3.4 Software Business Model........................................................................................... 20

4 Business Model Elements & Internal Process Impacts...................................................... 24 4.1 Product Development Model ..................................................................................... 24

4.1.1 Value Proposition Type...................................................................................... 24 4.1.2 Product Cooperation & Networking .................................................................. 30 4.1.3 Product Compatibility ........................................................................................ 32 4.1.4 Intellectual Property Rights Management.......................................................... 33

4.2 Revenue Logic............................................................................................................ 35 4.2.1 Sources of Revenue............................................................................................ 35 4.2.2 Pricing Strategy.................................................................................................. 37

4.3 Marketing & Sales Model .......................................................................................... 38 4.4 Servicing & Implementation Model........................................................................... 40 4.5 Summary of Business Model Elements & Process Impacts ...................................... 43

5 Agile Methodology Applicability ...................................................................................... 45 6 Conclusions, Recommendations & Future Research ......................................................... 47 7 References .......................................................................................................................... 48

1 Introduction

1.1 Background

During the late 1990’s we experienced a tremendous growth in the number of software and

Internet related companies world wide. In the U.S. alone, the software industry generated

revenues of over 141 billion USD in 1998 with an annual growth rate of 15,4 % between 1994

and 1998 (Business Software Alliance, 1999). The software industry is a significant contributor

to the U.S. economy, providing direct employment for over 800 000 people, and indirectly

contributing to employment for 2,7 million people (Hietala, 2001). Today, many of the

companies are facing difficulties in generating profits or have already failed and do no longer

exist. Industry scholars point out that some of the difficulties can be explained by a natural

selection in a young, dynamic industry with too many players – only those with the best modes

of operation and who constantly manage to meet or exceed customer expectations can survive.

Uncertain and dynamic environments present fundamental challenges to managers of the new

product development process. Between successive product generations, significant evolutions

can occur in both the customer needs a product must address and the technologies it employs to

satisfy these needs. Even within a single development project, firms must respond to new

information, or risk developing a product that is obsolete the day it is launched. (MacCormack

et al., 2001)

To thrive in this turbulent environment, we must confront the business need for relentless

innovation and forge the future workforce culture. Agile software development approaches

such as Extreme Programming, Crystal methods, Lean Development, Scrum, Adaptive

Software Development (ASD), and others view change from a perspective that mirrors today’s

turbulent business and technology environment. (Cockburn & Highsmith, 2001a) These

methodologies provide tools for managing changing requirements and monitoring the team’s

performance throughout the development process, and should therefore be considered the

answer to our prayers. But can and should all companies engaged in software development

implement them?

In this report we take a look at agile software development methodologies, at business models

of software companies as well as their external environments, and build a framework for

analysing whether or not agile practises should be implemented in a specific situation. It is

expected that the company’s business model and its external environment will impact the

company’s internal software development processes in such a way that conclusions about the

applicability of agile methodologies can be justifiably made.

1.2 Research Problem

The ultimate purpose of this research is to contribute to the understanding of the success

factors of software companies. This paper will focus on the software development process and

discuss the benefits and restrictions of agile software development methodologies. The

underlying reason for this discussion is the fact that the agile practises have received an

enormous amount of publicity and praise in industry journals but many software companies are

still hesitating to implement them. This hesitation is caused by concerns related to the

suitability of the new practises to a specific software development environment – after all, each

company has its own environmental requirements and failure in just one project may have

significant consequences to the company.

The concept of a business model will be introduced to guide the discussion and establish a set

of critical elements that impact the company-internal software development processes. The

concept will be treated as a machine for turning valid ideas and opportunities into money.

The research problems can be expressed as follows:

1.3 Objectives of the Research

The ultimate objective of this report is to contribute to the understanding of the applicability of

agile software development methodologies to different software development processes.

In order of importance the objectives of the study are:

1. To present a framework for determining the applicability of agile software development

methodologies to a specific development project determined by a venture’s business

model and external business environment

How applicable are agile software development methodologies to

different company-internal development processes determined by a

venture’s business model and external business environment?

2. To define software business model and external business environment elements and

identify how element variations affect the company-internal software development

environment

3. To present Extreme Programming and Scrum as examples of agile methodologies

4. To identify differences between agile and traditional software development

methodologies

5. To establish a basis for further research

1.4 Scope of the Research

This report will focus on Extreme Programming (XP) and Scrum as examples of agile software

development methodologies. This report will not discuss different types of “traditional”

software development methodologies. They will be treated as being more robust and inflexible

than agile methodologies. This report will focus on external factors as elements affecting the

applicability of agile methodologies.

1.5 Research Methods and Reliability

The research will be limited to literature research. Material will be gathered from research

reports, industry journals, books and the Internet. The availability of literature concerning both

agile software development and Extreme Programming, as well as software business models, is

expected to be scarce. The impact of the scarceness of sources of information on the reliability

of the study needs to be evaluated once the study has been finished. Especially the expected

lack of empirical evidence will undermine the reliability.

BusinessModel

ElementExternal Environment Internal Processes

Business Environment

BusinessModel

ElementExternal Environment Internal Processes

Business Environment

If external impact

Identify businesmodel element

Check if business modelelement is affected byexternal environment

Identify impact oninternal processes

1.2. 3.

ResearchMethodology If external impact

Identify businesmodel element

Check if business modelelement is affected byexternal environment

Identify impact oninternal processes

1.2. 3.

ResearchMethodology

Figure 1: The research methodology used in establishing the impact of the external environment on the

internal software development processes.

Results presented in this report will be based on literature research. Testing and modification is

left to future work. This limitation is set due to both time and financial limitations. Thorough

testing would require monitoring portfolio projects for their full lifecycle and within the

framework of this study it is not feasible.

1.6 Structure and Outline of the Report

This paper is divided into four chapters in addition to the introduction and the conclusion.

Chapter 2 gives the reader an introduction to agile software development methodologies by

defining a methodology and comparing “traditional” and agile methodologies. Also brief

summaries of Extreme Programming and SCRUM methodologies are provided as examples of

agile methodologies. Chapter 3 introduces the reader to the concept of the software business

environment consisting of the external and internal environments, internal processes, and the

business model. Chapter 4 discusses software business model elements in detail and links them

to factors in the external environment, which are further linked to the internal software

development process. A short summary of the findings is provided in the end. Chapter 5 links

the findings in the previous chapter concerning the impact on the internal software

development process of the external environment and the software business model to the

applicability of agile methodologies in specific situations.

2 Agile Software Development Methodologies

2.1 Definition of a Methodology

The Merriam-Webster dictionaries define a methodology as "a series of related methods or

techniques." Furthermore, a method is defined as a "systematic procedure", similar to a

technique.

According to Cocburn (2002), “your ‘methodology’ is everything you regularly do to get your

software out. It includes who you hire, what you hire them for, how they work together, what

they produce, and how they share. It is the combined job descriptions, procedures, and

conventions of everyone on your team. It is the product of your particular ecosystem and is

therefore a unique construction of your organization.”

Simply put, a methodology is the way a company does business and consequently all

organisations have one. It is a social construction determining individual tasks, ways of

communication and distribution of decision-making, and it has been agreed upon by all group

members. Figure 2 illustrates the elements of a methodology and their inter-relations.

Figure 2: Elements of a methodology (Cockburn, 2002).

The elements are further explained in Table 1 below.

Table 1: Methodology element descriptions (adopted from Cockburn, 2002)

Element Description Roles Who you employ, what you employ them for, what skills they are supposed

to have. Equally importantly, it turns out, is the personality traits expected of the person.

Skills The skills needed for the roles. Teams The roles that work together under various circumstances. Techniques The specific procedures people use to accomplish tasks. Activities How the people spend their days. Process How activities fit together over time, often with pre- and post-conditions

for the activities. Work products What someone constructs. Milestones Events marking progress or completion. Standards The conventions the team adopts for particular tools, work products, and

decision policies. Quality Quality may refer to the activities or the work products. Team Values The rest of the methodology elements are governed by the team's value

system.

2.2 Evolution of Methodologies

Most software development is a chaotic activity, often characterized by the phrase "code and

fix". The software is written without much of an underlying plan, and the design of the system

is cobbled together from many short term decisions. This actually works pretty well as the

system is small, but as the system grows it becomes increasingly difficult to add new features

to the system. Furthermore bugs become increasingly prevalent and increasingly difficult to

fix. A typical sign of such a system is a long test phase after the system is "feature complete".

Such a long test phase plays havoc with schedules as testing and debugging is impossible to

schedule. (Fowler, 2000)

The above citation describes how software development was conducted 15 years ago, and how

it is still done in many companies. However, as a response to the uncertainty and

unpredictability related to ad-hoc programming, some software developers started to impose

disciplined approaches, i.e. methodologies, to manage the development process with the aim of

making software development more predictable and more efficient. First we saw the

emergence of heavy, or monumental, methodologies, such as the waterfall model.

Figure 3 illustrates the different approaches on software development in terms of scheduling of

analysis, design, implementation, and testing tasks. The waterfall model is a robust and

efficient model that expects us to know all requirements of the final product already in the

analysis phase. If we indeed do know them, this may be a good process for our software

development. But if we don’t, the cost of changes will increase dramatically with time. And

how often do we really, really know all the requirements in the beginning? Furthermore, these

early methodologies have been criticised for being too bureaucratic.

The next step in the development was the spiral methodology introduced by Boehm (1988).

The linear waterfall approach is executed repeatedly in several phases to deliver the end

product. This was and still is commonly used in conventional projects and on many object-

oriented projects with inexperienced leadership. According to Sutherland (2002), productivity

gains compared with the waterfall model are typically less than 30% using this approach with

object technology.

Analysis

Design

Implementation

Test

Time

Scope

WATERFALL ITERATIVE AGILE

Analysis

Design

Implementation

Test

Analysis

Design

Implementation

Test

Time

Scope

WATERFALL ITERATIVE AGILE

Figure 3: The evolution of the Waterfall Model (a) and its long development cycles (analysis, design,

implementation, test) to the shorter, iterative development cycles within, for example, the Spiral Model (b)

to Agile Software Development’s (c) blending of all these activities, a little at a time, throughout the entire

software development process. (Adopted from Beck, 1999.)

The iterative model was developed as a response to this uncertainty of requirements and a

typical example of an iterative model is the spiral model developed by Boehm (1988). By

splitting the development process into several shorter development cycles, we can first focus

on components and issues we know for certain. Once these components have been tested, we

will make another round of analysis and select new components whose requirements have now

been revealed. This process of iterative steps will continue until all requirements have been met

in the software product. This model may not be as efficient as the waterfall model, but it averts

some of the risk of developing software with the wrong requirements and paying big bucks for

changes. According to Sutherland (2002), productivity gains are typically at least 30% on

object-oriented projects. However, many development groups have complained that the

dramatic productivity gains promised by object technology have not been achieved using this

method.

Agile software development is the most recent family of software engineering processes in a

series of efforts of averting risk and associated cost of changing software. The agile model

presented in Figure 3 is a representation of Extreme Programming (XP), but nevertheless

brings forward the idea behind all agile methodologies. In agile methodologies, the traditional

phases (design, implementation, test) following the initial analysis are no longer organised

subsequently. Instead, these activities are done simultaneously and little at a time, throughout

software development. The cost of having to change software becomes minimal. According to

Sutherland (2002), productivity gains of 600% have been seen repeatedly in well executed

projects by using Scrum, which is a representative of the agile methodologies.

The incredible productivity gains of agile methodologies (of which Scrum was used as an

example) reported by Sutherland (2002) are questioned to a certain extent by Cockburn (2002).

According to Cockburn, successful serial development takes longer than successful concurrent

development, but requires fewer working days. In other words, Cockburn states that it might in

fact be cheaper to use serial development such as the waterfall model specifies. One should

keep in mind that in highly volatile and uncertain environments, the cost-benefit of serial

development is rapidly evaporated as in most cases the deliverable does not match with real

requirements and consequently the development process is no longer successful. Figure 4

illustrates the difference between serial and concurrent development as a function of time.

RequirementsDesignProgrammingTestElapsed TimeRequirementsDesignProgrammingTestElapsed Time

Figure 4: Successful serial development takes longer (but fewer workdays) compared to successful

concurrent development.

2.3 Agile Methodologies

Today’s software business environment continues to change at a dramatically increasing pace.

To survive and thrive in this turbulent environment, businesses need to adopt practises of

relentless innovation and flexibility to meet changing requirements. Conforming to plan is no

longer the primary goal of a project; instead, satisfying customers at the time of delivery has

taken precedence.

Similarly, the problem of increasing cost of change through the software’s development life

cycle is being tackled in a new way. The question isn’t anymore how to stop change as early as

possible but how to better handle inevitable changes. Traditional approaches assumed that if

enough resources were assigned to analysis and design in the beginning of a project, the

complete set of requirements could be anticipated and cost reduced by eliminating change.

However, in today’s business environment, eliminating change early can and should be

associated with unresponsiveness to business conditions and thus, business failure.

Agile software development is a response to the market’s demand of innovative, high-quality

software that meets its needs and is delivered quickly. The strategy is to reduce the cost of

change throughout the software development project. According to Cockburn & Highsmith

(2001a), agile methodologies stress two concepts: working code and the effectiveness of

people working together with goodwill.

Working code is something real, deliverable and measurable, as opposed to promises made to a

customer. Even more importantly, customers can test and provide feedback on working

components throughout the project. Using people effectively by having them communicate

face to face instead of writing and reading documentation achieves maneuverability, speed, and

cost savings. A team can become more effective in responding to change by (1) reducing the

cost of moving information between people and (2) reducing the elapsed time from the making

of a decision to seeing its consequences (see Cockburn & Highsmith, 2001b).

While this focus on team dynamics should ensure that a team spirit develops and team

performance improves, it can infuriate the brilliant loners who like "to pull all-nighters" as they

code software idiosyncratically in solitary confinement for 24 hours or more. But a frustrated

diva is considered a small price to pay for ensuring that the code remains relevant to the

customer's changing needs. (see Economist, 2001)

There does not exist one universally used agile methodology: Instead, a whole family of these

new approaches have recently been introduced and they offer a wide variety of methods to be

used in different development environments. Common agile software development approaches

are e.g. Extreme Programming, Crystal methods, Lean Development, Scrum and Adaptive

Software Development (ASD). Scholars largely responsible for the development of these

documented agile methodologies met in 2001 and agreed on common guidelines. The product

of this meeting was the ‘Manifesto for Agile Software Development’ (Beck et al., 2001), which

can be summarised by the following excerpt:

“We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value

- Individuals and interactions over processes and tools

- Working software over comprehensive documentation

- Customer collaboration over contract negotiation

- Responding to change over following a plan.

That is, while there is value in the items on the right, we value the items on the left more.”

Finally, we would like to remind the reader of a fact that is often forgotten: methods and

methodologies should not be implemented and maintained for their own sake. Instead, they

should be treated merely for what they are, i.e. tools for reaching business goals. Goldman et

al. (1995) discussed agility and agile processes in relation to manufacturing. Even though

software development can and should be thought of as something very different, the citation

below is just as valid in our context:

“Agility is dynamic, context-specific, aggressively change embracing, and growth-oriented. It

is not about improving efficiency, cutting costs, or battening down the business hatches to ride

out fearsome competitive ‘storms.’ It is about succeeding and about winning: about succeeding

in emerging competitive arenas, and about winning profits, market share, and customers in the

very centre of the competitive storms many companies now fear.”

2.3.1 Extreme Programming Methodology

Extreme Programming (XP), currently the most popular agile methodology (Economist, 2001),

uses techniques such as pair-programming, in which one person programs while a partner

checks the result for bugs and makes sure that only essential code is produced. Below is a

quick summary of each of the major practices in XP (see Beck, 1999).

Planning game. Customers decide the scope and timing of releases based on estimates

provided by programmers. Programmers implement only the functionality demanded by the

stories in this iteration.

Small releases. The system is put into production in a few months, before solving the whole

problem. New releases are made often—anywhere from daily to monthly.

Metaphor. The shape of the system is defined by a metaphor or set of metaphors shared

between the customer and programmers.

Simple design. At every moment, the design runs all the tests, communicates everything the

programmers want to communicate, contains no duplicate code, and has the fewest possible

classes and methods. This rule can be summarized as, “Say everything once and only once.”

Tests. Programmers write unit tests minute by minute. These tests are collected and they must

all run correctly. Customers write functional tests for the stories in an iteration. These tests

should also all run, although practically speaking, sometimes a business decision must be made

comparing the cost of shipping a known defect and the cost of delay.

Re-factoring. The design of the system is evolved through transformations of the existing

design that keep all the tests running.

Pair programming. All production code is written by two people at one

screen/keyboard/mouse.

Continuous integration. New code is integrated with the current system after no more than a

few hours. When integrating, the system is built from scratch and all tests must pass or the

changes are discarded.

Collective ownership. Every programmer improves any code anywhere in the system at any

time if they see the opportunity.

On-site customer. A customer sits with the team full-time.

40-hour weeks. No one can work a second consecutive week of over-time. Even isolated

overtime used too frequently is a sign of deeper problems that must be addressed.

Open workspace. The team works in a large room with small cubicles around the periphery.

Pair programmers work on computers set up in the centre.

Just rules. By being part of an Extreme team, you sign up to follow the rules. But they’re just

the rules. The team can change the rules at any time as long as they agree on how they will

assess the effects of the change.

According to Glass (2001), the bad news of XP are:

- Pair programming: many professionals will feel uncomfortable with this

- Refactoring: Ongoing design at development time is inefficient and impossible

to manage in large projects

- Short bursts of planning: starting a large project without a full vision of the

development project is a disaster

Glass (2001) also identified the good news of XP: unit testing, relying on metaphors,

continuous integration and the emphasis on simplicity. Nevertheless, he states that “many

elements are inappropriate for all but the tiniest projects, so there is little excuse for seeing this

as a mainstream methodology”, but that some practises could scale up to larger projects as

well.

2.3.2 Scrum Methodology

Scrum literature focuses mainly on the iterative planning and tracking process. It's very close

to the other agile methodologies in many respects and should work well with the coding

practices from XP. (Sutherland, 2002)

SCRUM’s goal is to deliver as much quality software as possible within a series (3-8) of short

time-boxes called Sprints that typically last about a month. Each stage in the development

cycle (Requirements, Analysis, Design, Evolution, and Delivery) is now mapped to a Sprint or

series of Sprints. The traditional software development stages are retained for convenience

primarily for tracking milestones. So, for example, the Requirements stage may use one Sprint,

including the delivery of a prototype. The Analysis and Design stages may take one Sprint

each. While the Evolution stage may take anywhere from 3 to 5 Sprints.

As opposed to a repeatable and defined process approach, in SCRUM there is no predefined

process within a Sprint. Instead, Scrum Meetings drive the completion of the allocated

activities.

Each Sprint operates on a number of work items called a Backlog. As a rule, no more items are

externally added into the Backlog within a Sprint. Internal items resulting from the original

pre-allocated Backlog can be added to it. The goal of a Sprint is to complete as much quality

software as possible.

During a Sprint, fifteen-minute Scrum Meetings are held each day in order to check on:

1. What items were completed since the last Scrum Meeting

2. What issues or Blocks have been found that need to be resolved

3. What new assignments make sense for the team to complete until the next Scrum

meeting

Scrum Meetings allow the development team to "socialize the team members knowledge", and

have a deep cultural transcendence. In turn, this "knowledge socialization" leads to a self-

organized team structure, where the process is invented in an adaptable way on a daily basis.

At the end of each Sprint, there is a Demo to:

1. Show the customer what’s going on

2. Give the developer’s a sense of accomplishment

3. Integrate and test a reasonable portion of the software being developed

4. Ensure real progress – reduction of backlog, not just more papers / hours spent

After gathering and re-prioritising the leftover and new tasks, a new Backlog is formed and a

new Sprint starts.

SCRUM allows us to build softer software, so there is no use trying to write full requirements

up front. The user does not know what is possible and will ask for the pre-tech-paper solution

that he perceives to be possible. But not even the software developers know fully what can be

built before it is. And therefore the user has no clue of what is possible before he can feel it, or

touch it.

The primary difference between the defined (waterfall, spiral and iterative) and empirical

(SCRUM) approach is that The SCRUM approach assumes that the analysis, design, and

development processes in the Sprint phase are unpredictable. A control mechanism is used to

manage the unpredictability and control the risk. Flexibility, responsiveness, and reliability are

the results. (Schwaber, 1996)

2.3.3 Difference between Extreme Programming and SCRUM

According to Sutherland (2002), Extreme Programming (XP) coding practises work well

together with SCRUM’s iterative planning and tracking process. Rautiainen et al. (2002b) have

compared the scopes of XP and SCRUM from a product development management and

product road-mapping perspective. The 4CC framework used in the evaluation of XP and

SCRUM identifies four cycles of control of software development. The results are presented in

Table 2 below.

Table 2: A mapping of key elements of XP and SCRUM to the concept of 4CC framework. (adopted from

Rautiainen et al. 2002b)

Concepts in 4CC \ Process Model

Strategic Release Management

Release Project Management

Iteration Management

Mini-Milestones

XP - Planning game - Metaphor - On-site customer

- Small releases -Continuous integration

SCRUM - Product backlog - Sprint planning meetings - Sprint reviews

- Release backlog - Sprint backlog - Daily Scrum meetings

Based on the information presented in the two previous sections and the short comparative

analysis in this section we can conclude that SCRUM has a high-level approach to managing

software development, i.e. that it focuses on general guidelines and does not address details

concerning software development, whereas XP has a low-level approach and addresses the

details but lacks tools to control general guidelines. Consequently, we can conclude that they

are complementary in their nature instead of excluding one another.

3 Software Business Environment

In this chapter we will present the general concept of a software business model and identify

how it relates to the firm’s external and internal environments, and to the company-internal

processes. To understand these relationships we should examine Figure 5. A business model

can be considered as a firm’s strategic way of dealing with the outside, a gateway between the

external environment and the internal processes.

BusinessModel

Product

InternalProcesses

ExternalEnvironment

InternalEnvironment

BusinessModel

Product

InternalProcesses

ExternalEnvironment

InternalEnvironment

Figure 5: The software business environment - the business model as an intermediary between the external

environment and the internal processes of a firm (adopted from SoberIT, 2002).

The external environment poses challenges and requirements on the internal processes and vice

versa, and the business model functions as an intermediary in between. Generally, when a firm

is small in comparison to the total size of the market it operates in, the external environment

can be considered quite rigid and the firm is left with little chance of shaping it. Thus, in most

cases a firm needs to align its business model and its internal processes according to the

external environment. However, if a firm achieves a very dominant market position, like

Microsoft for example, it has the ability to shape the external environment to a certain extent

according to its own strategy and processes. However, it is questionable whether this kind of

market orchestration by involuntary lock-in can be sustained in the long run (Eloranta, 2002).

The internal environment on the other hand has a direct and thus less obscure relation to the

internal processes. The internal environment and the internal processes also pose challenges

and requirements on each other, but without an intermediary. Consequently it is easier to

understand the causality of various implications, but this does not by any means mean that this

relationship would be stronger. Because firms often have the ability to shape both the internal

environment and the internal processes, this relationship can be considered easier to deal with

In this chapter we will start by looking at the external environment and assume that it strongly

affects a firm’s strategic options and the internal processes. We will also take a short look at

the internal environment in order to give the reader an understanding of the concept but the

discussion will be limited to a general overview since this has been ruled out of our scope.

Finally, we will provide a general definition of what we mean by the firm’s internal processes

and of a software business model.

3.1 External Environment

In this sub-chapter we will present a short overview of the fundamental elements of the

external environment. The purpose is to give the reader a general understanding of the

environmental elements as a reference for future discussion. Here the purpose is not to

extract specific environmental factors that affect the internal processes. This discussion will be

introduced in conjunction with the presentation of the business model elements.

Hitt et al. (1999) present a comprehensive set of external factors, which is illustrated in Figure

6.

Figure 6: The company’s external environment (adapted from Hitt et al., 1999).

The general environment is composed of elements in the broader environment that can

influence an industry and the firms within it. The general environment cannot directly be

controlled by a single player, and thus the strategic challenge is to understand the impact of

each of these elements and align the company’s business model accordingly. The demographic

segment includes issues such as population size, age structure, ethnic mix and income

distribution. The economic segment encompasses inflation and interest rates, GDP

development, as well as trade and budget deficits or surpluses. The sociocultural segment deals

with gender equality, environmental concerns, and quality of work life. The political/legal

segment discusses antitrust, taxation and labour training laws, and educational policies. The

technology segment treats innovation and R&D expenditure levels, and finally the global

segment discusses international politics, access to critical global markets, and cultural aspects.

The industry environment encompasses a set of factors that directly affect a company and its

business model. These factors are: threat of new entrants, power of suppliers, power of buyers,

product substitutes, and intensity of rivalry. The interactions of these factors determine the

industry’s profit potential and the ability of a particular company to favourably influence them

determines its potential to earn above-average returns.

The competitor environment is the firm’s understanding of its competitors and it

complements the insight provided by a study of the general and the industry environment. A

competitor analysis should encompass benchmarking in at least the following areas: future

objectives, current strategy, assumptions and capabilities.

3.2 Internal Environment

In this section we will present a short overview of the fundamental elements of the internal

environment. Again, the purpose is to give the reader a general understanding of the

environmental elements as an explication to earlier discussion – not to extract specific factors

that impact the internal processes.

Hitt et al. (1999) define three elements in the internal environment as the foundation of

competitive advantage: resources, capabilities, and core competencies. Resources are inputs

into a firm’s production process such as capital goods, skills of individual employees, patents,

and finance. Capabilities represent a firm’s ability to utilise allocated resources. Capabilities

are often based on developing, carrying and exchanging information and knowledge through

the firm’s human capital. Core competencies distinguish a company competitively and reflect

its personality and they emerge over time through an organisational learning process. Core

competencies are the essence in differentiating a company in its ability to provide value to

customers over a long period of time.

3.3 Internal Processes

A process in this context is a series of activities with a specific purpose. A process is actually

very similar to a methodology in the sense that it is everything you do to achieve a certain goal.

In the context of this report we distinguish them by stating that a methodology represents the

strategic decision to operate in a certain way, whereas a process is the embodiment of the

methodology. This difference is, however, not important and the terms will be used as

synonyms. Consequently, internal processes are modes of operation within the firm.

3.4 Software Business Model

The concept of a business model is in frequent use especially by strategy- and IT-consultants,

but most of them use the expression quite freely to signify anything related to the way a firm

conducts its business.

Before the term business model had entered the arena, one might have used for example the

definition of a product strategy for discussing strategic issues and company operations

related to a specific product. The concepts of core product and whole product are discussed in

the literature of strategic marketing. According to Cravens (1987) a product strategy consists

of the following dimensions:

1. Positioning of product offering

2. Setting strategic objectives for product offering

3. Selecting a branding strategy

4. Developing and implementing new strategies

This definition of a product strategy focuses on the external market environment and does not

address e.g. the product development process. Consequently it is by far too narrow to suite

our needs.

Another concept used for describing a firm’s vision of generating value with its functional

capabilities is technology strategy. According to Maidique & Patch (1978), technology

strategy is defined by a set of interrelated decisions encompassing e.g. technology choice,

level of technology competence, level of R&D funding, timing of technology introduction in

new products/services, and organisational capabilities for technology application and

development. Technology strategy is analogous with financial and human resource strategies

(Burgleman & Rosenbloom, 1989), and it is much broader than R&D strategy (Mitchell, 1986).

In comparison to Cravens (1987) definition of a product strategy, which discussed the external

market strategies, technology strategy seems to have an internal focus.

Today these definitions are, especially when treated separately, far from sufficient in

explaining the concepts we want and need to associate with a business model. The first

literature definitions of a business model appear in the late 1990’s. Put simply, a business

model is a machine for turning valid ideas and opportunities into money (Whittingham, 2000).

Figure 3 below illustrates on a conceptual level the scope of a business model in comparison

to the scopes of technology strategy and product strategy.

Business Model

TechnologyStrategy

ProductStrategy

Business Model

TechnologyStrategy

ProductStrategy

Figure 7: A conceptual illustration of the scope of a business model in comparison to the scopes of

technology strategy and product strategy.

Only recently have academic efforts been made in order to establish a definition of the concept

of a business model. The first literature definitions of a business model appear in the late

1990’s. Put simply, a business model is a machine for turning valid ideas and opportunities into

money (Whittingham, 2000).

Rajala et al. (2001) define a business model as an entirety comprising of two elements: value creation and value appropriation. The same research report also identifies a three-step

evolution of ideas, or concepts, as the root of a business model. These concepts are:

business idea, business plan, and corporate and business strategy. A business idea explains

the existence of a company by answering the questions:

1. What? 2. To whom? 3. How?

A business plan is a written explanation of how the business idea is put into operation. A

corporate strategy answers the question: What businesses is the company involved in? In

addition, it deals with resource deployments and environmental interactions. A business

strategy focuses on one particular business, or product segment. According to the definition,

one business strategy corresponds to each business model. Consequently, a corporate business

portfolio may include several business models. Figure 8 presents a graphical description of this

interrelationship between the discussed concepts.

CorporateBusinessPortfolio

Business Strategy

Business Plan

Business Idea

Corporate Strategy

BusinessModel

CorporateBusinessPortfolio

Business Strategy

Business Plan

Business Idea

Corporate Strategy

BusinessModel

Figure 8: The concepts of business idea, business plan, business strategy and corporate strategy linked to

the concept of a business model.

Furthermore, the study by Rajala et al. (2001) defined a conceptual framework of a software

business model, which is presented in Figure 9. This framework divides a business model into

four elements and an extensive set of sub-elements. The four main elements are: product

development model, servicing & implementation model, marketing & sales model, and

revenue logic. We want to remind you that a business model focuses on one product/business

only. If a company has several products, it will consequently need a portfolio of business

models as well. But as we will see, business models can support and rely on each other

strategically.

Marketing &Sales Model

Servicing &Implementation

Model

ProductDevelopment

Model

RevenueLogic

BusinessStrategy

ProductOffering

CompetingEnvironment

Customers

FinancingEnvironment &Stakeholders’Utilities

ResourceEnvironment

BusinessModel Marketing &

Sales Model

Servicing &Implementation

Model

ProductDevelopment

Model

RevenueLogic

BusinessStrategy

ProductOffering

CompetingEnvironment

Customers

FinancingEnvironment &Stakeholders’Utilities

ResourceEnvironment

BusinessModel

Figure 9: Elements of a business model (Rajala et al., 2001).

The framework is the most comprehensive definition currently available and does indeed

include the most important factors. This framework does also support the previously presented

relationship between the external environment and the internal processes of a firm with the

business model as an intermediary in between (see Figure 5). However, it does not establish the

frontier with the internal processes as clearly as with the external environment, and this poses

some challenges on us as we are especially interested in the factors of the business model that

affect the internal software development processes. Consequently, we will have to look at each

of the business model elements and their sub-elements to establish a set of factors that affect

the internal processes of our interest, the software development process.

4 Business Model Elements & Internal Process Impacts

In this chapter we will look at each of the elements that constitute a business model and

identify factors that affect the internal software development process. Discussion will focus on

providing a general description of each element and on linking the element at hand to both the

external environment and to the internal software development processes according to the

research methodology presented in Figure 1 in the research methods-section in the introduction

chapter. Note that only the software development process is in our scope and hence impacts on

other processes will not be discussed.

A summary of the findings will be provided in the sub-chapter 4.5.

4.1 Product Development Model

Technology strategy is one of the most important aspects of any firm’s strategic posture

especially in dynamic environments such as the computer software industry (Zahra & Bogner,

1999). According to Rajala et al. (2001), the product development model defines how the

process that creates the value proposition is structured, i.e. what components it comprises of

and which actors provide them. In this section the product development model element has

been divided into several sub-elements in order to provide the reader with understanding of all

aspects. The Rajala et al. (2001) study chose to focus on only one of these sub-elements,

namely the value proposition type. We have identified three additional sub-elements of the

product development model: product cooperation & networking, product compatibility and

intellectual property rights management.

4.1.1 Value Proposition Type

The value proposition type can be defined as a combination of the object of trade, the degree of

productisation, the novelty, the complexity, and the criticality of the offering.

Object of Trade

According to Nukari & Forsell (1999), the offerings, or objects of trade, of the software

industry can be roughly divided into three categories: software products, customer tailored

software (or customized software), and embedded software, as shown in Figure 10.

EmbeddedSoftware

Customer-TailoredSoftware

SoftwareProducts

EmbeddedSoftware

Customer-TailoredSoftware

SoftwareProducts

Figure 10: Three types of software offerings: customer-tailored software, software products, and embedded

software (Nukari & Forsell, 1999).

Software products are traded on their own, not as part of other products. Although software

product business often includes other things such as installation, training, and even

customisation, the main object being traded is software. (Hietala, 2001)

Embedded software, on the other hand, consists of software that is built into other products,

such as cellular phones, refrigerators, paper machines or television sets, and not sold separately

(Hietala, 2001). Embedded software has several characteristics of pure software products, e.g.

it is developed once, it is sold in many identical copies, it has high development costs and low

manufacturing costs, but from a customers point of view it is not the essential issue.

Customer-tailored software, or customized software, are traded as a package consisting of

consulting services, feasibility and IT advice, software development, installation, training and

support. The main object being traded is the effort of making the software. Instead of buying a

software product in an off-the-shelf package, the customer pays for the work of making the

software specifically for her needs.

The object of trade is determined by customer needs and market characteristics such as market

size and heterogeneity, customer willingness to pay for personal services, and customer

perceived value driver. The type of the object of trade does have some implicit impact on the

internal software development processes. However, the impact is caused by the difference in

the degree of productisation that is directly associated with whether the offering is a product or

tailored software. No direct conclusions can be made on the impact of embedded software

either. Consequently, we will not consider the object of trade as an element impacting the

internal software development processes.

Degree of Productisation

Software can be prefabricated, developed specifically to the needs of each customer, or a

combination of the two. This dimension, the degree of productisation, is crucial in striking a

difference between software product and project business. (Hietala, 2001)

Hoch et al. (1999) identified three levels of productisation in the software business:

professional services. Enterprise solutions, and packaged mass-market software. Figure 11

illustrates the spectrum of software productisation and shows the positioning of the identified

software offering types within it.

1

10

100

1 000

10 000

100 000

10 000 000

1 000 000

Professional Services

EnterpriseSolutions

PackagedMass-Market

Software

Degree of Productisation

Unit Sales

MediumLow High

1

10

100

1 000

10 000

100 000

10 000 000

1 000 000

Professional Services

EnterpriseSolutions

PackagedMass-Market

Software

Degree of Productisation

Unit Sales

MediumLow High

Figure 11: Three levels of productisation in the software product and service business: professional

services, enterprise solutions, and packaged mass-market software (Hoch et al. 1999).

Packaged mass-market software products are sold off-the-shelf. The level of productisation

is very high and identical copies are sold to large number of customers.

Professional services are customer tailored software. The software is developed according to

the needs and specifications of individual customers, resulting in a low level of productisation.

The software is rarely reproduced in its original form, although consulting companies offering

customer-tailored software often reuse some of the software components. The accumulated

knowledge and problem solving skills from previous projects are of high value.

Enterprise solutions are a combination of packaged software and software tailoring services.

The need for this type of solutions arises when a packaged software isn’t sufficient for the

customer, but it is still cheaper to work from a packaged software than to start from scratch. In

fact, many consulting companies try to develop a customisable product, which they then use

for communicating their skills.

The object of trade is determined by customer needs and market characteristics such as market

size and heterogeneity, customer willingness to pay for personal services, and customer

willingness to compromise on specifications. The degree of productisation does have an

obvious impact on the internal software development processes. A low degree of

productisation calls and allows for more customer cooperation in e.g. requirements

management, and also necessitates early and continuous test releases to allow the customer to

evaluate tangible prototypes. Thus, an agile and flexible methodology is important. On the

other hand, a high degree of productisation often rules out direct customer cooperation as there

is no specific customer who to turn to. Instead, customer intelligence and marketing should be

incorporated to the development process so that the developed product satisfies the needs of a

large amount of customers. To reach a high level of productisation, the customers’

requirements need to be similar across the market and the customers need to be willing to

compromise on the specifications. Agility and flexibility of the software development

methodology is not a necessity because of the customers’ needs. Packaged mass-market

software development can be successfully executed with both robust and agile approaches.

Often no customer cooperation is available, which makes the implementation of agile practises

harder.

Offering Novelty & Radicality

The dimension of offering novelty, or radicality, is a relative measure between the

characteristics of the current and the previous offering. Radicality is evidenced usually in the

newness of the technology itself (as in the case of breakthroughs or paradigm shifts), or in the

newness of applications the technology offers to the customer. Offering radically new

technologies (products) can be risky because customers may not accept them, or they may not

become the industry’s standard. On the other hand, if customers do accept the new technology

(product), the firm will be able to benefit from its first-mover advantage.

According to the results of an empirical study by Zahra & Bogner (1999), new product

radicality has a positive impact on both return on equity and market share in dynamic

environments and a negative impact on both parameters in highly competitive environments

when price is the primary source of competitive advantage. The success of new product

radicality does not seem to be influenced by the level of competition in regard of quality as the

primary source of competitive advantage, nor by the level of fragmentation of markets.

Technology and product novelty correlate with uncertainty of requirements during the

development phase, which further correlates with market dynamism. In dynamic environments,

flexible and agile development methodologies have most advantage. The level of competition

in regard of price does impact the software development process in the sense that when cost is

the primary source of competitive advantage, one should implement the least costly

methodology. As presented earlier in sub-chapter 2.2 in Figure 4, successful serial

development is less costly than successful concurrent development. In dynamic and price-

sensitive environments, concurrent development is expected to significantly outperform serial

processes because of its superior ability to handle uncertainty.

Offering Complexity

Cockburn (2002) uses the term ‘problem size’ to describe “the number of elements in the

problem and their inherent cross-complexity.” There is no absolute measure of problem size, or

offering complexity, since different people with different knowledge and experience are likely

to make different estimations. However, in many cases it is possible to make estimations and

comparisons (launching a space shuttle is a bigger problem than printing a firm’s invoices).

Customer demands and market characteristics shape the complexity of the offering. The

development of a very complex software product requires more management efforts, control

mechanisms and pre-defined processes, whereas a simple product can be developed largely

without any predefined practises at all. Cockburn (2002) uses the term “methodology weight”

to describe the robustness of a methodology. The question of serial vs. concurrent development

cannot be answered in terms of offering complexity, although agile approaches are generally

recommended for less complex projects.

As an alternative approach to evaluating the problem size, we can use some parameters of the

planned project. This approach is not always convenient since it requires a complete analysis of

the problem and also planning of the entire project. Nevertheless, if this has already been done

we can use it as a guideline in determining the problem size. Figure 12 illustrates project

complexity in terms of project size (number of people) and project length.

Project Length

Project Size(Number ofPeople)

MediumShort Long

2

4

8

16

32

64

128

256

High Complexity

MediumComplexity

LowComplexity

Project Length

Project Size(Number ofPeople)

MediumShort Long

22

44

88

1616

3232

6464

128128

256256

High Complexity

MediumComplexity

LowComplexity

Figure 12: Complexity levels of software projects in terms of project size (number of people) and project

length.

Projects with a low level of complexity (small & short project) will not require much overhead,

e.g. in the form of formal documentation. As complexity increases (larger & longer project)

however, more and more formality is required in order to keep track of all parameters,

eventually increasing methodology weight.

Offering Criticality

Offering criticality refers to the impact an undetected defect will have on the customer.

Cockburn (2002) divides criticality into four categories: loss of comfort, loss of discretionary

money, loss of irreplaceable money, and loss of life. Offering criticality affects the

development environment in the way that low criticality necessitates a less formal approach

with low methodology weight, whereas high criticality requires an extensive safety-net with

control mechanisms and high methodology weight.

Project criticality is determined by similar factors, i.e. customer needs and market

characteristics, and has a similar impact on the software development processes as project

complexity. High criticality requires a robust methodology whereas a less critical project is

better off with less expensive, lightweight processes. Project or offering criticality is in essence

a type of risk management – in high-risk operations you pay more to manage the risk with

methodology weight. In general terms, methodology weight can be added to both serial and

concurrent processes.

4.1.2 Product Cooperation & Networking

If the product or the product family of a software company is unique and specialised enough,

the company may not have any necessity of cooperation. Either the synergy effects of

cooperation are non-existent, or the company’s products do not face serious competition and

there is no immediate need for seeking additional business value for the offering from grouping

it together with other products.

More often, however, companies decide to work together. In such partnerships, we generally

find one company functioning as a product integrator, or market front-end, bringing all

components together into one basket. Customers can then be allowed to chose components

according to their wishes, or they may have to buy the entire integrated product. The individual

companies may continue with their own sales activities as well, or they may choose to engage

in a strong strategic alliance and rely on the product integrator for all sales and marketing

activities and focus their own efforts on product development. Either way, obviously there

needs to be an agreement about sharing the revenue stream for the partnership to work.

Figure 13 illustrates the strategic cooperation postures a software company may chose to align

to. The illustration is very much simplified but nevertheless highlights the aspects we wish to

bring forward. Part A illustrates a situation where each company works for themselves without

any cooperation. In part B the companies have formed a loose strategic alliance. They are

selling their offerings as a product family via the product integrator, but are still engaged in

own sales activities as well. In part C the companies have formed a strong strategic alliance

and the companies’ products are only offered via the product integrator.

Company E

Company D

Company C

Company B

Company A

Market Company D

Company C

Company B

ProductIntegrator

Company A

Market Company D

Company C

Company B

ProductIntegrator

Company A

Market

A B C

Company E

Company D

Company C

Company B

Company A

Market Company D

Company C

Company B

ProductIntegrator

Company A

Market Company D

Company C

Company B

ProductIntegrator

Company A

Market

A B C

Figure 13: No product family cooperation (A), loose strategic alliance (B), and strong strategic alliance (C).

As mentioned, the situations described in Figure 13 are much simplified and we can find many

hybrid partnership models as well. Oracle Corp. for example has formed a loose strategic

alliance with several software companies, but has decided to simultaneously compete with each

of them by developing matching components in-house. The other partners rely too much on

Oracle’s product for their sales and consequently can’t afford to brake up the alliance. IBM, on

the other hand, has decided to pursue another strategy in its competition with Oracle. It wants

to form a stronger alliance with its partners, which to a great extent are the same as Oracle’s,

and has made a strategic decision not to compete with its partners. In other words, IBM is

backing a best-of-breed approach in which it stitches together a quilt of business software from

various companies, including itself. Obviously, IBM is winning most of the other companies

on its side, leaving Oracle more and more alone. It is, however, too early to say which strategy

is the more viable one. The comment of Oracle CEO Lawrence J. Ellison on IBM’s strategy

was “You would never buy a car that way”. (see Kersetter & Spencer, 2001)

The success of any of the presented cooperation and networking options is dependent on the

interrelation between internal and external environmental factors. The most profound

characteristics are (1) the relative strength of the discussed company in comparison to the size

of the market and (2) the level of competition. A very strong player may have the ability to

sustain its market position without extensive cooperation in a market with low competition. As

the relative strength of the company decreases and the level of competition increases, it

becomes increasingly difficult to succeed without cooperation. According to the empirical

study by Zahra & Bogner (1999), external technology sources and strategic alliances in product

development have a positive impact on both return on equity and market share under all four

investigated external environment moderators (market dynamism, competition on price,

competition on quality, fragmentation of market), except being insignificant in the case of

growth of market share in situations of quality as the source of competitive advantage.

Software development in a network poses some challenges on the individual players as well as

on the network as a whole. As each player will focus on their own component of the entirety,

co-ordination and orchestration of the interfaces and, even more importantly, the vision of the

future deliverable becomes crucial. In essence, this is a question of communication

management over large distances since it would be almost impossible to have the different

players work close to each other. According to Cockburn (2002), delays and lost-opportunity

costs will rise in correlation with the increase in distance and the degeneration of means of

communication. Extensive documentation will be required in order to distribute information to

all parties as well as store the information for future use. In short, the impact of technology and

product development cooperation on the firm’s internal software development processes is

increased project complexity and thus implicitly increased methodology weight.

4.1.3 Product Compatibility

Software built on different standards do rarely work well together and most often the

underlying technology and product platform is the decisive factor. Obviously customers will

want their software to work seamlessly together and consequently non-compatibility can be a

real deal-killer. What implications does this pose on software companies?

Firstly, companies need to align their product development according to existing technology

standards and platforms such as operating systems. Secondly, companies need to create several

versions of their products if they wish to offer their product to customers using different

standards. Thirdly, companies should co-operate to decrease the number of industry standards

and thus limit the necessity of versioning. To sum it up, the multitude of standards seems to

pose a lot of trouble and extra work for software companies.

But companies may also use incompatibility to leverage the value of their own offering. In

other words, companies may benefit from the fact that other offerings are not compatible with

theirs. For example, large companies can create their own proprietary standards, then package

new software utilising this standard together with a product family which already has large

market penetration, and make customers use their new software. Because the large company

can rapidly distribute its own software to a large number of customers, its proprietary standard

will in fact become a de facto industry standard, and thus kill competition. Microsoft Corp. has

for a long time successfully exercised this kind of a competition killing strategy. Perhaps the

best known example is that of the MS Internet Explorer, which was distributed in conjunction

with other Microsoft products with tremendous market shares, and made it very difficult for

other players to compete. A more recent example is that of MS Windows Media Player 8,

which contains a new music-compression format called WMA. The WMA is positioned to

replace the now popular MP3-format with several technical advantages such as smaller file

size. If Microsoft succeeds, they can add yet another proprietary de facto industry standard into

their portfolio.

The existence of several standards in one market causes either extra expenses or lost sales to

software companies, depending on how compatible they want their offering to be. Several

standards in one market actually effectively splits the market into separate segments with low

cross-border competition because of the compatibility problem. Consequently, in today’s

competitive environment software companies need to address the issue of compatibility in their

product development by e.g. developing modular products, which facilitates versioning and

frequent upgrades. There seems to be a few exceptions to the rule that compatibility is good –

(1) when a player is strong enough to attempt to utilise its market position in adjacent markets

to leverage its position and doing it by introducing a product which lacks compatibility with

competitors’ products but facilitate own compatibility, and (2) when a new technology is

expected to clearly outperform existing competition the holder of the technology may utilise

non-compatibility to leverage its own offerings.

The development of market-compatible offerings requires an external focus, which is bound to

increase methodology weight in terms of communication and management of external relations

and factors. If several compatibility segments are targeted by versioning of the offering,

iterative processes in the development of the external interfaces will remove most of the

duplicate work otherwise experienced with traditional serial development for each version.

4.1.4 Intellectual Property Rights Management

According to Shapiro & Varian (1999), digital technology poses two challenges for rights

management. First, it reduces the cost of making copies, Second, it allows the copies to be

distributed quickly, easily, and cheaply. These challenges offer opportunities in terms of

advertising e.g. by giving away free samples. Obviously it benefits those who sell illicit copies

as well, but their need to advertise caused by growth visions will eventually attract too much

attention and result in them being caught. In the short term however, illicit copying is a

significant problem. In fact, a Business Software Alliance (2000) Delphi survey among its

member companies’ CEOs identified strong copyright protection as the factor that they believe

will have the greatest impact on the future of the software industry. However, according to

Shapiro & Varian (1999), copy protection schemes impose costs on users and are highly

vulnerable to competitive forces, and are thus unlikely to play a significant role in mass-market

information goods.

A recent development against the traditional approach of proprietary software development is

the open source software phenomenon. According to Schrage (2000), the question of open

source vs. proprietary software will have a position similar to such core strategic questions as

make vs. buy, standardised vs. customised and expense vs. investment. Let’s take a closer look

at what implications open source software has on the software industry.

Open source software is software for which both source code and binaries are available for

free. The main benefit of open source software is that a large population of software developers

can be motivated to work for “free” if they can be convinced that the new software will be of

benefit to them. The much larger community of developers has a major impact on both code

writing and debugging, often resulting in better code faster (see Raymond, 1999). However,

once the software is ready to be used commercially, it lacks business value because it can be

acquired for free, e.g. from the Internet. Consequently, business value needs to be created from

other components that utilise the open source technology, but are proprietary. These other

components can be physical, such as hardware, CDs and manuals, or other software. In the

context of this report we will classify a firm as a software company only if the source of

competitive advantage is internally developed software.

In summary, all software companies should strive to reap the benefits of open source software,

but should keep in mind that it cannot be the value driver of their offering. Consequently, in

our opinion, Schrage (2000) was not correct with his comment that open source software

would pose a viable strategic alternative to proprietary software for software companies, since

open source software can never be a source of competitive advantage for them.

The success of intellectual property rights management is greatly affected by external

environmental factors. Furthermore, markets are affected differently depending on the level of

productisation – the intellectual property rights of tailored or customised software are much

easier to manage than those of mass-market products, because of obvious restrictions on the

benefits of illicitly copying tailored software. Players in markets with a high degree of

productisation need to consider three issues. First, the level of illicit activity affects directly the

success of any business model. Second, strict copy protection enforcement poses costs on users

and source code visibility and openness is of strategic importance especially to business

customers (intellectual property rights may be imposed even though source code is available to

customers, although illicit activity is harder to control). Third, according to Shapiro & Varian

(1999) the use of copyrights, patents and other means of protecting the company’s intellectual

capital in dynamic environments appear to speed up the diffusion of knowledge to rivals and

therefore undermine company performance. In summary, copy protection enforcement is bad

to business, but so is illicit activity. Companies need to analyse their target markets and select

the optimal trade-off.

The impact on the internal software development processes of open source software utilisation

is that the specifications of the utilised code cannot be affected by the company (unless it

participates in the open development process or it alters the code before utilising it) and that

the remaining components developed internally need to be constructed around the open source

software. Consequently, the final solution may be far from optimal. The available open source

components should be identified already during the analysis-phase of the project so that they

can be appropriately incorporated to the development plan. Otherwise there is a risk that the

open source code will not fit to the implemented architecture. If open source code is still under

production, it is very risky to rely on it being delivered in a specific time-frame because the

development is often based on voluntary work by some community. In summary, open source

software utilisation offers obvious cost savings but poses challenges on project planning and

management in terms of architectural design compatibility & risk.

Copy protection schemes or illicit activities in the market do not have a major impact on

software development processes because the format the software is distributed in as well as the

way the intellectual rights are managed are separate from the development process.

4.2 Revenue Logic

Rajala et al. (2001) define the revenue logic element as an entirety including both sales

revenues and other sources of financing, and pricing strategy. However, the general

understanding in the field of economics is that financing and operative decisions should be

dealt with separately, not directly affecting each other. The obvious limitation to this is that

without financing, it is not possible to act on the operative level either. Nevertheless, we agree

with the general opinion and do not believe that sources of financing should be included as

elements in the business model. Consequently, we will next discuss sources of revenue and

pricing strategy.

4.2.1 Sources of Revenue

Hietala (2001) divided the sources of revenue for software product and enterprise solutions

business models into six groups. These were (in parenthesis the per cent amount of total

revenues in the software business in Finland in 2000): sales and rentals of user licenses (50%),

customer specific projects and tailoring (23%), customer installations (6%), user training (7%),

maintenance and customer support (11%) and other (3%). In addition to these, Rajala et al.

(2001) identified the loss leader, the media and the magic revenue models.

Licensing is a revenue model that generates cash flow through sales, rentals or subscriptions of

proprietary software products. The terms of payment vary but the essential issue of handing

over the right to use proprietary software in exchange for compensation remains. Profit

sharing is another way of arranging for compensation; once the customer generates revenues

of its own using the traded software, a certain percentage is transferred to the party selling the

proprietary software product.

Customer specific projects, installations, training, maintenance and support create a revenue

stream in comparison to the effort exercised by the service provider, which is called effort-

based compensation. Compensation drivers can be worked hours, number of tasks, or a pre-

arranged amount based on an estimate of either one.

In business models where software is an embedded components of another product or service,

we will have another set of sources of revenue. If the main component of the deal is a physical

object such as hardware, the compensation for the software is included, or embedded, in the

hardware deal. On the other hand, if the main offering of the vendor is a service, e.g. on the

Internet, and the software is handed out for free in order to stimulate the use of these on-line

services, we talk about a loss leader model. Revenue is acquired as a payment for the use of

the services.

In a media model software is used to create a community of users. Third parties are then sold

access to this community, for example in the form of advertising or in the form of behavioural

information and statistics. Revenue is collected in the form of fees from the third parties.

According to Glynn (1999), the magic revenue model involves a large group of different

economic effects, for which the common factor is that the company can appropriate value

created by the good or service in economic exchanges with third parties.

The success of a specific approach on the source of revenue is highly dependent on external

environmental factors. A software good may be valuable to a number of parties in the market.

In such cases it is necessary to analyse their ability and willingness to pay to establish the

most lucrative revenue model. An example when software has value to a number of parties is

an electronic marketplace - primary users such as customers experience value as they can

shop on-line and don’t need to leave their home, secondary users such as suppliers

experience value as they can sell on-line and cut their cost of sales, and tertiary users such as

advertisers experience value as they gain access to an established user community. How

should revenue be generated to the software supplier?

In our opinion it is very difficult if not impossible to make generalised judgements about the

strategies related to selecting the best revenue model. External factors that affect the success of

a specific model and consequently should be analysed prior to selecting a revenue model are:

the market structure in terms of user groups experiencing value from the software, their

proportional strength, interdependency, and ability & willingness to pay. The selection of

revenue model is one of the most fundamental strategic decisions in the software business,

especially in the case of network goods.

We do not believe that the source of revenue does affect the internal software development

processes, i.e. the choice of methodology. The supplier can choose to collect revenues in a

number of ways but the total amount collected should correlate with the value generated to a

customer. The supplier’s task is to maximise this value by selecting the appropriate

methodology, independent of the chosen way of collecting compensation for this delivered

value.

4.2.2 Pricing Strategy

A pricing strategy is fundamentally coupled with the sources of revenue and consequently

these need to be considered together. Cost is often coupled with uniqueness as opposite poles

of competitive advantage. Hitt et al. (1999) identify two main types of pricing strategy: cost

leadership strategy and differentiation strategy. A cost leadership strategy aims to produce

products at the lowest cost, relative to competitors, with features that are acceptable to

customers. A differentiation strategy is designed to produce products that customers perceive

as being different in ways that are important to them. Differentiation does not necessarily have

to be done with something tangible – many software consulting companies use their reputation

to reap a market premium for their services.

The trade-off between cost and uniqueness in terms of competitive advantage does hold for the

software tailoring, or project, industry where software is developed from scratch according to

the specifications of the customer. However, once the same good can be sold to a number of

customers, the special characteristics of the software industry change the rules. As the software

development costs can be considered sunk, economies-of-scale become increasingly important

as it allows the supplier to spread the development costs on a larger number of customers.

Different potential customers have different valuations of your software product, and

consequently have different willingness to pay. In order to maximise your profit you should

find a way to sell your product at different prices to the different customers. Shapiro & Varian

(1999) have identified a number of pricing strategies that allow you to do this: versioning of

information, bundling of information, non-linear pricing and promotional pricing. The core

idea behind these strategies is to create a number of products in stead of just one and emphasise

differences so that customers may select an offering and price most suitable to them.

Pricing strategy should also reflect the general strategy of the company in the competitive

environment. Sometimes short term benefits may turn out to have a negative impact on the

future. For example, high prices in the early stages may hinder the creation of a critical mass of

customers, as well as attract competitors. Pricing strategy is affected by external environmental

factors. The degree of productistation expected by the market has a fundamental impact as

described above. Furthermore, the competitiveness and the size of the market pose constraints

on the amount of potential customers.

In a market with a low degree of productisation, pricing strategy does have an impact on the

internal software development process while there are differences in cost and time-to-market

characteristics of different software development methodologies. If we look back at Figure 4,

which illustrates the difference between successful serial and concurrent development in terms

of time-to-market, we realise that a concurrent methodology is more suitable for a

differentiation strategy, whereas serial development is more appropriate for a cost leadership

strategy, as long as uncertainty of customer requirements does not make it inapplicable.

When producing mass-market software products and offering them in different versions to the

potential customers, iterative software development may prove most cost-efficient for the

components subject to versioning.

4.3 Marketing & Sales Model

According to Rajala et al. (2001), the marketing and sales element reflects the decisions of

marketing strategy and distribution strategy including distribution channels. Kotler (2000)

defines marketing strategy as a “game plan” to accomplish the objectives of the marketing

plan, i.e. manoeuvring under the restrictions of market conditions. This definition includes

everything from advertising, customer relations and competitive intelligence to matching

demand and supply. In essence, marketing is the company’s way of communicating with the

outside world. This topic seems by far too much of a challenge to be covered in this paper. We

will confine with concluding that a marketing strategy should reflect the nature of the offering,

with direct and more personal customer relations models for services and more efficient and

impersonal models for packaged products.

Elements of the distribution strategy are e.g. sales channels and logistics. The demands set by

logistics obviously depend on the type of offering at hand. Packaged software can be

distributed as physical products, whereas services generally need at least some degree of

human interaction and on-site operations. Both types of offerings can also be delivered

electronically, and with the development of security on the Internet more and more transactions

are expected to be totally electronic.

Rajala et al. (2001) identified one direct and six indirect types of sales channels, in addition to

strategic partners. McHugh (1999) points out that direct selling is especially important in early

stages in company development to secure first customers, but that it generally remains

dominant later on as well. Indirect sales models are used to provide greater selling coverage

and implementation muscle.

The indirect sales channels are: agent, dealer, distributor, re-publisher , reseller, and retail

outlet. Agents, dealers and retail outlets do in essence the same thing: sell the product to the

final customer. Distributors sell large volumes of products through a network of dealers. Re-

publishers label the product as their own and sell it as a part of their product portfolio.

Resellers sell the product to the final customer and package it with related software products or

services.

Strategic partners provide products or services that complement each other. Essential is that

the value of the combined offering exceeds the combined value of the individual offerings.

Strategic partners provide an excellent sales channel, especially if the offerings of the two

companies are closely tied together and consequently their sales are tied to each other. A

strategic partnership network can consist of, besides the customer, software product

developers, consultants, system integrators, service providers and outsourcers. Strategic

partners will be discussed further in association with the servicing and implementation model

below.

The external success factors of the sales & marketing model are the availability and quality of

indirect sales channels, the level of market fragmentation and difficulty of reaching potential

customers, and the level of competition (increased competition necessitates increased

marketing efforts). When selecting the appropriate software development methodology, the

applied sales model needs to be considered. As most agile methodologies rely on a customer

providing constant feedback and information, an indirect sales model does seem like an odd

match. Nevertheless, it is possible to define a “customer” within the own organisation who

would represent the sales & marketing front-end with most customer contact, but results are

dependent on how reliable the flow of information really is. If requirements are well defined

and customer contact is scarce, a viable alternative would be to use the more cost-effective

serial development approach. Nowadays more and more companies tend to turn away from this

approach, however, and instead establish themselves a network of partners or virtual customers

to test the product under development. Then an iterative approach is used together with

feedback from this test-user community.

In the case of a direct marketing & sales model, the availability of customer cooperation should

definitely be explored. In the case of a consulting type of business where software is tailored

according to customer specifications, projects should be set up in a way that involves constant

communication between the supplier and the customer. In the software product business a new

version should be released to a test group after each iteration cycle in order to collect feedback

on the new features.

4.4 Servicing & Implementation Model

The servicing and implementation model includes all offerings related to the company’s core

product or service. They can either be provided by the company itself or a network of strategic

partners.

In the software business, as in many other businesses, customers are becoming more and more

demanding and often require a set of integrated offerings instead of a single one. This has been

especially evident in the B2B segments. At the same time, however, the customers don’t really

know what they want and that therefore they must often be led and educated to raise their

expectations. Consequently companies able to provide a total customer experience rather than

providing just bits and pieces will have a competitive edge. Recognizing that value can be

created only in the customer’s space, the customer focused mindset understands and articulates

activities in the “customer activity cycle” presented in Figure 14; “pre” the experience when

the customer is deciding what to do, “during” the experience when the customer is doing it,

and “post” the experience when the customer is keeping it going, updating and reviewing. The

“value adds”, or activities, performed by the vendor, or in this case the network of strategic

partners, are: consulting (strategic, feasibility and IT advice), systems and software integration,

sourcing assistance, installation, training, support, maintenance, and new offering

development.

”PRE”’deciding what to do’

”DURING”’doing it’

”POST”’keeping it going’

CustomerActivityCycle

CONSULTING

FEASIBILITY AND IT ADVICE

SYSTEMS & SOFTWARE

INTEGRATION

SOURCING BUYING DISTRIBUTING CONNECTING

PILOTING INSTALLING

TRAINING & ON-LINE HELP

DIAGNOSING REPARING

PLANNED PREVENTATIVE MAINTENANCE

REVIEWPLAN NEEDS & SYSTEMS

take strategic decision

understand IT options

develop systems integration

purchase

install & set up

train

repair

maintain

review

update

= customer activity

= VENDOR / PARTNER ACTIVITY

Figure 14: Customer activity cycle presenting customer “value gaps” and vendor “value adds” at specific

points in their relationship (redrawn from Vandermerve, 2000).

Rather than chasing margins of single products, services or countries, companies should be

interested in leveraging high-quality cash flow from the long-term value of the customer by

getting longevity, depth, breadth, and diversity of spend (see Vandermerve, 2000 for

definitions). Long customer relationships may not be up-front as lucrative as anonymous trades

but as the relationship matures and trade becomes frequent, eventually the investment in the

relationship will pay off many fold. The network of partners will play an important role in the

fulfilment of the complete customer experience, as most companies will try to focus their

scarce resources on their core competence.

The customer activity cycle is best adaptable in B2B markets, where the customers of obvious

reasons require service rather than a single-transfer product. The customer activity cycle can

also be applied in certain consumer segments were the offering is technologically complex and

its monetary value is significant.

The success of the service & implementation model is highly affected by internal as well as

external factors. The external factors are the market requirements for additional services (i.e.

market & customer type – B2B customers are expected to require service and are willing to

pay for it, whereas individual consumers are generally less willing to do so), and the

availability and quality of strategic partnerships. Furthermore, the level of competition and size

of the market as well as adjacent (service) markets has a profound impact since large and/or

highly competitive markets restrict the potential share-of-wallet of a single supplier.

The impact of the level of required service is very profound, even to the degree that it may

cause involuntary alterations to the intended business model. A very product-oriented software

company may find itself in a position that it cannot sell its products without guaranteeing

additional services. Consequently the company is “involuntarily” drawn into the servicing and

consulting business against its wishes if it cannot find strategic partners to take over. Even

though servicing can be charged from the customer, it requires resources that could have been

allocated elsewhere. In a resource scarce environment this can be problematic. The impact on

the internal software development process is such that if servicing, maintenance and change

request processing are provided, a very agile approach is required since it is often very difficult

to pre-determine the requirements and associated tasks. The core business should be

streamlined to facilitate service provisioning which should be portrayed e.g. in the architecture

of the software. When very little or no services are required and provided, the company may

concentrate on its core business.

4.5 Summary of Business Model Elements & Process Impacts

In this section we will present the results of the previous discussion of software business model

elements that affect the internal software development processes.

Table 3: Business model element impacts on the internal development environment.

BM Element External Factors Internal Process Impact Product development model

Value proposition type

Object of trade Market size & heterogeneity, customer willingness to pay for personal services, customer perceived value driver

No direct impact. Indirect impact via degree of productisation.

Degree of productisation

Market size & heterogeneity, customer willingness to pay for personal services & compromise on specifications, availability of customer cooperation

A low degree of productisation requires customer cooperation & evaluation test releases. A high degree requires customer intelligence for specifications to meet the needs of a large amount of customers.

Novelty & radicality

Market dynamism & level of competition

Dynamic markets require agile processes. Price-sensitive markets require cost-efficient processes. Dynamic & price-sensitive markets require agile processes in order to meet requirements.

Complexity Customer needs & market characteristics

Complex offerings require high methodology weight, i.e. more management efforts, control mechanisms and pre-defined processes. Simple offerings require very little methodology weight.

Criticality Customer needs & market characteristics

Critical offerings require high methodology weight, i.e. more management efforts, control mechanisms and pre-defined processes. Not critical offerings require very little methodology weight. Methodology weight functions as a risk management tool.

Product cooperation & networking

Relative strength (financial & technological) to market, market dynamism, level of competition & fragmentation

Strong players may focus on their own processes and force others to align. Cooperation accelerates total development and spreads risk, but increases methodology weight because of necessity for external communication. Delays and lost-opportunity costs increase.

Product compatibility

Benefits & availability of compatibility with complementaries, amount and strength of market standards, relative performance of technology to market, firm’s relative strength in complementing markets

Compatibility efforts increase methodology weight in terms of communication and management of external factors. Versioning requires an iterative or agile approach for the interfaces. Non-compatibility strategy allows firm to focus on internal issues.

IPR management Copy protection schemes

Level of illicit activity, customer experienced cost of copy protection enforcement & risk associated with hidden source code, market dynamism

-

Open source software utilisation

Availability & quality of open source software

Early analysis and incorporation to (architectural & project) plan required. Risk of delivery delay if open source software is still under development.

Revenue logic Sources of revenue

Market structure in terms of customer groups experiencing value from the software, their relative strengths, interdependencies, and abilities & willingness to pay

-

Pricing strategy Market size & level of competition pose constraints on the amount of potential customers, degree of productisation affects the available set of pricing strategies, market segmentation & customer willingness to pay affects versioning possibilities

In a market with low degree of productisation concurrent development brings time-to-market advantage and serial development cost-advantage. In mass-markets the use of agile and iterative processes is useful for versioning of software.

Marketing & sales model

Degree of productisation, availability and quality of indirect sales channels, level of market fragmentation and difficulty of reaching potential customers, and level of competition affect the choice of direct vs. indirect model

A direct model facilitates and often necessitates intense customer cooperation. An indirect model poses challenges on identifying “real” customer requirements. If no customer cooperation is available, either an internal “customer” is appointed or agile approaches need to be discarded.

Servicing & implementation model

Market requirements & willingness to pay for additional services, availability and quality of strategic partners, level of competition and size of market as well as adjacent (service) markets

A high level of servicing requires that ease-of-maintenance is incorporated in software development. This is best achieved by modular design and agile methodology. A low level of servicing allows company to focus on core business.

5 Agile Methodology Applicability

In this chapter we will evaluate the applicability of agile methodologies to different software

business models and external environments. As specified in the scope of this report, we will

discuss only Extreme Programming (XP) and SCRUM as representatives of agile

methodologies. The evaluation will be a continued discussion of the results of the analysis

presented in the previous chapter. The discussion is presented in Table 4 below.

Table 4: The applicability of agile methodologies in software development as determined by a company’s

business model and external factors.

BM Element External Factors Agile Methodology Applicability Product development model

Value proposition type

Object of trade Market size & heterogeneity, customer willingness to pay for personal services, customer perceived value driver

-

Degree of productisation

Market size & heterogeneity, customer willingness to pay for personal services & compromise on specifications, availability of customer cooperation

Agile methodologies are very suitable when degree of productisation is low but is also applicable for products with a high degree of productisation if virtual customers and test users can be acquired.

Novelty & radicality

Market dynamism & level of competition

Dynamic markets require agile methodologies. Price-sensitive markets require cost-efficient methodologies, which are not necessarily agile. Dynamic & price-sensitive markets require agile processes in order to meet requirements.

Complexity Customer needs & market characteristics

XP alone is not very suitable to complex problems but SCRUM provides some assistance. Some agile practices may still have to be discarded. Agile methodologies are very suitable to small problems.

Criticality Customer needs & market characteristics

Critical projects require more methodology weight and robust practices. Some agile practices may have to be discarded but XP in general is quite suitable because of its extensive testing practices. Agile methodologies are suitable for non-critical projects.

Product cooperation & networking

Relative strength (financial & technological) to market, market dynamism, level of competition & fragmentation

Agile methodologies are suitable to a cooperative environment as software is developed in components anyway.

Product compatibility

Benefits & availability of compatibility with complementaries, amount and strength of market standards, relative performance of technology to market, firm’s relative strength in complementing markets

Versioning requires an iterative or agile approach for the engineering of compatibility in the interfaces.

IPR management Copy protection schemes

Level of illicit activity, customer experienced cost of copy protection enforcement & risk associated with hidden source code, market dynamism

-

Open source software utilisation

Availability & quality of open source software

Agile methodologies in principle applicable but analysis and planning needs to be done early.

Revenue logic Sources of revenue

Market structure in terms of customer groups experiencing value from the software, their relative strengths, interdependencies, and abilities & willingness to pay

-

Pricing strategy Market size & level of competition pose constraints on the amount of potential customers, degree of productisation affects the available set of pricing strategies, market segmentation & customer willingness to pay affects versioning possibilities

In a market with low degree of productisation agile methodologies are most suitable when time-to-market is the source of competitive advantage but may cost more than serial development and be of disadvantage in price-sensitive markets. In mass-markets the use of agile methodologies is useful for versioning of software.

Marketing & sales model

Degree of productisation, availability and quality of indirect sales channels, level of market fragmentation and difficulty of reaching potential customers, and level of competition affect the choice of direct vs. indirect model

Agile methodology especially suitable when using a direct model. In the case of an indirect model, a customer and test users need to be specified or else agile methodologies are not useful.

Servicing & implementation model

Market requirements & willingness to pay for additional services, availability and quality of strategic partners, level of competition and size of market as well as adjacent (service) markets

A high level of servicing and ease-of-maintenance is best achieved by modular design and agile methodologies.

6 Conclusions, Recommendations & Future Research

This paper presented an evaluation of agile software development applicability to software

development processes determined by a venture’s business model and external business

environment. The findings of the report state that agile methodologies are indeed applicable in

most software development projects. However, the following restricting factors to the

applicability were identified:

- Lack of customer involvement

- High complexity of development project

- Price-sensitivity of market

As discussed in the paper, none of these factors do totally exclude the use of agile

methodologies, but the restrictions posed by them should be kept in mind when selecting a

methodology.

Future research in the field of the applicability of agile methodologies should focus on either

company internal factors as determinants of applicability or on collecting empirical data as

evidence of the success of agile methodologies.

Finally I would like to bring forward seven principles that are useful in designing and

evaluating methodologies and were identified by Cockburn (2002):

1. Interactive, face-to-face communication is the cheapest and fastest channel for

exchanging information.

2. Excess methodology weight is costly.

3. Larger teams need heavier methodologies.

4. Greater ceremony is appropriate for projects with greater criticality.

5. Increasing feedback and communication lowers the need for intermediate deliverables.

6. Discipline, skills, and understanding counter process, formality, and documentation.

7. Efficiency is expendable in non-bottleneck activities.

7 References

Beck K. 1999. Embracing Change with Extreme Programming. IEEE Computer Society, Los

Alamitos, CA, USA.

Beck K., Beedle M., van Bennekum A., Cockburn A., Cunningham W., Fowler M., Grenning

J., Highsmith J., Hunt A., Jeffries R., Kern J., Marick B., Martin R. C., Mellor S., Schwaber

K., Sutherland J., Thomas D. 2001. Manifesto for Agile Software Development, Agile Alliance.

URL: http://www.agilemanifesto.org/. Accessed 7.3.2002.

Beck K. 1999. Embracing Change with Extreme Programming, Computer, Oct. 1999, pp. 70 –

77.

Boehm B. 1988. A Spiral Model of Software Development and Enhancement. Computer, May

1988, pp 61 – 72.

Bygrave W. 2000. Calling on family and friends for start-up cash. Financial Times Newspaper.

Cockburn A. 2002. Agile Software Development, Pearson Education Inc., MA, USA.

Cockburn A., Highsmith J. 2001a. Agile Software Development: The Business of Innovation,

Computer, Sept. 2001, pp. 120 – 122.

Cockburn A., Highsmith J. 2001b. Agile Software Development: The People Factor,

Computer, Nov. 2001, pp. 131 – 133.

Cravens D. 1987. Strategic Marketing. Richard D Irwin Inc., Homewood, Illinois, USA.

Economist 2001. Agility Counts, 22.9.2001, pp. 11.

Eloranta E. 2002. Orchestrating Business Systems. E-business lecture, Helsinki University of

Technology, 21.3.2002.

Fowler M. 2000. The New Methodology, URL:

http://www.martinfowler.com/articles/newMethodology.html. Accessed 15.3.2002.

Goldman S. L., Nagel R. N., Preiss K. 1995. Agile Competitors and Virtual Organisations,

Van Nostrand Reinhold, NY, USA.

Hietala J. 2001. Finnish Software Product Business: Results from the National Software

Industry Survey 2001. Helsinki University of Technology.

Hitt M., Ireland R., Hoskisson R. 1999. Strategic Management: Competitiveness and

Globalization (3rd ed.). South-Western College Publishing, Cincinnati, Ohio.

Kersetter J., Spencer A. 2001. IBM vs. Oracle: It Could Get Bloody. Business Week,

28.5.2001.

Kotler P. 2000. Marketing management (10th ed.). Prentice Hall International Ltd., London, UK.

MacCormack A., Verganti R., Iansiti M. 2001. Developing Products on “Internet Time”: The

Anatomy of a Flexible Development Process. Journal of Management Science 47(1), 133 –

150.

Maier M., Rechtin E. 2000. The Art of Systems Architecting, 2nd Edition, CRC Press, Boca

Raton, FL, USA.

McHugh P. 1999. Making it Big in Software – a guide to success for software vendors with

growth ambitions. Rubic Publishing, Tiverton, Devon, NW.

Nukari J., Forsell M. 1999. Suomen ohjelmistoteollisuuden kasvun strategia ja haasteet.

Technology Review 67/99. TEKES, Finland.

Rajala R., Rossi M., Tuunainen V., Korri S. 2001. Software Business Models – A Framework

for Analyzing Software Industry. Technology Review 108/2001. TEKES, Finland.

Rautiainen K., Lassenius C., Vähäniitty J., Pyhäjärvi M., Vanhanen J. 2002a. A Tentative

Framework for Managing Software Product Development in Small Companies. Software

Business and Engineering Institute, Helsinki University of Technology.

Rautiainen K., Lassenius C., Sulonen R. 2002b. 4CC: Balancing Flexibility and Control: A

Framework for Product Development Management in Small Software Companies. Software

Business and Engineering Institute, Helsinki University of Technology.

Schrage M. 2000. Open for Business. Strategy+Business, Issue 21, pp 101 – 105.

Schwaber K. 1996. SCRUM Development Process. American Programmer, June 1996.

SoberIT 2002. The business model as an intermediary between the external environment and

the internal processes of a company. “Avoimet Ovet” public relations fare, SoberIT, Helsinki

University of Technology, 22.3.2002.

Sutherland J. 2002. SCRUM Hyperproductive Software Development Method, 1995 – 2002,

URL: http://jeffsutherland.com/scrum/index.html. Accessed 15.3.2002.

Whittingham J., Durlacher Research. Starting out – some guidance notes on new technology

based business ideas and business plans. Published 7/2000. URL: http://www.durlacher.com/fr-

research.htm . Accessed on 15.1.2002.

Zahra S., Bogner W. 1999. Technology Strategy and Software Ventures’ Performance:

Exploring the Moderating Effect of the Competitive Environment. Journal of Business

Venturing 15, 135 –173.