Incremental Development
Incremental development is a scheduling and staging strategy, in which the various
parts of the system are developed at different times or rates, and integrated as
they are completed. As agile methods become more popular, incremental software development—a
cornerstone of these methods—almost became the replacement of the waterfall model.
Incremental development is the development of a system in a series of partial products,
generally with increasing functionality, throughout the project timescale; incremental
delivery gives those increments to the users when they are completed. It builds
and delivers software to a production environment as a series of small and regular
releases with expanding functionality. An application is therefore delivered in
incremental releases over time, where each release adds new functionality to the
previous release. An increment is completed when all the associated life cycle products
are finished, including testing, training, and documentation.
There are significant benefits both for developers and users:
- Allows risks to the project to be addressed incrementally and reduced early in the
lifecycle. Early increments can be scheduled to cover the most risky parts of the
architecture. When the architecture is stable, development can be speeded up.
- Benefits users, managers and developers who see working functionality early in the
lifecycle. Each increment is, effectively, a prototype for the next increment.
- Developers do not need to have all the requirements available before they start
work. They just need enough requirements to drive their current work (in this case,
the current iteration).
- Errors are easier to find because they are most likely in that last little bit of
code that you added.
Nova has researched and practiced agile methods for a long time and incremental
development is one of the successful practices. In a word, incremental development
helps project reduce errors and speed up construction. It allows project team to
identify architectural problems sooner rather than later because of constant building
and checking. It benefits not only project members in Nova, but also our clients.
Using this strategy, it's easier to control project progress and reduce project
risks.