Incremental delivery

This is similar to the 'incremental prototyping' approach mentioned above. One Principles of Software of the most prominent advocates of this approach is Tom Gilb. The approach Engineering Management involves breaking the system down into small components which are then by Tom Gilb, published by implemented and delivered in sequence. Each component that is delivered must Addison-Wesley in 1988, actually give some benefit to the user. Figure 4.5 gives a general idea of the argues strongly in favour approach. of this approach.

Figure 4.5 Intentional incremental delivery.

Advantages of this approach

These are some of the justifications given for the approach:

• the feedback from early increments can influence the later stages;

• the possibility of changes in requirements is not so great as with large monolithic projects because of the shorter timespan between the design of a component and its delivery;

• users get benefits earlier than with a conventional approach;

• early delivery of some useful components improves cash flow, because you get some return on investment early on;

• smaller sub-projects are easier to control and manage;

• 'gold-plating', the requesting of features that are unnecessary and not in fact used, should be less as users will know that they get more than one opportunity to make their requirements known: if a feature is not in the current increment then it can be included in the next;

• the project can be temporarily abandoned if more urgent work crops up;

• job satisfaction is increased for developers who see their labours bearing fruit at regular, short, intervals.

Disadvantages

On the other hand these disadvantages have been put forward:

• 'software breakage', that is, later increments might require the earlier increments to be modified;

• developers might be more productive working on one large system than on a series of smaller ones.

The process of planning the increments of a project as described by Gilb has similarities with strategic planning described in the previous chapter.

The incremental delivery plan

The content of each increment and the order in which the increments are to be delivered to the users of the system have to be planned at the outset.

Basically the same process has to be undertaken as in strategic planning but at a more detailed level where the attention is given to increments of a user application rather than whole applications. The elements of the incremental plan are the system objectives, incremental plan and the open technology plan.

Chapter 12 discusses software quality characteristics.

Identify system objectives

The purpose is to give an idea of the 'big picture', that is, the overall objectives that the system is to achieve. These can then expanded into more specific functional goals and quality goals. Functional goals will include:

• objectives it is intended to achieve;

• computer/non-computer functions to achieve them.

In addition, measurable quality characteristics should be defined, such as reliability, response and security. This reflects Tom Gilb's concern that system developers always keep sight of the objectives that they are trying to achieve on behalf of their clients. In the quickly changing environment of an application, individual requirements may change over the course of the project, but the objectives should not.

Plan increments

Having defined the overall objectives, the next stage is to plan the increments using the following guidelines:

• steps typically should consist of 1 % to 5% of the total project;

• non-computer steps may be included - but these must deliver benefits directly to the users;

• ideally, an increment should take one month or less and should never take more than three months;

• each increment should deliver some benefit to the user;

• some increments will be physically dependent on others;

• value-to-cost ratios may be used to decide priorities (see below).

Very often a new system will be replacing an old computer system and the first increments may use parts of the old system. For example, the data for the database of the new system may initially be obtained from the old system's standing files.

Which steps should be first? Some steps might be prerequisites because of physical dependencies but others can be in any order. Value-to-cost ratios can be used to establish the order in which increments are to be developed. The customer is asked to rate each increment with a score in the range 1-10 in terms of its value. The developers also rate the cost of developing each of the increments with a score in the range 0-10. This might seem a rather crude way of evaluating costs and benefits, but people are often unwilling to be more precise. By then dividing the value rating by the cost rating, a rating which indicates the relative 'value for money' of each increment is derived.

The value to cost ratio = V/C where V is a score 1-10 representing value to customer and C is a score 0-10 representing cost.

Table 4.1 Ranking by value to cost ratio

Step

Value

Cost

Ratio

Rank

Profit reports

9

I

9

(2nd)

Online database

1

9

0.11

(6th)

Ad hoc enquiry

5

5

I

(4th)

Production sequence plans

2

8

0.25

(5th)

Purchasing profit factors

9

4

2.25

(3rd)

Clerical procedures

0

7

0

(7th)

Profit based pay for managers

9

0

oo

(1st)

Create open technology plan

If the system is to be able to cope with new components being continually added then it has to be built so that it is extendible, portable and maintainable.

As a minimum this will require the use of:

• a standard high level language;

• a standard operating system;

• variable parameters, for example, items such as organization name, department names and charge rates are held in a parameter file that can be amended without programmer intervention;

• a standard database management system.

These are all things that might be expected as a matter of course in a modern IS development environment.

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


Responses

  • Saku M
    What are the advantage of incremental delivery in software engineerin?
    1 year ago

Post a comment