7 minutes

Si l’on demande à un informaticien ou à un responsable de projet de citer une méthode agile de gestion de projet, il y a toutes les chances pour qu’il réponde « Scrum ». S’il s’agit de loin de la méthode la plus répandue et la plus en vue actuellement, c’est loin d’être la seule. Plusieurs méthodes agiles, regroupées au sein d’une même famille appelée « Crystal », sont bien moins connues, notamment en France, et pourtant elles présentent suffisamment d’avantages pour que l’on s’y intéresse. Faisons donc un peu le tour de la méthode agile Crystal et ses 7 caractéristiques.

Un rapide aperçu des méthodes agiles Crystal

Les méthodes agiles Crystal ont été créées au milieu des années 90 par Alistair Cockburn, un célèbre programmeur américain. Il a notamment participé à la rédaction du Manifeste Agile en 2001 et a publié plus d’une demi-douzaine de livres sur le développement agile entre 1997 et 2006.

Alistair Cockburn a étudié durant de nombreuses années la façon dont les différentes équipes de développement travaillaient. Il a mis en lumière le fait que bien que les équipes suivies ne respectaient pas à la lettre les méthodes de gestion de projet classiques, elles parvenaient tout de même à mener leurs projets à bien. Il a donc relevé, compilé et catalogué tout ce qui a permis à ces équipes de réussir leurs projets, afin de constituer les méthodes agiles de gestion de projet Crystal.

Les méthodes agiles Crystal sont généralement plus souples à mettre en œuvre que d’autres (elles ont été conçues dans ce sens) et fournissent un ensemble d’outils et de bonnes pratiques pour la gestion d’un projet.

Contrairement à d’autres, les méthodes agiles Crystal ne sont pas centrées sur les processus, qui passent au contraire au second plan. Partant du principe qu’une équipe de développement comprend des personnes aux compétences et aux talents très différents, le processus en lui-même n’est pas une priorité.

Les méthodes agiles Crystal sont donc plutôt centrées sur:

  • les personnes,
  • les interactions,
  • la communauté,
  • les compétences,
  • les talents
  • et la communication.

Plutôt que de définir des processus très précis et contraignants, les méthodes agiles Crystal mettent l’accent sur la communication et la collaboration entre les différents participants. C’est ce qui permet aux méthodes Crystal d’être plus « légères » à mettre en place et de s’adapter à la plupart des cas rencontrés dans les projets.

La famille des méthodes agiles Crystal

Les différentes méthodes agiles Crystal ont été conçues pour s’adapter à la taille de l’équipe de développement. Un code de couleur est utilisé pour identifier le « poids » de la méthode agile à utiliser en fonction du projet.

Les différentes couleurs utilisées sont :

  • transparent (« Clear »),
  • jaune,
  • orange,
  • rouge,
  • marron,
  • diamant
  • et saphir.

Ce qui avec une variante supplémentaire nous donne les méthodes Crystal Clear, Crystal Yellow, Crystal Orange, Crystal Orange Web, Crystal Red, Crystal Maroon, Crystal Diamond et Crystal Sapphire. Plus le projet à gérer est important, et plus la couleur de la méthode est foncée.

On comprend donc que la méthode de management agile Crystal Clear est particulièrement adaptée à des petits projets alors que Crystal Yellow et Orange conviendront à des projets de taille moyenne. Pour des projets de très grande envergure ou particulièrement critiques, les méthodes Crystal Diamond et Crystal Sapphire seront choisies prioritairement.

Même si toutes les méthodes agiles Crystal présentent de nombreux points communs, il est particulièrement important de choisir la bonne couleur en fonction de la taille et de la criticité du projet afin de disposer des outils adaptés à la gestion de contraintes plus ou moins fortes.

Différentes méthodes, mais 7 points communs

S’il existe différentes méthodes dans la famille Crystal adaptées à différents cas de figure et types de projets, toutes partagent sept points communs :

  • des livraisons fréquentes,
  • un processus d’amélioration continue,
  • une communication accrue entre les membres de l’équipe,
  • la mise en confiance de l’équipe,
  • la priorité à la concentration des développeurs,
  • l’accès facilité à des experts
  • et un environnement technique disposant de tests automatisés et d’outils permettant d’effectuer de la gestion de configuration et des intégrations fréquentes.

1- Livraisons fréquentes

Les livraisons fréquentes font parties des pratiques de la plupart des méthodes agiles. L’équipe de développement sélectionne les fonctionnalités incluses dans chaque livraison et crée les tests nécessaires. Avec les méthodes agiles Crystal, les livraisons peuvent être plus ou moins rapprochées, toutes les semaines, ou tous les trimestres, en fonction de la taille et de la longueur du projet.

Grâce à des livraisons fréquentes, les membres de l’équipe sont en mesure de détecter plus rapidement les anomalies. Plus une anomalie est détectée tôt dans un projet, et moins elle coûte cher à corriger. De même, si le client s’aperçoit finalement que l’application développée ne correspond pas exactement à ce qu’il voulait, les changements pourront être pris en compte plus facilement que s’il fallait attendre la fin du projet. Contrairement à d’autres méthodes agiles, il est possible qu’une livraison soit composée de plusieurs itérations de développement.

2- Processus d’amélioration continue

Le processus d’amélioration continue a pour objectif de permettre à l’équipe de développement de quitter temporairement ses tâches habituelles pour se pencher sur les problèmes qui ont pu être rencontrés. L’objectif est d’analyser les problèmes, d’identifier les causes et de mettre en place les solutions pour qu’ils ne se reproduisent plus, de tirer les leçons de l’expérience acquise. C’est l’occasion également d’optimiser les processus du projet afin que l’équipe soit encore plus efficace d’une itération à l’autre.

