Introduction

One definition of a successful project is that the system is delivered 'on time and within budget and w ith the required quality', which implies that targets are set and the project leader then tries to meet those targets. This assumes that the targets are reasonable - the possibility of a project leaders achieving record levels of productivity from the team, but still not meeting a deadline because of incorrect initial estimates is not recognized. Realistic estimates are therefore crucial to the project leader.

What sorts of problem might a project leader such as Amanda, w ho is in charge of the IOE Maintenance Group Accounts project, encounter when trying to do estimates? Estimating the effort required to implement software is notoriously difficult. Some of the difficulties of estimating are inherent in the very nature of software, especially its complexity and invisibility. In addition the intensely human activities that make up system development cannot be treated in a purely mechanistic way. Other difficulties include:

In Chapter 1, the special characteristics of software identified by Brooks, i.e. complexity, conformity, changeability and invisibility, were discussed.

• Novel applications of software With traditional engineering projects, it is often the case that the system to he created is similar to one constructed previously but for a different customer or in a different location. The estimates for such a project can therefore be based on previous experience. With software, in most major projects the product will in some way be unique and w ill therefore be clouded with doubts and uncertainties.

• Changing technology For example, at IOE the original maintenance billing system might have been written in Cobol. w hile the new extension for group accounts that Amanda is directing might be developed using an application building environment such as that provided by Oracle.

• Lack of homogeneity of project experience As we will see. effective estimating should be based on information about how past projects have performed. It is surprising how many organizations do not make this data available to staff. Amanda might also find that even where the previous project data is available, it might not be that useful.

Table 5.1 is a set of figures recorded for actual projects carried out by the same organization.

'Table 5.1 Some project data - effort in work months (as percentage of total effort in brackets)

The figures are taken from__Des,*n__C(H,i"K__Tes,in*

B. A. Kitchenham and N.

Project

wm

(ft)

wm

(ft)

wm

(ft)

wm

SLOC

R. Taylor Software Project

a

3.9

(23)

5.3

(32)

7.4

(44)

16.7

6050

Development Cost

b

2.7

(12)

13.4

(59)

6.5

(26)

22.6

8363

Estimation' in Journal ot

c

3.5

(II)

26.8

(83)

1.9

(6)

32.2

13334

Systems and Software 1985 (5).

d

0.8

(21)

2.4

(62)

0.7

(18)

3.9

5942

The abbreviation SLOC

e

1.8

(10)

7.7

(44)

7.8

(45)

17.3

3315

stands for source lines of

f

19.0

(28)

29.7

(44)

19.0

(28)

67.7

38988

code". SLOC is one way of

g

2.1

(21)

7.4

(74)

0.5

(5)

10.1

38614

indicating the size of a

h

1.3

(7)

12.7

(66)

5.3

(27)

19.3

12762

system.

i

8.5

(14)

22.7

(38)

28.2

(47)

59.5

26500

Exercise 5.1 Calculate the productivity (that is. SLOC per w ork month) of each of the projects in Table 5.1 and also for the organization as a whole. If the project leaders for projects a and d had correctly estimated the source number of lines of code (SLOC) and then used the av erage productiv ity of the organization to calculate the effort needed to complete the projects, how far out would their estimates have been from the actual effort?

Ii would be very difficult on the basis of this information to advise a project manager about what sort of productivity to expect, or about the probable distribution of effort among the phases of design, coding and testing that could be expected from a new project.

There have been some attempts to set up industry-wide databases of past projects. However, this data seems to be of limited use to estimators as there are uncertainties in the way that various terms can be interpreted. I-or example, what exactly is meant by the term 'testing'? Docs it cover the activity of the software developer when debugging code? Does 'design' include drawing up program structure diagrams or does this come under the heading of 'programming'?

Subjective nature of estimating Some research shows that people tend to under-estimate the difliculty of small tasks and over-estimate that of large ones. In the world of software development this is perhaps justifiable, as large projects are usually disproportionately more complex and more difficult than smaller ones.

Political implications Different groups within an organization have different objectives. The IOli information systems development managers might, for example, want to see as many systems as possible implemented and will therefore put pressure on estimators to reduce cost estimates. As Amanda is responsible for the development of the maintenance group accounts subsystem, she might be concerned that the project does not exceed its budget and is not delivered late, because this will reflect badly on herself. She might therefore try to increase the estimates. One suggestion is that all estimates should be carried out within an organization by a specialist estimating group, independent of both the users and the project team. Not all agree with this, as staff involved in a project are more likely to be committed to targets where they have participated in formulating them.

The possibility of the different groups with stakes in a project having different and possibly conflicting objectives was discussed in Chapter 1.

Project Management Made Easy

Project Management Made Easy

What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.

Get My Free Ebook


Post a comment