Représenter l’essence du développement Agile

February 23, 2020

Est-ce que, comme moi, vous en avez assez de voir des Jocondes et des trottinettes pour vous expliquer l’Agilité ? Oui mais alors, quelle image nous aiderait mieux à saisir l’essence de cette approche du développement logiciel ?

Judith et Holopherne, Le Caravage. 1607.

Un dimanche après-midi, je regardais sur Arte un passionnant reportage de Frédéric Biamonti : L’affaire Caravage.

C’est l’histoire d’un tableau (Judith et Holopherne), retrouvé en 2014 dans un grenier près de Toulouse et attribué à Michelangelo Merisi, dit le Caravage (1571-1610). Mais, aussi passionnante que soit cette enquête, c’est une simple remarque prononcée par Claudio Falcucci, un scientifique italien réputé pour ses analyse des tableaux du Caravage, qui a retenu mon attention. Il montre, sur une image aux rayons X, la ligne qui dessinait l’épaule de la vieille servante dans une première version du tableau. Cette ligne a été recouverte par le voile de Judith dans l’œuvre finale. Et c’est la preuve qu’il ne s’agit pas d’une copie. Un copiste n’aurait pas fait un tel repentir1 : il aurait su exactement quoi reproduire puisqu’il l’avait sous les yeux.

Radiographie de Judith et Holopherne

Et il ajoute :

C’est donc l’œuvre d’un peintre qui est en train de réfléchir à la composition, en même temps qu’il réalise l’œuvre.

L’affaire Caravage, (timecode 0:50:47:0).

Cette phrase tourne dans ma tête: « Réfléchir à sa composition en même temps qu’on réalise une œuvre. » Elle traduit bien le fait de ne pas savoir exactement où l’on va.

L’analogie avec le développement Agile (ou Lean) m’apparaît alors : la conception (dans notre jargon, on parlerait de spécification) change pendant la réalisation. N’est-ce pas ce qui nous arrive constamment dans le monde du logiciel ? Nous créons un produit dont la définition évolue, s’affine, au fur et à mesure qu’on le voit prendre forme.

Quand nous développons un logiciel, notre objectif n’est pas aussi clair que celui d’un peintre copiste. Il est plus souvent flou, soit parce que nous partons à la découverte de quelque chose que nous ne connaissons pas (innovation), soit parce qu’il nous est difficile d’exprimer clairement ce que nous connaissons.

C’est peut-être pour cette raison qu’on parle de développement pour le logiciel et non pas d’assemblage, de manufacture ou de production — vocabulaire qui fait référence à la fabrication en série, née pendant la révolution industrielle. Et c’est probablement pour cette même raison que je suis gêné quand j’entends parler d’exécution ou de codage pour du logiciel, parce qu’il ne s’agit pas d’exécuter un plan de façon mécanique.

Le mot développement est du registre du vivant ; il n’est pas du même registre que les mots qui décrivent le travail fait sur une chaîne de fabrication. Et nous devrions peut-être dire qu’un logiciel se développe, que nous participons à son développement, plutôt que dire « je développe un logiciel », comme si tout venait de nous.

On voit souvent la Joconde utilisée dans les formations Agiles pour expliquer le concept de processus itératif ou incrémental. Mais maintenant, je crois que l’image la plus éclairante pour parler d’Agilité est celle du repentir en peinture.


  1. Correction du trait ou des couleurs apportée en cours d'exécution. Le Trésor de la langue Française informatisé↩