software project initiation and planning - an empirical study · 1 software project initiation and...

25
1 Software Project Initiation and Planning - An Empirical Study D. Greer 1 and R. Conradi 2 1 School of Electronics, Electrical Engineering and Computer Science, Queens University Belfast, UK. Email: [email protected] 2 Department of Computer and Information Science, Norwegian University of Science and Technology, Norway. Email: [email protected] Abstract This paper describes a study of 14 software companies, on how they initiate and pre-plan software projects. The aim was to obtain an indication of the range of planning activities carried out. The study, using a convenience sample, was carried out using structured interviews, with questions about early software project planning activities. The study offers evidence that an iterative and incremental development process presents extra difficulties in the case of fixed- contract projects. We also found evidence that feasibility studies were common, but generally informal in nature. Documentation of the planning process, especially for project scoping, was variable. For Incremental and Iterative Development projects, an upfront decision on software architecture was shown to be preferred over allowing the architecture to just emerge. There is also evidence that risk management is recognised but often performed incompletely. Finally appropriate future research arising from the study is described. 1.0 Introduction The necessity of planning software projects has been documented and supported for many years. However, the amount and nature of planning is often debated [11]. For example, agile methods and more heavyweight software processes both recommend planning, but disagree on the purpose of it. Extreme Programming emphasises the need for planning, particularly as a way to prioritise effort, facilitate coordination and to help deal with the unexpected [7]. Companies implementing a Capability Maturity Model Integration (CMMI) approach, on the other hand,

Upload: dangngoc

Post on 18-Apr-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

1

Software Project Initiation and Planning - An Empirical Study

D. Greer1 and R. Conradi

2

1School of Electronics, Electrical Engineering and Computer Science,

Queens University Belfast, UK.

Email: [email protected]

2Department of Computer and Information Science,

Norwegian University of Science and Technology, Norway.

Email: [email protected]

Abstract

This paper describes a study of 14 software companies, on how they initiate and pre-plan

software projects. The aim was to obtain an indication of the range of planning activities carried

out. The study, using a convenience sample, was carried out using structured interviews, with

questions about early software project planning activities. The study offers evidence that an

iterative and incremental development process presents extra difficulties in the case of fixed-

contract projects. We also found evidence that feasibility studies were common, but generally

informal in nature. Documentation of the planning process, especially for project scoping, was

variable. For Incremental and Iterative Development projects, an upfront decision on software

architecture was shown to be preferred over allowing the architecture to just „emerge‟. There is

also evidence that risk management is recognised but often performed incompletely. Finally

appropriate future research arising from the study is described.

1.0 Introduction

The necessity of planning software projects has been documented and supported for many years.

However, the amount and nature of planning is often debated [11]. For example, agile methods

and more heavyweight software processes both recommend planning, but disagree on the

purpose of it. Extreme Programming emphasises the need for planning, particularly as a way to

prioritise effort, facilitate coordination and to help deal with the unexpected [7]. Companies

implementing a Capability Maturity Model Integration (CMMI) approach, on the other hand,

Page 2: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

2

emphasise the role of thorough planning in the software process for improving predictability and

to measure process improvement [2].

Given such diverse advice, what do companies actually do? Without some baseline knowledge, it

is difficult to assess what improvements need to be made, if any, and what future research is

required. Thus, we are seeking to answer the general research question: “How do software

development companies conceive and initially plan software projects?” In seeking to answer

this, we describe a study carried out with 14 established Norwegian software companies. In what

follows, we will discuss the main activities that we have associated with „early‟ project planning,

based on existing knowledge. Section 3 will describe the research method employed. Section 4

will discuss the results from the research, while Section 5 will discuss the findings in relation to

existing work, alongside some suggested research for the future. In the final section we will

provide some conclusions to the work.

2.0 Background

What constitutes „early planning‟ of software projects is open to discussion. The IEEE Standard

Glossary of Software Engineering Terminology [21] describes a concept phase and this is

elaborated on in the more recent Software Engineering Body of Knowledge (SWEBOK) [20].

SWEBOK includes „Initiation and Scope Definition‟ and „Software Project Planning‟ under the

„Software Engineering Management‟ topic. SWEBOK is not an international standard, but it is

backed by the IEEE and the ACM [20]. It has also been used as the basis for curriculum

development for software engineering at undergraduate and graduate levels [3]. Hence, in the

absence of a universally accepted definition of a body of knowledge, SWEBOK is a satisfactory

starting point, alongside established Software Engineering textbooks [37] [41]. In the SWEBOK

guide „Initiation and Scope Definition‟ is broken down into:

a) Determination and Negotiation of Requirements;

b) Feasibility Analysis;

c) Process for the Review and Revision of Requirements.

„Software Project Planning‟ consists of:

a) Process Planning;

b) Determine Deliverables;

Page 3: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

3

c) Effort, Schedule and Cost Estimation;

d) Resource Allocation;

e) Risk Management;

f) Quality Management;

g) Plan Management.

To make the study more manageable, we have limited it to items a) and b) from „Initiation and

Scope Definition‟ and items a), b), c) and f) from „Software Project Planning‟. The selected

items relate strongly with the decision process on whether or not to proceed with a project. Those

omitted could be argued to be more relevant after the project has been committed to.

Traditional approaches, as recommended in Systems Analysis textbooks, include a feasibility

stage [45]. However, these approaches imply a waterfall model and stable requirements being

obtained upfront. Feasibility studies also form part of methodologies taking an iterative

approach. The Dynamic Systems Development Method (DSDM) [15] describes a feasibility

study; the Unified Process (UP) [24] describes an „Inception‟ phase; and Extreme Programming

planning includes the collection of „user stories‟ along with initial estimates for effort and value

which are then used for release planning. Clearly, the extent and nature of planning is influenced

by the choice of software process, and there is not a general agreement of how much planning

should be done at the project initiation stages.

2.1 Initiation and Scope Definition Activities

The initiation of a project involves determining its requirements to some degree of detail,