Dans les méthodes agiles Crystal, des réunions de réflexion sur l’amélioration continue du projet sont organisées toutes les deux semaines. C’est l’occasion pour l’équipe projet de faire le tour de ce qui a bien fonctionné et de ce qui a moins bien fonctionné afin d’identifier les axes d’amélioration.

3- Communication entre les membres de l’équipe

La communication entre les membres de l’équipe projet est vivement encouragée. Pour ce faire, l’équipe entière est de préférence regroupée dans une pièce unique. Si l’équipe est trop importante, au-delà de huit personnes, des cloisonnements peuvent être mis en place de façon à maintenir la communication, tout en limitant les sources de distraction et les nuisances. Le but du regroupement de l’équipe en un seul lieu est de limiter les sources de distraction des développeurs. S’ils ont une question à poser ou une demande à faire, ils n’ont pas à se déplacer, à changer de pièce, ils rompent moins longtemps leur concentration et sont plus efficaces.

Les informations circulent plus facilement entre les membres de l’équipe, les questions trouvent des réponses plus rapidement. De plus, en étant proches les uns des autres, les développeurs assistent à toutes les conversations et peuvent ainsi partager leurs expériences et trouver de nouvelles idées. Ce type d’organisation permet également de libérer la créativité de l’équipe projet.

4- Mise en confiance de l’équipe

Les méthodes agiles Crystal mettent en avant la confiance entre les membres de l’équipe projet. Aucune suggestion, aucune idée ne doit être écartée, tout le monde peut s’exprimer sans avoir la crainte de se voir ridiculisé. Chacun doit avoir suffisamment confiance dans les autres membres de l’équipe pour se sentir libre d’exposer ses idées et ses objections. La confiance est un élément central des méthodes agiles Crystal.

5- Concentration de l’équipe projet

La concentration dans les méthodes agiles Crystal concerne deux domaines :

  • les tâches attribuées individuellement
  • et la direction suivie par le projet dans son ensemble.

Afin de permettre aux membres de l’équipe de se concentrer sur les tâches qui leur ont été attribuées, toutes les sources de distractions doivent être proscrites, ou plus raisonnablement limitées le plus possible : interruptions pour des discussions, réunions, questions posées hors contexte, conversations téléphoniques…

Toute interruption de la concentration d’une personne sur sa tâche en cours peut être grandement préjudiciable, car elle aura besoin d’un certain temps pour revenir à son niveau de concentration initial. Il y a donc une perte de temps et de productivité évidente. Pour éviter cela, l’équipe projet devra être mise à l’abri autant que faire se peut de toutes ces distractions.

Ainsi, les méthodes Crystal définissent deux règles simples :

  • un développeur doit travailler sans interruption durant une période de deux heures (on s’isole, on coupe le téléphone et tout moyen de communication susceptible d’interrompre la tâche en cours)
  • et un développeur ne doit pas travailler moins de deux jours complets sur un projet avant d’en changer si nécessaire (en-dessous de deux jours, il n’a pas le temps de s’approprier le projet et d’atteindre son efficacité maximale).

Enfin, la direction suivie par le projet, ses objectifs, les délais, toutes ces informations doivent être parfaitement claires et connues de l’ensemble de l’équipe projet, de façon à se concentrer sur les tâches prioritaires.

6- Accès facilité à des experts

Le ou les experts techniques et métier associés au projet doivent se rendre disponibles pour répondre à toute question pouvant se poser l’équipe de développement. Ils doivent être totalement impliqués dans le projet, et facilement accessibles. Au moindre doute énoncé par un développeur concernant telle ou telle fonctionnalité, l’expert doit être en mesure de lui répondre dans les plus brefs délais, et de façon la plus précise possible. Il est courant que l’expert ne soit pas disponible 100% du temps pour le projet. Dans ce cas, il devra être possible d’organiser avec lui au moins une réunion hebdomadaire de deux heures, et de le joindre par téléphone à n’importe quel moment.

7- Environnement technique

Enfin, le dernier point commun entre toutes les méthodes agiles Crystal concerne l’environnement technique utilisé par l’équipe de développement. Tous les outils nécessaires à l’intégration continue des développements (tests et déploiements automatisés, remontées d’alertes en cas de détection d’anomalie…) doivent être mis en place dès le début du projet. C’est à cette condition que les anomalies pourront être détectées rapidement, et corrigées.

Plus une anomalie est détectée tôt, et moins le coût de sa correction sera élevé. L’utilisation de ces outils et d’un gestionnaire de code source performant (SVN et Git sont les plus répandus actuellement) permettra de détecter les anomalies mais également de revenir à une version précédente du code source si les modifications nécessaires sont trop lourdes pour être faites rapidement. Un outil de gestion des configurations va également permettre d’effectuer des livraisons avec des paramétrages différents, adaptés à l’environnement ciblé (la configuration sera différente suivant que la livraison a lieu sur un serveur de tests, d’intégration, de recette ou de production).

Pour conclure sur la méthode agile Crystal

Les méthodes agiles de la famille Crystal fournissent des outils adaptés à quasiment tous les cas de figures, que ce soit en termes de nombre de fonctionnalités, de taille d’équipe et de projet. En fonction de la taille et de la complexité du projet, on pourra choisir une méthode plutôt légère ou au contraire une méthode plus complète. Moins connues que Scrum dans les pays francophones, les méthodes Crystal méritent qu’on s’y intéresse.

Le logiciel agile Nutcache fournit tous les outils nécessaires à la gestion d’un projet à l’aide d’une méthode agile Crystal. N’hésitez pas à tester Nutcache gratuitement durant 14 jours.