Développement itératif ou incrémental : Pourquoi les équipes agiles ont-elles besoin des deux ?

Des cadres de travail agiles tels que Scrum reposent sur deux principes fondamentaux : Le développement itératif et le développement incrémental.

Iterative vs. Incremental Development: Why Agile Teams Need Both par Mike Cohn

https://www.mountaingoatsoftware.com/blog/agile-needs-to-be-both-iterative-and-incremental

Ces termes sont si fréquemment utilisés (et mal utilisés) que leur impact peut être perdu, mais comprendre comment chaque approche fonctionne (et pourquoi leur combinaison est si puissante) est essentiel pour créer de meilleurs logiciels, plus rapidement.

Cet article décompose chaque approche, utilise des analogies du monde réel et explore pourquoi la combinaison des deux est plus efficace que l’une ou l’autre seule.

Qu’est-ce que le développement itératif ?

Un processus itératif progresse par le raffinement.

Une approche itérative du travail commence par une version approximative d’une fonctionnalité ou d’un produit, puis l’améliore grâce à des cycles répétés, chacun se rapprochant peu à peu de la forme finale.

Par exemple, un sculpteur qui aborde le travail de manière itérative peut commencer par sculpter grossièrement un bloc de pierre. À chaque passage, il affine la forme, ajoutant des détails, lissant les bords et s’améliorant continuellement jusqu’à ce que la sculpture atteigne sa forme finale. La sculpture n’est pas terminée tant que l’ensemble de la pièce n’est pas terminé.

Qu’est-ce que le développement incrémental ?

Un processus incrémental permet de créer et de livrer des fonctionnalités et des produits en plusieurs parties. Chaque élément, ou incrément, représente un sous-ensemble complet de fonctionnalités.

Les incréments peuvent être petits ou grands. L’objectif est de terminer chaque incrément de fonctionnalité dans son intégralité avant de passer au suivant, sans qu’il soit nécessaire de revenir en arrière et de repasser sur ce travail plus tard. Chaque incrément terminé peut être livré seul.

Pour en revenir à l’analogie de la sculpture, un sculpteur incrémental choisirait un élément de la sculpture et se concentrerait sur celui-ci jusqu’à ce qu’il soit terminé. Il peut choisir de petits incréments (d’abord le nez, puis les yeux, puis la bouche, et ainsi de suite) ou de grands incréments (tête, torse, jambes puis bras). Cependant, quelle que soit la taille de l’incrément, le sculpteur incrémental tenterait de terminer le travail de cet incrément aussi complètement que possible avant de passer à autre chose.

Les équipes agiles combinent incrémental et itératif.

Le développement agile combine les deux approches pour obtenir le meilleur des deux mondes :

  • C’est itératif parce que le plan est que chaque pièce soit affinée et améliorée au fil du temps.
  • C’est incrémental car des logiciels fonctionnels utilisables sont livrés tout au long du projet.

Cette combinaison permet aux équipes d’apporter de la valeur dès le début, d’obtenir des retours et de s’adapter.

La vidéo ci-dessous montre comment le comédien Jerry Seinfeld aborde son travail d’une manière à la fois incrémentale et itérative.

Exemple concret : Création d’une application de rencontres.

Imaginez que vous développez un site de rencontres. Voici comment chaque approche fonctionnerait.

Purement itératif

  1. Vous construisez et bénéficiez d’un peu de toutes les fonctionnalités : Profils, recherche, chat, etc.
  2. Vous revenez en arrière et améliorez chacun d’entre eux au cours de plusieurs cycles.
  3. Au fil du temps, l’ensemble du système est perfectionné puis, finalement, livré.

Purement incrémental

  1. Vous créez et fournissez une version parfaite de la fonction de gestion des profils. Vous ne commencez rien d’autre avant que ce soit terminé.
  2. Vous construisez et livrez une version parfaite d’une deuxième zone, disons la recherche. Vous passez ensuite à la suivante.
  3. Chaque fonctionnalité est parfaite avant le début de la suivante.

Itératif + Incrémental (Agile)

  1. Vous commencez avec une version de base du profil utilisateur, vous la livrez. Vous obtenez des commentaires.
  2. Vous ajoutez la possibilité d’ajouter une image au profil de l’utilisateur et de fournir une version de base de la fonctionnalité de recherche. Vous obtenez à nouveau des commentaires.
  3. Vous réorganisez les champs sur le profil utilisateur pour améliorer l’expérience utilisateur. Vous ajoutez des filtres à la fonctionnalité de recherche. Vous créez un schéma de la fonction de chat. Vous obtenez davantage de commentaires.
  4. Les sprints suivants peuvent inclure des améliorations apportées aux fonctionnalités précédentes et des versions de nouvelles fonctionnalités utilisables. Ou les deux.

Une approche agile permet des mises en production précoces, des expérimentations à faible risque et des corrections de cap fréquentes, caractéristiques des équipes performantes.

L’agilité est itérative et incrémentale

Ni le développement incrémental ni le développement itératif n’apportent à eux seuls beaucoup de valeur. Mais ensemble, ils forment la colonne vertébrale de l’agilité.

L’itération aide les équipes à affiner et à s’adapter. L’incrémental garantit une progression constante et une création de valeur. Combinés, ils permettent d’obtenir de l’agilité, de la réactivité et des résultats concrets.

CertYou est partenaire de DantotsuPM, allez voir toutes les certifications Agiles.

n'hésitez pas à commenter les billets et à partager vos idées.