To ensure that the project is making progress, each iteration is forced to produce something tangible: a “release.” This release can be:
- A prototype that is used to demonstrate some specific capability
- An “internal” release that is used to elicit feedback and that serves as the basis for further development and testing
- An “external” release that is shipped to customers in some form
The following is our definition of release:
Release: A stable and executable version of a system.
The production of something executable during each and every iteration is so important to the iterative approach that some people even go as far as to assert that “The goal of an iteration is an iteration release: a stable, integrated and tested, partially complete system.” Read More
We all know that we want to “cut to the chase” as soon as we can and start incrementally developing the software product through which we deliver value back to the business. But we also know that there are certain essential pre-requisites to “sprinting”, such as some kind of vision of where we are supposed to be going and the right team and tools to get us there. If we start motoring before we are ready we may head off in the wrong direction or we may find that the wheels come off as we accelerate through the gears.