Pour expliquer la différence entre développement incrémental et itératif, l'agiliste américain Jeff Patton a utilisé la peinture de la Joconde, dans cet article fameux de 2008 : Don't Know What I Want, But I Know How to Get It. Inspirante, sa « Mona Lisa Agile » fait depuis le tour du monde, complétée par d'autres, pour mieux refléter les pratiques.
Développement incrémental (waterfall)
Le développement incrémental, typique de l'approche waterfall (cycle en V), s'appuie sur une idée initiale complètement formée, que l'on construit ensuite morceau par morceau, jusqu'à une livraison finale, complète. L'inconvénient est qu'il faut attendre longtemps avant de voir le résultat final.
Le développement incrémental peut, sous prétexte d'agilité, conduire à un résultat dysfonctionnel, comme l'illustre l'UX designer Charles Lambdin : des morceaux sont livrés successivement, mais sans cohérence d'ensemble. C'est ce qui se passe lorsque les méthodes agiles ne sont pas comprises.
Développement itératif
Le développement itératif, introduit par les méthodes agiles, part d'une idée grossière, qui est affinée par retouches successives, chacune améliorant la qualité. Dès le début, l'effort porte sur l'ensemble, au risque de ne jamais complètement finir.
Dans un processus agile, l'on ne sait pas à l'avance quel sera le résultat final, et c'est ce qui fait sa force : cela permet d'innover constamment. Mais comme l'idée de départ est imprécise, le risque est d'aboutir à tout autre chose, genre Bob l'éponge au lieu d'une Joconde, comme l'illustre l'UX designer néerlandais Joost Verweij dans Agile, design en de Mona Lisa, Joost Verweij (2015).
Si bien que souvent, seules les premières étapes, de conception, sont itératives, ensuite suivies d'un développement incrémental classique plus sécurisant, mais qui ne laisse plus de place à l'innovation, au risque de ne pas répondre correctement aux besoins qui évoluent entre temps.
Développement itératif incrémental
En pratique, les équipes agiles combinent les deux, comme l'explique Steven Thomas, dans Revisiting the Iterative Incremental Mona Lisa (2012) :
Il s'agit de partir d'une idée, d'abord précisée itérativement, ensuite partiellement développée en un incrément fonctionnel, potentiellement livrable tel quel. Chaque incrément suivant étant susceptible d'affiner les fonctionnalités existantes, est également itératif. Cette approche combinée est beaucoup plus puissante.