Dessin de Jeff Patton
Qu'est-ce que le développement itératif et qu'est-ce que le développement incrémental ? Même les experts ne s'y retrouvent pas lorsqu'ils le décrivent. Peut-être notre langage reflète-t-il mal la réalité.
Jeff Patton pense que les logiciels devraient être conçus de la même manière qu'un artiste.. L'artiste "itérés" Le potentiel de l'ensemble de l'image est visible à chaque itération, de l'esquisse initiale à la peinture finale. L'œuvre complète devient progressivement visible. Patton appelle cela "itératif" développement.
Or, c'est exactement ce que Mills et Brooks appellent "incrémental" développement. Ils préconisent de faire pousser le logiciel comme une plante. Il s'agit d'une métaphore similaire à la manière dont une esquisse d'artiste "pousse".
Harlan Mills d'IBM a publié pour la première fois ce concept dans "Debugging Techniques in Large Systems" Prentice Hall, 1971. (Tout système logiciel doit être développé par incrémentation.)
Fred Brooks a popularisé le concept dans "Pas de solution miracle : Essence et accidents du génie logiciel"publié pour la première fois en IEEE Computer, avril 1987 dont la version finale a été publiée dans l'édition anniversaire de "Le mois de l'homme mythique."
Patton a donc la bonne idée, mais son utilisation du terme "développement itératif" est erronée. Le développement incrémental consiste à itérer sur l'ensemble du projet (chaque itération est un ensemble de fonctionnalités minimales utilisables et potentiellement livrables).
Patton dénonce la pratique courante qui consiste à développer complètement une fonctionnalité au cours d'une itération, puis une deuxième fonctionnalité au cours de l'itération suivante. C'est ce qu'il appelle le développement incrémental (à tort !). Il n'est pas en phase avec la terminologie utilisée par les informaticiens depuis plusieurs décennies.
La clé du concept de développement incrémental de Mills/Brooks est l'idée que chaque itération est utilisable d'une manière ou d'une autre (logiciel potentiellement expédiable). Le premier Scrum a livré tous les incréments à la fin de chaque itération et ils ont été utilisés par des consultants internes "en colère" pour exécuter des projets clients générateurs de revenus. Il n'était que "potentiellement expédiable" parce que le Product Owner (Don Roedner) n'était pas prêt à le lancer sur le marché général.
Patton n'est pas clair sur ce que nous entendons par logiciel potentiellement expédiable, à savoir que chaque itération est utilisable. L'expression "potentiellement expédiable" a été décrite pour la première fois par Ken Schwaber dans son article OOPSLA 1995 sur Scrum, après avoir observé la première équipe Scrum. Ce premier article sur Scrum est republié dans "Les documents Scrum." Peut-être que Ken et moi aurions pu être plus clairs sur ce que signifie "logiciel potentiellement expédiable".
Ainsi, Scrum est à la fois un développement interactif et incrémental lorsqu'il est effectué correctement. Chaque itération fournit un incrément entièrement fonctionnel, tout comme une plante fonctionne à chaque étape de sa croissance. Si c'est le cas, chaque itération est "potentiellement expédiable" et, dans le cas idéal, est expédiée à un ensemble d'utilisateurs finaux qui l'utilisent pour effectuer un travail réel et fournir un retour d'information.