Le magazine de management informatique en ligne Computerworld a récemment publié une petite interview de Kent Beck, un guru du développement agile et l'inventeur d'eXtreme Programming (XP). L'américain répond brièvement à des questions générales sur l'agilité et sur
l'application d'XP dans le cadre des nouvelles technologies. La confrontation .NET / Java n'échappe pas au rédacteur :-)
Je profite de cette news pour présenter rapidement XP à ceux qui ne connaissent pas le processus.
Qu’est-ce que l’eXtreme Programming ?
L’eXtreme Programming (XP) est un processus agile pour la gestion des projets de développement logiciel. XP a été créé au milieu
des années 1990 par Kent Beck et représente aujourd’hui l’un des plus célèbres processus agile.
Qu’est-ce qu’un processus agile ?
Dans le cadre d’XP, la notion de processus recouvre un ensemble d’activités, de bonnes pratiques et de méthodes (ou règles) dont l’objectif est de mener à bien le développement des logiciels. XP
est qualifié d’agile car il est conçu de façon à accepter le changement et à répondre rapidement à l’évolution des besoins. Cette notion de processus agile s’oppose à celle de processus
« lourd » tel que le Processus Unifié (ou UP pour Unified Process). Lourd, dans le sens où certains processus proposent un grand nombre d’activités qui ne sont pas toujours
adaptées à toutes les situations.
|
Vous entendrez parfois parler de méthode agile au lieu de processus agile. Il ne me semble pas très rigoureux d’employer la première expression dans une présentation
d’eXtreme Programming. L’expérience prouve que la notion de méthode constitue un véritable fourre-tout lorsqu’on tente de l’appliquer aux domaines de l’informatique. On entend par exemple
parler de méthode pour faire référence à un langage (UML), ou pour désigner un recueil des meilleures pratiques de gestion (ITIL, CobiT). Peut-on confondre les notions de processus et de
méthode ? Dans le cadre de l’informatique de gestion cela ne semble pas vraiment cohérent dans la mesure où un processus ne fait que fournir un cadre organisationnel.
L’organisation en elle-même et le contrôle, autrement dit la méthode, ne peuvent être qu'un intrinsèques à l’entreprise, à la culture et aux managers.
|
À quoi XP aspire-t-il ?
XP est un processus itératif qui se fonde sur la communication, sur le travail d’équipe et sur la relation client pour répondre
aux objectifs suivants :
Comment XP s’organise-t-il ?
Pour tenter de répondre aux objectifs précédents, XP s’appuie sur quatre activités principales :
Un certain nombre de pratiques et de règles composent chacune de ces activités.
L’activité de planification a pour objectif de définir un plan global du projet, ce dernier étant formé d’une dizaine d’itérations de 1 à 3 semaines. Dans les grandes lignes, ce plan prend en
compte :
L’activité de codage comprend les pratiques suivantes :
L’activité de conception prend en compte les pratiques suivantes :
Enfin, l’activité de test inclut les règles suivantes :
Voilà, la liste des règles et bonnes pratiques est assez longue (il manque ici quelques éléments) mais au final, le processus offre une vision très simple :
Les itérations se succèdent jusqu’à ce que le produit final soit livré.
Que penser d’XP ?
eXtreme Programming offre une vision intéressante de la façon dont un manager peut gérer une petite équipe projet (15-20 personnes au maximum). De plus, XP tente de répondre
intuitivement aux deux grands défis lancés par les projets informatiques depuis plus de trente ans : la satisfaction client et la communication. Cependant, les
pratiques XP sont-elles vraiment adaptées à nos organisations (en France) ?
Un client peut-il constamment se trouver face aux équipes techniques ? En théorie oui mais il y a une forte probabilité pour que cela ne soit pas le cas en pratique (point à méditer en
intégrant la composante culturelle).
En interne, le partage du code et la possibilité de modifier la tâche d’un pair est fortement susceptible de déresponsabiliser les individus. Enfin, le développement en binôme est une pratique
qui peut être stimulante mais est-elle réellement rentable pour le projet ?
Ces interrogations sont importantes sur le plan pratique mais ne peuvent remettre en cause le processus XP qui véhicule une vision moderne de la gestion des projets. Un petit
approfondissement du sujet vous permettra d'en être convaincu : Extreme Programming
Explained : Embrance Change
Bonne lecture :-)
Dans mon avant dernier billet, je vous parlais du processus agile eXtreme Programming. Pour compléter cette présentation, j'ajoute quelques mots que je pensais avoir perdu sur
SCRUM, un processus agile voisin d'XP qui mérite d'être cité.
Qu’est-ce que SCRUM ?
SCRUM (de l’anglais « mêlée ») est un processus agile pour la gestion des projets de développement logiciel. Nous pouvons voir en SCRUM
deux préoccupations majeures.
La première se fonde sur le principe que les besoins d’un projet ne sont jamais clairement définis et parfaitement bien compris (ce qui est naturellement le cas
dans tous les projets). Cette vision doit permettre de facilement prendre en charge les changements et de livrer rapidement les versions intermédiaires du produit final. Comme son nom l’indique,
le deuxième objectif de SCRUM est de favoriser l’esprit d’équipe. Au rugby, l’objectif de la mêlée est de réunir toutes les forces d’une équipe afin de gagner progressivement du
terrain. Dans SCRUM, les mêlées sont des réunions au cours desquelles une petite équipe de 5 à 10 personnes se réunit pour identifier les défis à relever. Ces réunions ont également un rôle
important dans la motivation des membres de l’équipe.
L’origine de SCRUM
L’approche SCRUM a été décrite pour la première fois dans un article nommé The New New Product Development Game de
Hirotaka Takeuchi et Ikujiro Nonaka, deux professeurs de l’université japonaise Hitotsubashi.
Quelles sont les caractéristiques de SCRUM ?
SCRUM est un processus itératif qui se caractérise par les composantes suivantes :
Pour en savoir plus sur SCRUM, rendez-vous sur le site incontournable de la société Advanced Development Methods : http://www.controlchaos.com/