outlining candidate solution approaches and an assessment of whether or not to proceed with the

project.

Determination and Negotiation of Requirements

Having stable and explicit user requirements makes the planning process a lot simpler, since the

information is certain. However, it is more likely that the knowledge of the future process and

product requirements is to a substantial degree uncertain. For example, the determination of

initial requirements is often influenced by market investigations. An analysis of what is already

available is relevant to the feasibility of the project. Market analysis may also inform the

requirements negotiation process. Linked to this is some evaluation of the solution space and a

Page 4: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

4

consideration of what is possible. Indeed, numerous candidate solutions may be considered and

these are fed forward to the feasibility analysis.

Given this complicated planning scenario, the software process cannot simply be the process of

„capturing‟ fixed requirements that are waiting to be „found‟ and then developing an

unproblematic and stable implementation. Rather, it is a creative process where new ideas are

generated, existing ideas combined and often tradeoffs made between the requirements and

designs [27]. In such cases, stakeholder collaboration, requirements negotiation and re-

negotiation become a reality. Determination and (re)negotiation of requirements, so as to enable

the setting of the scope of the project, is therefore necessary at an early stage.

Feasibility Study

Traditionally, in systems analysis, a „Feasibility Study‟ has been recommended with the principal

aim of determining if the project is viable and also to get some preliminary planning data [28].

More precisely, the Feasibility Study usually refers to an assessment of the product/project

against technical, operational, financial and social/political criteria [37]. Such a phase allows the

early cancellation of projects with minimal cost or, if the project proceeds, assists in the

estimation of funding required and further planning. Despite this recognition of the importance

of a feasibility study, the topic does not receive much attention in popular software engineering

texts. It is only briefly referred to by Sommerville in [41], where software project planning is

covered, but mostly related to later stages in the project after requirements have been more fully

documented. Pressman [37] gives it more attention and points to the first activity in software

project planning being to determine the software scope. That text identifies the difficulty of

determining the scope of a software project without knowing the requirements or having a good

perception of the possible solution space. Putman and Myers [38] state that, once the scope is

determined, it is essential to estimate the cost of the proposed developments (or candidate

solutions), and therefore the feasibility.

2.2 Software Project Planning

We are primarily interested in early project planning in this study. The SWEBOK defined

activities under „Software Project Planning‟ assume that the project has already been

commenced. Nonetheless, it is fair to assume that before committing to a project some

consideration would be given to process planning, determining the deliverables, and risk

Page 5: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

5

management. All of these factors could be argued as having a large impact to an accurate

feasibility study. For this reason, these activities were included in the study.

Process Planning

Given the scope of a project and some initial requirements, the software process to be used must

be decided upon as well as choice of relevant development methods and tools [37]. This could

amount to choosing between a finite set of well-defined software process models [20]. Indeed,

how to choose between software process models has been a long standing problem. Further,

there is empirical evidence to show that there is a non-conformance between defined software

process models and enacted software processes [39].

The need for a defined process has long been recognised as a risk reducing strategy for software

engineering management [34], and the need for tailoring to suit individual projects increasingly

recognised [5][8]. Nonetheless, guidance and methods for tailoring software processes are not

well established, with only some recent specific examples [19][44]. Whether or not such

methods are useful, or even used in the real world, has not been fully reported. Tailoring of agile

methods has received some attention in Taylor et al. [43].

2.3Determining Deliverables

Determining deliverables is not just about implementing each functional requirement, but may

also include some upfront infrastructure design [37]. Equally, there may be opportunities for

reuse of existing in-house software, use of commercial-off-the-shelf (COTS) software

components or acquiring open source software (OSS) components. The decision on this will

obviously impact the initial planning of the software project, especially the cost and effort

required. Because there are so many dependencies on its outcome, software architecture planning

is considered by many an essential upfront activity [6]. In waterfall approaches, there is more

incentive for architecture planning at an early stage, since the pressure of an early functioning

release is not present. In iterative software processes, the extent of commitment to an upfront

architecture may be as little as choosing a metaphor to follow in the development process [7].

Other advice includes planning a short iteration just to develop enough of the architecture to

allow the team to understand the planned system sufficiently [36], or to allow architecture to

emerge, but with a higher ratio of architecture to feature development in the early iterations [13].

Nonetheless, empirical studies have given evidence of a link between requirements-oriented

Page 6: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

6

problems later and the quality of architecture planning at the start [16]. There is also evidence

that the decision on architecture is largely made informally [42].

Another aspect of determining the deliverables is to consider the architectural composition of the

developed software. This is essential, since it greatly influences the cost, and therefore the

outcome of the feasibility study and the decision on whether and how to proceed. The options for

reuse include existing in-house built software components or off-the-shelf software components

either commercially available or free/ open source [20].

Release planning is the decision process for determining when a functioning software product

should be delivered to the customer and with what functionality. Therefore, it may also be an

activity of the early planning efforts. For waterfall approaches there is notionally only one

external planned release, but functionality may still be deferred to a later evolved version. For

iterative and incremental development, it typically refers to the creation of a high-level plan for

releases in the future [18].

2.4 Risk Management

Software development risk is the possibility of failure in the software development process, or

more precisely the product of the probability of a risk event occurring and its associated loss [9].

Risk Management covers the activities necessary to analyse and control risk. Boehm [9] has

defined risk management in six stages: Identification, Assessment, Prioritisation, Management

Planning, Resolution and Monitoring. When deciding upon a software project, risks are highly

relevant since, by definition, they may negatively impact upon the development cost and

therefore threaten the validity of any cost-benefit analysis carried out. Such an approach is

recognised in the growing area software economics [12]. Considering risk as a possible cost, and

therefore having impact on investment decisions, has received more recent attention [14].

3.0 Research Approach

The research is mainly qualitative in nature. This is justified by the advantages of that approach

in complex studies, where richer results are obtained than a necessarily more narrow quantitative

study [40]. The instrument of the study is a structured interview [40] which allows better

