Iterative Model
Iterative Model
The incremental delivery lifecycle is illustrated in Figure 13.6. This lifecycle is based
upon early work to establish feasibility and conduct the analysis and design for the
solution. In this version of the model, these stages are followed by two incremental
delivery phases, each consisting of development, testing and implementation. The most
pressing requirements are delivered in Increment 1 with the rest following in Increment
2. In practice, there may be further increments, depending upon the project context and
the business requirements.
Feasibility study
Increment 1
Development
Analysis
Testing
Design
Implementation
Increment 2
Development
Testing
Implementation
A disadvantage of using the incremental lifecycle is that the total cost of delivering the
solution is likely to be higher than delivering the solution in one release. This is due to
the need to ensure that each increment delivered does not compromise the solution
when it is implemented. Also, in the second and subsequent increments, it is necessary
to carry out a specific form of testing known as regression testing, to make sure that the
additional features do not cause problems within the delivered solution. The high level
analysis and design for the solution is defined such that the design is future-proofed and
can accommodate the later increments. If this is not done, inconsistencies, errors and
conflicts may arise that diminish the quality and effectiveness of the solution.
This lifecycle utilises the linear structure defined in the waterfall lifecycle but also allows
for incremental development and delivery. The need for a complete set of requirements
and an overall design is one of the fundamental differences between the incremental
lifecycle and the iterative approach described below.
A feature common to the waterfall, ‘V’ and incremental models is that a complete set of
requirements is gathered at the start of the project, which then forms the basis for all
subsequent work. An alternative approach is represented by a spiral model as originally
340
DELIVERING THE REQUIREMENTS
devised by Barry Boehm (1986) in his article: ‘A spiral model of software development
and enhancement’. Boehm’s original perception of the spiral model incorporated the
concept of iterations (or ‘rounds’ as Boehm called them) and used prototyping to reduce
risk when developing software for complex situations. This developed into the basis for
early Agile approaches such as RAD.
With the advent of Agile methods, such as DSDM and Scrum, iterative development has
increasingly used prototyping and related techniques in order to evolve the detailed
requirements and the corresponding software features. The Agile methods apply the
generic principles shown in Figure 13.7.
Figure 13.7 Principles underlying the Agile approach (© Assist Knowledge Development Ltd.)
yy Collaborative working: The development team members, from both business and
technical domains, work together collaboratively.
yy Prioritised requirements: A prioritisation approach, such as MoSCoW (see Chapter
10), is used to identify the different levels of priority among the features to be
delivered.
yy Timeboxed iterations: The concept of a ‘timebox’, where a time limit is set for an
iteration or ‘sprint’, during which an iterative approach is used to complete an
identified set of work items.
yy Evolutionary development: Detailed requirements evolve through a series of
product development iterations, typically using exploratory techniques such as
prototyping.
yy Empowered teams: The development team, which includes business staff and
software developers, is self-organising and empowered to make decisions about
the software development work.
341
BUSINESS ANALYSIS
A generic Agile model that encompasses the key aspects of iterative software development
is shown in Figure 13.8.
Figure 13.8 The generic Agile lifecycle (© Assist Knowledge Development Ltd.)
Establish
business need
and evaluate
options
Establish
solution
backlog
Plan Deliver solution increments
solution
increment
Develop solution
Plan
Iteration
release(s)
Requirements
Development
Test
Iteration 1.. n
Evaluate
Deploy and
evaluate
Feedback solution increment
The model begins with understanding and establishing the business need; a perceived
business need initiates the generic Agile lifecycle. The stages within this lifecycle are
described in Table 13.2. The arrows on Figure 13.8 show the overall sequence. The
dotted arrows show optional revisiting of previous stages in the light of feedback
generated during solution planning, development and deployment.
342
DELIVERING THE REQUIREMENTS
Stage Description
(Continued)
343
BUSINESS ANALYSIS
Stage Description
The waterfall, ‘V’ model and incremental lifecycles consist of a sequence of stages and,
as a result, incorporate a high level of control. While this offers many advantages, in
practice, the use of these lifecycles also has disadvantages:
yy There may not be time to define all the requirements at the outset. This may
result in a poor BRD containing requirements that are not of sufficient quality or
inconsistent documentation where only the most important or urgent requirements
are well defined.
344