1.1.2. Incremental development
Several recent books, e.g. [Brooks75-95], [Meyer95], [Glass95],
argue in favour of a model of software process based on incremental
development. This is indeed neither new, nor a priori bound to
object-orientation.
The process consists in producing a simple running system at the
most early stage of the development, then refining it progressively
and taking care that it remains executable after every step. The
distinctive character of this process model is that it does not define
phases of different kinds.
The motivations for incremental development include:
- Better track changes in the environment, and in the
requirements; allow even for progressive refinements in the
requirements, i.e. accept that the requirements are initially
not fully specified or otherwise incomplete. The rationale for
this liberality is the pragmatic view that requirements will
anyway be incomplete.
- Allow for early testing and user feed-back. This provides
validation based on empiric data, as opposed to verification of
conformance to specifications. This last option does not
validate the specifications themselves, with the results that
the validity of these specifications becomes more critical, and
that more effort has to be spent into producing them. Such a
policy becomes suboptimal when significant amounts of expertise
are effectively acquired during the development, with respect to
what was available at the time when the specifications were
written. This situation is in turn archetypical of
programming-in-the-large.
- Track the risk of over-specification. This risk rises if the
process requires that the specifications are defined fully at an
early stage of the development.
A necessary condition, for incremental development to be
reasonable, is that increments of comparable importance, occurring at
various stages of the development, involve an equivalent amount of
effort.
This rules out in the long range any validation strategy based on
regression testing, since the mass of these tests continually
increases.
Table of contents
Marc Girod
Last modified: Sat Feb 28 14:23:05 EET 1998