comparison between interviewee responses, than semi structured interviews, where questions are

Page 7: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

7

left completely open ended. The approach used can be described as a survey, according to the

guide to surveys from Pfleeger and Kitchenham [35].

Since the study was exploratory in nature, convenience sampling was used. Convenience

sampling is adjudged to be appropriate where an inexpensive study is planned and in order to get

fast and approximate results. The population consisted of 31 successful Norwegian software

companies, where there had been previous contact with the authors or their associates in previous

research studies. This was pre-filtered to exclude small companies or recent start ups and

included only well-established companies, with at least 5 software development employees (the

lower limit was in fact 14). This avoided the issue of dormant companies, single person

consultancies, or those with very low levels of software development. Of the 31 companies

invited by email to participate, 14 (45%) responded positively to the invitation.

The interview was designed so as to last about thirty minutes and was aimed at new software

development projects, rather than software maintenance and evolution. The interview was

conducted by a single researcher and notes of all responses were recorded on a form, as the

interview proceeded. In each case the respondents were asked to give their company‟s general

approach to projects. Interviewees were sent a copy of the questions in advance, so that they

could prepare their responses. During the conduct of the interview, the interviewee‟s responses

were summarised as feedback to the respondent by the interviewer, to help ensure the internal

validity of the research.

3.1 Research Questions

In seeking to answer our general research question of how software developments companies

conceive and initially plan software projects, we have composed six research questions. Two

particular issues arise from the discussion on „Initiation and Scope determination‟: i) the choice

of software process and ii) how feasibility analyses are carried out. We also noted a lack of

information on how exactly software projects get commissioned and on how the software

process gets selected, based on the origin of the project. In fact, many software engineering

methods do not recognise development that may be concerned with creating Commercial-Off-

the-Shelf (COTS) products, often without a definite customer to seek requirements from.

Evidently, the domain in question will also have an influence, on how projects are conceived.

Given the small sample size we cannot hope to produce a valid statistical breakdown of the

Page 8: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

8

origins of software projects. What is possible is to establish some of the typical origins, and to

find an indication of whether the selection of the software process is related to the type of origin.

Our discussion noted existing research into software process tailoring. Hence a research question

was formulated to help determine this and also how the feasibility of a project is considered.

RQ1: Is there a relationship between the origin and type of a software project and the software

process employed and related to that, are software processes tailored to suit the origin and type?

RQ2: How are feasibility analyses carried out?

We were also interested in what documents were generated at the planning stages of the project.

Included in this was the extent of requirements documentation prior to project enactment.

RQ3: What documents are generated in the early pre-enactment stages of a software project?

The remaining research questions relate to two areas of planning that could be carried out early,

and indeed many have spoken of the need for early treatment. We have previously noted a lack

of documented knowledge in the literature on how software products are planned in terms of

deliverables, in particular whether there is a need for software release planning and to what

extent (RQ4). Related to this is whether companies feel the need to determine an upfront

architecture or to allow it to emerge (RQ5). Finally, risk management has been cited by many as

something that should be initiated as early as possible. Whether this is the case in real life is

tested by RQ6.

RQ4: What impact does product planning have on process planning?

RQ5: Are architectures of products determined and set at the beginning of a project or do they

emerge with the development process?

RQ6: Is Risk Management performed at the early project stages and to what extent?

Table 1 shows the research questions and relates them to the structured interview questions that

were asked. During the interview, follow up questions were added when needed to ensure that

the research question was addressed.

Page 9: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

9

Table 1: Interview Questions Related to Research Questions

Question Research Questions

Q1. Are you adhering to any particular methodology, set of practices or

philosophy for software development?

RQ1

Q2. How do projects get initiated in your organization? RQ1

Q3. How is the software process selected for a project? RQ1

Q4. How would you characterise this project (internal support, external

customer, COTS product etc)?|

RQ1

Q5. Is there a formal feasibility study? If so, how does it work? RQ2

Q6. What data is gathered/ estimated to assist with judging the feasibility or

scope of the project?

RQ3

Q7. Prior to project enactments, what documents are generated? RQ2, RQ3

Q8. Is architecture considered as part of early planning? RQ5

Q9. How is release planning done? RQ4

Q10. How is risk management performed? RQ6

3.2 Context

As mentioned, structured interviews ere conducted with project mangers in 14 companies, with

number of developers ranging from 14 to several thousand. The majority of the company

projects addressed were developing bespoke software (i.e. for a single customer), the remainder

developing COTS products (multiple customers). Two of the bespoke projects (C1, C13) were

for internal customers (i.e. those in the same company), the other six being for external contracts.

Table 2 summarises the context for this study including the software process being used being

categorised as either „Waterfall‟ of „Iterative and Incremental Development‟ (IID).

Table 2: Context: Details of Enterprises Investigated

Company Project Internal/ External Customer Process used

C1 Bespoke Product (In-house) Internal IID

C2 Bespoke Product External Waterfall

C3 Bespoke Product External Waterfall

C4 COTS product External IID

C5 Bespoke Product External IID

C6 Bespoke Product External Waterfall

C7 COTS Product External IID

C8 COTS product External Waterfall

C9 Bespoke Product External IID

C10 Bespoke Product External IID

C11 COTS Product External IID

C12 COTS Product External Waterfall

C13 Bespoke Product Internal IID

C14 COTS Product External IID

Page 10: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

10

4.0 Research Results

This section will provide a summary of the results from the study and relate them to the research

questions being investigated, with further discussion of these following in section 5.

4.1 Software Project Initiation

Each respondent in the survey was asked how software projects got initiated in their company.

Figure 1 shows a summary of this information. The results show that there are many origins of

software projects. The two main origins revealed are where projects arise directly from customer

feedback, or indirectly via sales and business teams. Both origins refer to existing software and

how it may be improved. The rest mainly relate to new software and includes origins from

tenders, IT reviews, from consultancy and from developers themselves.

Figure 1: Breakdown of Origins for Software Projects in the Sample Studied

