Note - Incremental Development

The Process:

To develop incrementally, we start with a package that doesn't depend on others we will be implementing. When that is fully functional and tested, pick another package that depends on, at most, already implemented packages and implement that. After testing and fixing we repeat until there are no more packages to implement.

image file not found
We refer to this set of working packages as the "current baseline".

Motivation:

The benefit of this style of development is that we are always inserting a newly tested package into a tested and integrated baseline. So, if something breaks when we integrate the new package we know were to look for code defects.

Keep It Working Principle (KIWP):

Incremental development supports the "keep it working" principle. The idea is that, as we build large complex systems, we strive to always have a working baseline, to which we add small additions or we make small modifications and don't leave that activity until everything works again.

Regression Testing:

Verifying that a large system works as expected can be a labor intensive process. To make that as efficient as possible we often build light-weight test harnesses that execute an automated sequence of tests on our baseline. When we add a new package, using incremental development, we add one or more tests to the test harness. This way, verification becomes quick and almost painless.