Integration Driven Development


Integration Driven Development is an incremental approach to systems development where the contents of the increments are determined by the integration plan, rather than the opposite. The increments can be seen as defined system capability changes - "Deltas".
The advantages compared to other incremental development models still apply, such as short design cycles, early testing and managing late requirement changes, however IDD adds pull to the concept and also has the advantage of optimizing the contents of each increment to allow early integration and testing.

Pull from integration and testing

Pull, in this context, means that information is requested from the user when needed, as opposed to delivered when it happens to be ready. Development planning has to adjust to the optimal order of integration.
System implementation is driven by what is going to be integrated and tested. System design, in turn is driven by the planned implementation and requirements by the planned system design steps. By doing so, artifacts will be delivered just-in-time, thus enabling fast feedback.

Advantages and Limitations

IDD is not used instead of other incremental models, but rather as an enhancement that will make those models more efficient.
One obstacle when using IDD is to create the integration plan – the definition of what to develop and integrate at a given time. One way that has proven successful is to use System Anatomies for original planning and Integration Anatomies for re-planning and follow-up.
Since all planning will require time and resources IDD may be considered unnecessary for development with low complexity of the system and organization.