4.2Software Process Choice and Tailoring (RQ1)

RQ1 asks about the relationship between the origin of a software project and the software

process employed. To this end, respondents were asked to specify what software process model

they used, if any. The responses can be categorised as those following an Iterative and

Incremental Development (IID) process model, and those following a Waterfall process model.

All of those employing an IID process claimed to be using an Agile Method, these being

Extreme Programming (2), Scrum (7) and Evo (1).

RQ1 asks about the relationship of product type to the software process type. The results show

that there were nearly twice as many occurrences of an IID process over waterfall processes.

This ratio was in fact mirrored for both COTS and bespoke software, indicating that there is no

Page 11: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

11

relationship shown. Of the 5 waterfall model processes, 2 were COTS products and 3 were

bespoke development. It would be interesting to analyse the effect of customer type on software

process type. In the case of an IT department servicing a company, it might be expected that it is

easier to have frequent deliveries of an IID approach. All the waterfall model processes were for

external customers, but given that there were only 2 such projects in the study, no significance

can be attached to this. It is noteworthy, though, that both the projects with internal customers

adopted an IID process model.

A common theme from respondents using an IID process for bespoke development was that IID

was difficult, where projects started from a successful tendering process. With tenders, the

normal approach is that the requirements are committed to upfront and usually agreed to as part

of a contract, along with specific delivery dates. Four of the companies described having been

subjected to a tendering process, and three of the four reported difficulties in using an IID

approach in such circumstances. Only one stated that they had been successful in convincing the

tender issuer that an IID approach could work and had won a bidding process based on this. In

fact, that company reported success in negotiating an agile process as part of the tender process.

In the other three one adopted an IID process, but only for internal deliveries of software. In that

case, as far as customer perception was concerned, the actual process used was a waterfall one.

Thus, an internal IID process was used, where increments were developed frequently but not

released externally until the end of the project.

In addition to being asked which software process they used in the particular project, respondents

were asked if the process was tailored to meet the particular project. Only 4 respondents

indicated that this was the case, indicating a preference for a „one size fits all‟ approach to

choosing the software process. Interestingly, the 4 who said that they spent time tailoring the

process were all employing an IID approach.

Overall our study relating to RQ1 provides evidence for two findings.

Finding F1: Employing an IID software process in projects starting with a tender presents extra

difficulties over a waterfall approach.

Finding F2: Software processes are often tailored for IID or agile approaches.

Page 12: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

12

4.3 Project Feasibility (RQ2)

RQ2 asks how companies perform the feasibility study before commencing actual software

development. Two thirds of the companies reported having a stage in the process that could be

considered a formal feasibility study. That is not to say that one third do not consider feasibility,

rather that they do not have a formal stage for this task. However, looking deeper at responses

from those investigated, the same one third actually evaluate expected costs as numerical values.

Of the 9 companies that claimed a formal feasibility study, all estimated the cost of software

development using expert judgement, but only 6 of these quantitatively estimate the expected

value of implemented requirements. This apparent discrepancy provides evidence that in many

cases cost is the sole driver of economic decision-making in software development and that

companies fix the cost and then try to deliver a suitable set of implemented requirements at a

suitable level of quality.

Figure 2: Mechanism for Economic Feasibility Study

The context factors influencing whether or not a feasibility study is carried out were not

uncovered by the investigation. The type of software product being either bespoke or product did

not seem to influence the outcome; half those using a feasibility study building off-the-shelf

products and half supplying bespoke software. Similarly, the software process being employed

did not show a conclusive trend, the proportions of those doing a feasibility study being in line

with the IID: Waterfall ratio. We might have assumed a feasibility study to be more likely when

using the waterfall approach, with its traditionally more heavyweight planning process, but this

was not the case here. Indeed of those claiming agile method adherence, 5 out of the 9 agile

Page 13: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

13

adoptees performed a feasibility study, and 4 of these used quantitative measures of cost and/or

value in doing so.

Looking at all 14 companies (Figure 2), only 5 claimed to use a quantitative cost-benefit analysis

approach and, of the remainder who carried out an economic feasibility study, all used a

qualitative approach involving comparisons. One respondent, using a quantitative cost-benefit

analysis, indicated a consideration of future value of planned developments in the form of a Net

Present Value calculation.

With regard to feasibility relating to non-economic issues, technical feasibility was mentioned by

many respondents as an important aspect, most commonly in relation to resource availability for

completing the development. Other main types of feasibility were not mentioned by any of the

respondents as an activity undertaken in early project planning.

The results from RQ2 provide the following indication.

Finding F3: Companies generally conduct a feasibility study before committing to projects, but

these tend to be qualitative and informal and include only economic and technical feasibility.

For feasibility studies, a follow-up question was asked about how consideration of possible

software composition affected the feasibility study. Possible sources of reuse include in-house

software, COTS software and OSS. Choosing to employ such components clearly affects the

costs and schedule of the developed software, the choice of software architecture, the

functionality, and quality. Table 3 shows the results from this question.

All respondents said they planned reuse of in-house software, if possible. OSS and COTS were

not universally considered, but still common. The answers to this sub-question revealed no

obvious relationship of the type of reuse with the product type or the software process being

used. When asked if they considered the effect of reuse on cost estimates, everyone replied

positively.

Page 14: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

14

Table 3: Feasibility Study and Reuse type considered

Reuse Component Type: In-house COTS OSS

C1 Internal Bespoke Incremental

C2 External Bespoke Waterfall

C3 External Bespoke Waterfall

C4 External Product Incremental

C5 External Product Incremental

C6 External Bespoke Waterfall

C7 External Product Incremental

C8 External Product Waterfall

C9 External Bespoke Incremental

C10 External Bespoke Incremental

C11 External Product Incremental

C12 External Product Waterfall

C13 Internal Bespoke Incremental

C14 External Product Incremental

4.4 Early Planning Documents (RQ3)

As part of our investigation relating to RQ3, respondents were asked to identify the artefacts

created in the early project planning process. The response to this rather depends on what is

