In Iterative and Incremental Model, the whole requirement is divided into various sub–requirements or builds. Each build in itself follows waterfall model, i.e. each build passes through requirement, design, implementation and coding. The need for incremental and iterative model arise and is very useful in scenario where requirement changes frequently or we are working on an idea and the detailed requirement may not be clear at the start of development but a high level vision of the end product is available to us.
As the name suggest, this model will consider both iterative and
incremental development. Before we discuss this in detail, let us know what
iterative and incremental means. Various parts of the system are developed at
different time and are integrated into the existing developed work once they
are completed. And iterative strategy assigns time for rework and improvement
in the part of system developed, thus continuously working in iterations to
rework and improve the system adding more features in an iterative manner.
IID Model |
To start with this model, we divide the project in a number of
modules or stories. Each module/story represents functionality or use case in
the product. Stories should be created or planned in such a manner that each
story covers a feature of product, has set of entry and acceptance criteria and
needs to be of shorter span of time, may be few days to few weeks.
This is the
analysis phase where we have analyzed the various stories from the requirement
based on the features expected from the product. With each story having its own
story means features which will have a short span of time to complete.
This is the
analysis phase where we have analyzed the various stories from the requirement
based on the features expected from the product. With each story having its own
story means features which will have a short span of time to complete.
Now once we have analyzed all the stories in the requirement,
how do we react to stories, Do we start working on all stories together in a
bang bang manner or do we need to priority to the stories, We will start with
the story with most risk and complexity, and before this will complete on other
smaller stories on which the most complex and risk story is developed. Once the
complex piece is selected, we work on following a small waterfall on the story,
We start with analysis, then design, coding and then testing the code, but with
regular feedback at each of the steps.
The first piece will take a longer time compared to next stories
but will provide useful immense information on the feasibility of the project,
Knowledge to team on the product and possible bottlenecks in the development of
project. It is strictly advised not to set deadlines for the initial few pieces
as it will act as guidance to rest of stories on how long it will take to develop
another story in the project.
Once we develop another story, we add it to existing product thus increment the functionality added to existing product and at the same
time, we do iteration to improve and rework to existing developed piece based
on defects, feedback from various stakeholder.