Iterative Enhancement

Software engineers typically implement their projects by using Iterative Enhancement, which means:

  • They implement the project in stages.

  • Each stage adds more functionality.
    • Each stage must be testable by running the application.

  • The final stage implements all the required functionality.

  • They test each stage as they implement it, rather than doing all the testing at the end.

An Iterative Enhancement Plan is a list (in ordinary English) of the stages.
  • Each stage's description explains what functionality must be supplied at that stage.
    • The description must refer only to the project's functionality, not the project's code.
    • The description should make plain what test(s) one would do to test that stage.