considered „Early Planning‟. In the preamble to the questionnaire this was specifically defined as

being prior to the decision to proceed with the project. This was elaborated as being before

detailed requirements were created, before design work and before coding work. The results are

summarised in the following list of documents:

Architecture Description;

Blog (web-based log)/Wiki (team-editable web page);

Business Case/ Market Analysis;

Contract;

Cost/Budget Analysis Document;

Export Assessment;

Make-Buy Analysis;

Requirement Specification;

Risk Assessment Document;

Sample Code;

Schedule Plan;

Test Plans; and

User Stories/ High Level Requirements.

Page 15: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

15

Of the respondents, 8 stated that they produced at least a partial requirements document, and 3 of

those described a full requirements specification. This was despite our contrary definition of

early planning. However, these companies were chiefly involved in either responding to tightly

defined customer contracts or exacting standards that were imposed on the product. In fact, 2 of

these companies specifically mentioned the contract as being a product of early project planning

and, presumably, this is tightly linked to the requirements specification. The popularity of user

stories relates to the prevalence of the Scrum method in the sample. Only one company stated an

architecture description document and this company can be identified as one that includes

embedded software, where the architecture of the software is tightly coupled to that of the

hardware being used. The remainder of the documents can be associated with project planning.

Cost-Benefit analysis documentation is common, but as mentioned in the discussion on

economic feasibility in the previous section, it is by no means universally produced.

Finding 4: Most companies produce at least a partial requirements document before taking the

decision to proceed or otherwise. Early costs, schedules and budgets are often documented, but

other data on decisions taken are often not documented.

4.5 Release Planning (RQ4, RQ5)

Release planning is related to the product but also highly related with the software process used

and how the requirements for the product are gathered. This fact was born out in the

investigation. In fact, there is a one-to-one mapping from waterfall process to single releases in

our results. However, for those using an IID process, 4 still delivered the software to the

customer as a single release. In these cases software can be „delivered‟ internally with a single

bundled release being given to the customer. Agile methods tend to advocate early feedback

from customers but, due to the use of contracts, this is not always convenient. Our results, as

shown in Figure 3, indicate that only slightly more IID projects tend to be planned for one

release ahead than for two or more. Further, waterfall processes associated with a single release

do often include provision for future releases. In other words the evolution after the delivery of

the software is often planned at the outset. In that case, the distinction between a waterfall

approach and an IID approach is not as clear-cut as might be believed from Software

Engineering textbooks.

Page 16: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

16

Figure 3: Number of Planned Releases for all Respondents and for IID Process Respondents

Even for agile method based projects, 2 of the 9 reported that only 1 release is planned. For

Scrum projects, which are generally strong on release planning, the number of releases planned

is always 2 or more.

Finding F5: Release planning is a universal activity, not just projects employing an IID process.

A related issue is that of planning the architecture of the proposed product. All of the

respondents except two stated that the architecture of the product was decided up front, before

the rest of the development. This is somewhat different to the often quoted „YAGNI‟ agile

principle („You Aren‟t Going to Need It‟), where the implication is that the architecture decision

need not be made firmly until later. For the 13 enterprises indicating that architecture was

decided up front, 5 of these stated that, nonetheless, later refactoring of the architecture was

common.

Finding F6: Companies tend to prefer fixing the software architecture upfront rather than

allowing it to emerge. This is true for companies employing a waterfall approach or an IID

process, including those using agile methods.

4.6 Risk Management Planning (RQ6)

Project Managers were asked to describe what risk management steps they planned, having been

prompted with the 6 risk phases from Boehm [9].

Page 17: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

17

Figure 4: Number of companies performing each Risk Management Activity

As shown in Figure 4, the majority of companies consider risk identification important. Smaller

amounts go on to actually assess those risks. A follow-up question revealed that 4 of the

companies assigned probabilities and impact assessments to risks, meaning that assigning actual

numbers is the primary approach in this sample. It is not really surprising that having assessed

the risks, those same companies go about planning for how to monitor those risks, usually at

regular project meetings. What is surprising is the lack of active planning about what should be

done if a risk occurs, with less than half of the respondents indicating that they planned for this.

Anecdotally, several companies mentioned the implicit nature of their risk management, being

that of employing a good software process. One company, with safety-critical applications, did

employ extensive detailed risk management, part of the motivation being from external standards

organisations.

Finding F7: Risk Identification and Risk Monitoring are common activities but other risk

management activities were not discovered to be explicitly performed in most of the companies.

5. Discussion and Future Research

We will discuss the validity of the findings, discuss their implications and derive several

empirically based research directions for further work.

5.1 Validity

Before discussing the findings from the study, it is important to point out the threats to their

validity.

Page 18: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

18

External Validity: The small sample size and being from a single geographical territory means

that the findings cannot be assumed to be representative of software industry in general. Rather

this study tries to gain insight into the problem area, and so to inform further studies into early

project planning. Further, the sample is not a random one. The use of a convenience sample

means that the companies interviewed may not be typical. In fact they cover a range of domains,

customer numbers and company sizes.

Construct Validity: There is a threat originating in possible misunderstanding of the interview

questions. This could be compounded by the use of a structured rather than semi-structured

questionnaire. To reduce this risk, the interview questions were designed based on a literature

search but also from the interviewer‟s experience and knowledge. During the interview, as

required, further extra explanations of questions were given. Nonetheless, there is no guarantee

that the interview covers all of the relevant issues or that the questions are optimal. However,

respondents did not report any problems in understanding the questions.

Internal Validity: Respondents in the selected companies were selected to be knowledgeable in

project planning, but there is no test in the study for the validity of this assumption. There is also

no way to ensure accurate recall from respondents on previous project data. Some of the

questions and answers were open to interpretation both from the respondent‟s side and from the

interviewer‟s side in judging the responses. To reduce this risk, answers were fed back as they

were received to verify correct understanding. We are thus relying on the knowledge of the

interviewee and the interviewer.

Conclusion Validity: The research is qualitative and the summaries presented are indicative

rather than statistically significant. Being qualitatively based allowed the study to be more

flexible and for answers to be explored more deeply. Consistency and accuracy thus potentially

suffer. The conclusions made are based on obvious implications rather than an exhaustive

analysis of cause and effect.

5.2 Software Process

Finding F1 indicates that Iterative and Incremental approaches present problems where projects

have been initiated from a tendering, bidding, or contract negotiation process. Since the IID

approaches described are in fact agile approaches, part of the reason for this may be in the ethos

Page 19: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

19

of agile methods. The agile manifesto [1] explicitly states that a priority should be given to

“customer collaboration over contract negotiation”. However, the study results reveal that this

position is not always realistic, since many customer processes involve responding to tenders,

submitting bids and negotiating contracts. This problem has been noticed already [29][32][36]

but little or no research has been published on how to overcome this, or even the case where the

customer is not willing and/or able to collaborate after the contract has been agreed. One solution

put forward is to obligate and define the customer collaboration required precisely in an initial

contract [43]. Further, the need for alternative risk sharing contracts has been put forward [30]

but this depends on the cooperation of the customer, who is frequently not familiar with this

approach. A similar approach was mentioned by one of our respondents where a government

contract had been awarded for continued IT support, using an agile approach including mandated

ongoing customer collaboration. Thus, that there is a need for empirically based research on the

use of iterative and incremental software processes for contract driven projects. What is required

is some evidence on how effective this type of process is from customer and developer

perspectives?

That software processes should be tailored to suit their context is a recognised principle [44].

Previous studies have described case studies showing how software processes have been tailored

and identified along with the lessons learned [17]. This study adds to this knowledge in

identifying that tailoring is a common practice in software companies, where an IID approach is

used (Finding F2). In fact tailoring of IID approaches has been previously investigated, for

example Rational Unified Process [19] or XP and Scrum [17].

5.3 Project Feasibility

The study confirms the perceived importance of a feasibility stage in software projects, but

raised some questions about the appropriate degree of rigour in this phase. Respondents

concentrated mainly on economic feasibility, although several did mention technical feasibility.

For economic feasibility, the concentration seems largely to be on costs and schedule, with only

a minority of companies estimating the future value of the proposed developments. In fixed price

contracts this would be understandable, but the lack of value estimation is evident also in product

development companies. The conclusion is that recent publications on the need for a value-based

approach to software engineering decision support [10] have not transferred yet to industry. Cost

Page 20: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

20

seems to be the main criteria for determining the feasibility of a proposed project. With regard to

cost estimation, the majority of methods employed are based on expert opinion. This reflects

existing evidence on its superior effectiveness over algorithmic methods [33], although it could

also be argued that using expert opinion is merely more convenient. The indication of a

preference for expert judgment over formal cost estimation is also backed up by a recent review

of cost estimation research [22]. Our discussion on finding F3 noted that there was a range of

approaches, and no obvious link to whether the project was delivering to a single customer or to

a general market. Further, no explicit cognisance was given in the feasibility study to the extent

that reuse could be utilised. The decision on whether to reuse existing software components

clearly impacts on the feasibility study results. Previous work shows that the „make versus buy‟

decision is part of COTS-based software development processes [25] and by extension a „make

versus download‟ decision should also be made for those considering OSS. Companies in our

survey did consider reuse at the feasibility analysis stage. However, it is also possible that COTS

or OSS components are also discovered later in the process by the software designers [26]. Reuse

of in-house software was favoured by all, but no clear distinction could be made on general

preference between OSS or COTS, or when to choose off-the-shelf components over building

them. What is missing from this is how to make the decision based on the value of selecting one

or the other, or a combination of them. A useful area for future research might be to establish a

means to include the possibility of reuse at the feasibility analysis stage. Thus more work is

needed on the economics of software composition and configuration as well as software

construction.

5.4 Early Planning Documents

In the study, we were particularly interested in what was documented to aid scope definition and

cost-value estimation, and what deliverables came out as a result. Our results revealed

considerable variation in the degree and nature of documentation created at the early planning

stages (Finding F4). The most common documents refer to the requirements and this supports

existing views on the importance of having an adequate knowledge of requirements to properly

scope a project. Whether high level descriptions of requirements such as in user stories, or on say

a wiki page, are sufficient to do this, has not been addressed in the literature. Overall, there

seems to be a trade-off between the effort spent in early requirements engineering and the quality

of the plans made based on the requirements. To scope a project well, good predictability on

Page 21: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

21

effort is required, i.e. a more detailed requirements definition is desirable. However, this is not

always the case, since requirements are not necessarily complete or stable. This trade-off and

how to adjust it for various project and product environments will be an interesting future

research topic.

The findings revealed that, while most companies required the architecture to be decided at the

start of a project (Finding F6), the number actually producing an architecture document did not

back this up. Only one company stated an architecture description as being one of their early

planning documents. This may well be because others have omitted to mention it, or that they

include it as part of the requirements document. Since companies were not prompted (and so

biased) about which exactly which documents they produce, we can conclude that decisions

taken such as choice of platform, what existing software can be reused, details of cost and

schedule estimates, or even risk reduction or contingency plans are at worst not documented or at

best, not forefront in these project managers‟ minds. Clearly there is a decision to be made on

which documents to produce and maintain, since all incur some cost, but can have very different

values associated with them. Further, documentation is usually assumed to be text and diagrams

held in repositories but much of the knowledge in project planning is manifested at meetings and

informal discussions but not documented, or is held tacitly [31].

5.5 Release Planning

Release planning tends to be discussed in the context of iterative and incremental development

only [18][23]. However, our finding, F6 reveals that, even in waterfall-based projects, release

planning is carried out, referring to the future evolution plans of the delivered product. The

methods used for release planning in our sample were all based on human intuition and expert

opinion, as opposed to scientific approaches described in the literature. Recent work has

indicated that the customer and market base have the biggest influence on release planning

decisions [4]. Our findings support this since, anecdotally, respondents cited value to the

customer as the main criterion used to plan releases. The number of releases planned in the

future varied, but showed that the majority of companies in the study were planning for two or

more releases into the future. This supports the need for current ongoing research effort into

release planning and its relation with value based software engineering.

Page 22: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

22

The issue of when to commit to a software architecture also became apparent in the study. Our

finding, F6, is that companies prefer to make the decision earlier rather than later. This supports

the traditional view of software architecture design [6], but is at odds with some descriptions of

agile approaches, which emphasise the possibility of refactoring versus fixing the architecture at

the beginning [7]. Even in the case of agile methods, respondents preferred to decide early on the

architecture. Hence, our finding supports more recent evolutions in agile methods thinking to

support at least some architecture over functional development at the start of a project [13]. One

possible direction for future work might be to investigate the economics of addressing or

delaying architecture decisions.

5.6 Risk Management

Our finding, F7, implies that risks are identified, but that planning what to do about them, should

they materialise, is deferred until later. The reason for this is possibly due to managers not seeing

the benefit of risks planning. This illustrates a need for more understanding of why companies do

not do risk management and then to demonstrate the value of risk planning [14]. It also indicates

a need for development of more lightweight risk monitoring methods and tools.

6.0 Conclusions

We have presented an empirical study on how companies conceive software projects and carry

out initial planning. The use of structured interviews as an instrument worked insofar as we

obtained a set of results which were easy to compare, since all respondents were given the same

questions and allowed to elaborate, but not to digress too much. Without the constraint of time,

semi-structured interviews may have provided richer feedback. However, to encourage uptake

we promised to limit the time taken for the interview to thirty minutes, and we found participants

very willing to take part on that basis.

The findings indicate that the body of knowledge in this area is not complete and not fully

implemented in our sample of the industry. The SWEBOK guide [20] has provided definitions

for activities that belong to software project initiation, scope and planning, but evidently these

are not widely accepted terms, or agreed sets of activities. One contributing factor to this is the

diverse range of software processes, meaning that activities in software project planning are

strongly dependent on choice of lifecycle process.

Page 23: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

23

Findings F1 and F2 are both related to the choice of software process. We have confirmed that in

our sample, projects resulting from a contract negotiation process are often difficult to fit to an

IID process. Given their popularity and the claims of lower risk in using IID, a means to fit them

to contract-based processes would be highly desirable. Indeed there has been some movement

towards this from the Norwegian Computer Society, who have published a standard contract

template for iterative development [32]. The template includes elements such as incentives and

sanctions as well as procedures for conflict resolution. However, acceptance of these types of

contract may be more a socio-technical issue, demonstrating a need for a change in the thinking

among those commissioning software projects.

Our findings on feasibility studies reveal that they are often ad hoc and lacking in formality.

There is little attention given to basic economic methods such as calculation of net present value,

much less identifying future value. The problem of basing economic decisions on uncertain

information (such as only very basic requirements or feature descriptions) is also apparent. This

finding along with those on how to perform release planning, software architecture planning and

risk management planning illustrates a future research direction related to software economics

and how to value deliverables (such as software architecture artefacts) that may have no

immediate value, but may have some in the future.

Conducting empirical investigations is difficult, and getting high quality responses from large

randomly selected samples very time consuming. While a larger sample would be desirable, our

smaller convenience sample has provided an initial study into how companies initiate and plan

software projects. The study indicates that early planning of software projects is important to

companies, but there is much to be done in confirming the motivation for planning, defining

what should be done, when it should be done, and in providing the process and methods to

support it.

References

[1] Agile Manifesto, http://agilemanifesto.org/, accessed 18 June, 2008.

[2] Ahern, D.M., Clouse, A. and Turner, R., „CMMI Distilled: A Practical Introduction to

Integrated Process Improvement‟, Addison Wesley, 2003.

[3] Atlee, J.M., LeBlanc, R.J., Lethbridge54, T.C., Sobel, A., and Thompson, B.J., Proc. 27th

International Conference on Software engineering, „ACM/IEEE-CS Guidelines For

Undergraduate Programs in Software Engineering‟, 2004, pp. 623 – 624.

Page 24: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

24

[4] Barney, S., Aurum, A., and Wohlin, C., „A product management challenge: Creating

software product value through requirements selection‟, Journal of Systems Architecture, 2008,

54(6), pp. 576-593.

[5] Basili, V.R. and Rombach, H.D., „Tailoring the software process to project goals and

environments‟, Proc. 9th Int. Conference on Software Engineering, 1987, pp. 345 - 357.

[6] Bass, L., Clements, P., Kazman, R., „Software Architecture in Practice (2nd

ed)‟,

Addison-Wesley, 2003.

[7] Beck, K. and Andres, C., „Extreme Programming Explained‟, 2 ed.‟, Addison Wesley,

Reading, MA, 2004.

[8] Biffl, S., Winkler, D. and Höhn, R., and Wetzel, H., „Software process improvement in

Europe: potential of the new V-model XT and research issues‟, Software Process: Improvement

and Practice, 2006, 11(3), pp. 229-238.

[9] Boehm, B.W., „Software Risk Management‟, IEEE Computer Society Press, Washington

D.C, 1989.

[10] Boehm, B.W., „Value-based software engineering: reinventing‟, ACM SIGSOFT

Software Engineering Notes, 2003, 28(2), p. 3.

[11] Boehm, B.W. and Turner, R.: „Balancing Agility and Discipline – A Guide for the

Perplexed‟ Addison-Wesley, 2004.

[12] Boehm, B.W., Sullivan, K., 2000. „Software Economics: A Roadmap, in the Future of

Software Engineering‟, Proc. 22nd Int. Conference on Software Engineering, June, 2000.

[13] Cohn, M., „Agile Estimating and Planning‟, Prentice Hall, 2005.

[14] Costa, H.R., Barros, M.O., Travassos, G.H., „Evaluating software project portfolio risks‟,

Journal of Systems and Software, 2007, 80(1), pp. 16-31.

[15] DSDM, Feasibility Study, http://www.dsdm.org/version4/2/public/Feasibility_Study.asp,

accessed 18 March 2008.

[16] Ferrari, R.N. and Madhavji, N.H., „Architecting-problems rooted in requirements‟,

Information and Software Technology, 2008, 50 (1-2), pp. 53-66.

[17] Fitzgerald, B., Hartnett, G., and Conboy, K., „Customising agile methods to software

practices at Intel Shannon‟, European Journal of Information Systems, 2006 15 (2): 200-213.

[18] Greer, D. and Ruhe, G., „Software Release Planning: An Evolutionary and Iterative

Approach‟, 2004, Journal of Information and Software Technology, 46 (4), pp. 243-253.

[19] Hanssen, G.K., Bjørnson, F.O., and Westerheim, H., „Tailoring and Introduction of the

Rational Unified Process‟, Proc. 14th European Conference on Software Process Improvement,

Springer LNCS, 2007, pp. 7-18.

[20] IEEE, SWEBOK Guide, accessed at http://www.swebok.org/, accessed , 17 March 2009.

[21] IEEE Std 610.12-1990, „IEEE Standard Glossary of Software Engineering Terminology‟,

IEEE, 1990.

[22] Jørgensen, M. and Shepperd, M., „A Systematic Review of Software Development Cost

Estimation Studies‟, IEEE Transactions on Software Engineering, 2007, 33(1), pp.33-53.

[23] Karlsson, L., Regnell, B., and Thelin, T., „Case studies in process improvement through

retrospective analysis of release planning decisions‟, Int. Journal of Software Engineering And

Knowledge Engineering, 2006, 16 (6): 885-915.

[24] Larman, C., „Applying UML and Patterns: An Introduction to Object-Oriented Analysis

and Design and Iterative Development‟, Prentice Hall, 2005.

Page 25: Software Project Initiation and Planning - An Empirical Study · 1 Software Project Initiation and Planning - An Empirical Study D. Greer1 and R. Conradi2 1School of Electronics,

25

[25] Li, J., Bjørnson, F.O., Conradi, R., and Kampenes, V.B., „An Empirical Study of

Variations in COTS-based Software Development Processes in Norwegian IT Industry‟, Journal

of Empirical Software Engineering, 2006,11(3), pp. 433-461.

[26] Li, J., Conradi, R., Bunse, C., Torchiano, M., Slyngstad, O.P.N, and Morisio, M.,

„Development with Off-The-Shelf Components: 10 Facts‟, IEEE Software, 2009, 26(2), pp.80-

87.

[27] Maiden, N. Gizikis, A., „Where do Requirements come from?‟, IEEE Software Sep/Oct

pp.10-12, 2001.

[28] McConnell, S., „Feasibility studies‟, IEEE Software, 1998, 15,(3), pp. 119-120.

[29] Misra, S.C., „The organizational changes required and the challenges involved in

adopting agile methodologies in traditional software development organizations‟, 1st Int.

Conference on Digital Information Management, 2006, pp. 25-28.

[30] Mølokken-Østvold, K., and Furulund, K.M., „The relationship between customer

collaboration and software project overruns‟, Proc. Agile 2007, 2007, pp. 72-83.

[31] Mooradian, N. „Tacit knowledge: philosophic roots and role in KM‟, Journal of

Knowledge Management, 2005, 9(6) pp. 104-113.

[32] Norwegian Computer Society, PS2000 Standard Contract,

http://dataforeningen.no/?module=Articles;action=ArticleFolder.publicOpenFolder;ID=1044,

accessed 17 March, 2009..

[33] Ohlsson, M.C., Wohlin, C. and Regnell, B., A project effort estimation study,

Information and Software Technology, 1998, 40 (14), pp. 831-839.

[34] Ould, M.A., Strategies for Software Engineering: The Management of Risk and Quality,

John Wiley, NY, 1990.

[35] Pfleeger, S.L., and Kitchenham, B.A., „Principles of Survey Research Part 1 - Turning

Lemons into Lemonade‟, ACM SIGSOFT Software Engineering Notes, 2002, 26(6), pp. 16-18.

[36] Poppendieck M. and Poppendieck, T., „Agile contracts - How to develop contracts that

support agile software development‟, Proc. 6th

Int. Conference on Extreme Programming and

Agile Processes In Software Engineering, 2005, p. 302.

[37] Pressman, R., „Software Engineering: A Practitioner's Approach‟, McGraw-Hill, 2004

[38] Putnam, L. and Myers, W., „How solved is the Cost Estimation Problem‟, IEEE

Software, 1997, pp. 105-107.

[39] Sadraei, E, Aurum, A., Beydoun, G, and Paech, B., „A Field Study of The Requirements

Engineering Practice in Australian Software Industry‟, Requirements Engineering, 2007, 12 (3),

pp. 145-162.

[40] Seaman, C.B., „Qualitative Methods in Empirical Studies of Software Engineering‟,

IEEE Transactions on Software Engineering , 1999, 25(4), pp. 557 – 572,

[41] Sommerville, I., Software Engineering, 8th

ed., Addison Wesley, 2006.

[42] Svahnberg, M., Wohlin, C., „An investigation of a method for identifying a software

architecture candidate with respect to quality attributes‟, Journal of Empirical Software

Engineering, 2005, 10 (2), pp. 149-181.

[43] Taylor, P.S., Greer, D., Coleman, G., and McDaid, K., „Preparing Small Software

Companies for Tailored Agile Method Adoption: Minimally Intrusive Risk Assessment‟, Journal

of Software Process: Improvement and Practice, 2008, 13(5), pp. 421 – 437.

[44] Xu, P. and Ramesh, B., „Software Process Tailoring: An Empirical Investigation‟,

Journal of Management Information Systems, 2007, 24(2) pp 293 -328.

[45] Yeates, D. and Wakefield, T., „Systems Analysis and Design‟, Pearson Education, 2004.