Crystal est une famille de méthodologies de développement logiciel avec un code génétique partagé qui inclut une livraison fréquente, une communication personnelle et une amélioration par la réflexion. Chaque type de projet a sa propre méthodologie Crystal. Cet article explorera Crystal Clear comme un concept pour les petites équipes (jusqu’à 8 personnes). C’est une bonne alternative à la programmation extrême, avec quelques aspects partagés.
Histoire de la Famille Crystal
En 1991, Alistair Cockburn, l’un des co-auteurs du Manifeste Agile, a pour objectif de créer une méthodologie de développement logiciel efficace. Il a enquêté sur de nombreuses équipes de projet et a étudié leurs cas de développement.
La recherché a jeté les bases des principes clés de Crystal Clear en tant que concept de développement logiciel efficace :
- Les méthodologies axées sur les personnes sont plus bénéfiques que celles axées sur les processus.
- La méthodologie doit être adaptée au projet et à l’équipe individuels — il n’existe pas de méthodologie universelle de développement d’application.
En 1994, il a mis en œuvre ces idées en tant que consultant principal sur un projet à coût fixe de 15 millions de dollars avec une équipe de 45 personnes appelée “Orange.” Les principes développés par Alistair sont devenus la pierre angulaire du succès du projet. Il a documenté cette expérience dans son livre “Surviving Object-Oriented Projects” (1997) et un an plus tard a développé la famille de méthodologies Crystal.

Auteur heureux de la famille de méthodologies Crystal, co-auteur du Manifeste Agile Alistair Cockburn
En 2004, Cockburn a identifié trois méthodes principales du concept :
- Livraison rapide de code utile : Passer de déploiements de code lourds et peu fréquents à des versions plus petites et plus fréquentes.
- Amélioration par la réflexion : Recueillir des informations sur ce qui a bien ou mal fonctionné dans la version précédente du logiciel pour améliorer la prochaine version.
- Communication osmotique : Cockburn a décrit la perception et l’échange d’informations entre les développeurs travaillant dans la même pièce comme un bruit de fond, similaire à l’osmose.
Cette même année, Cockburn a publié “Crystal Clear: A Human-Powered Methodology for Small Teams”. D’autres contributions au développement de CC ont été apportées par l’administrateur système Marcel Wagemann, qui a rédigé un essai sur l’utilisation des principes Crystal Clear, Agile et Scrum dans le développement logiciel.
Qu’est-ce que la Méthodologie Crystal ?
Crystal est une famille de méthodologies basée sur ces trois méthodes.
Il n’existe pas de méthodologie Crystal Clear “meilleure” unique ; chaque modification convient à différents types de projets. L’organisation ou le projet crée cette modification en fonction du “code génétique” de Crystal (règles de base d’utilisation).
La classification la plus simple de Crystal est par le nombre de personnes dans le projet :
- Clear : 2 à 8 personnes travaillant ensemble dans un ou des bureaux adjacents
- Yellow : 10 à 20 personnes
- Orange : 20 à 50 personnes
- Red : 50 à 100 personnes
Le code génétique de Crystal Clear consiste en :
- Modèle de jeu économiquement coopératif : Cockburn considère le développement logiciel comme une série de “jeux” composés d’invention et de communication, contraints par les ressources. Chaque jeu a deux objectifs : livrer le logiciel dans ce jeu et se préparer au prochain jeu de la série. Chaque nouveau projet nécessite de nouvelles stratégies.
- Priorités choisies : Communes à toutes les méthodologies Crystal, deux priorités sont : safety et développement efficace.
- Caractéristiques choisies : Celles-ci renforcent la priorité de sécurité. Trois sont fondamentales (livraison de code rapide et fréquente, communication personnelle, amélioration par la réflexion), tandis que les quatre autres sont supplémentaires : sécurité personnelle, focus, accès facile aux experts, et un environnement technique de qualité avec tests automatisés.
- Principes choisis : Un continue la direction clé de la personnalisation de la méthodologie :
Le niveau de détail dans les exigences logicielle, les documents de conception et la planification dépend des spécificités du projet, y compris le degré d’interaction personnelle entre les membres de l’équipe et les dommages qui peuvent être causés par des erreurs non détectées.
Processus Cyclic de Crystal Clear
La plupart des projets avec Crystal Clear se composent de six cycles, définissant les responsabilités et les tâches de l’équipe de projet :
- Cycle de projet : Bien que le projet lui-même soit une unité de produit, il est généralement suivi d’un autre projet répétant le cycle. Le cycle de projet est composé de trois parties : préparation (assemblage de l’équipe, recherché à 360°, détermination de la méthodologie), une série de deux cycles ou plus de livraison, et un “rituel de complétion”. Durée : de quelques jours à plusieurs semaines.
- Cycle de livraison : Implique la recalibration du plan de sortie du logiciel, une série d’une ou plusieurs itérations aboutissant à un code intégré testé, livraison à de réels utilisateurs, et un “rituel de complétion”. Durée : 1 semaine à 3 mois.
- Itération : Composée de trois parties principales : planification de l’itération, activités du cycle quotidien et d’intégration, et le “rituel de complétion” du projet.
- Semaine/jour de travail : Le choix du jour ou de la semaine comme unité de temps du cycle dépend du format et de l’équipe du projet. Des exemples incluent des réunions hebdomadaires de département, des rapports de chef d’équipe, et des séminaires “brown-bag” (discussions autour d’un déjeuner sur les problèmes de projet).
- Période d’intégration : Développement, intégration et tests système. Certaines équipes effectuent des tests de build continu avec une machine dédiée, tandis que d’autres intègrent quotidiennement ou trois fois par semaine. Plus le cycle d’intégration est court, mieux c’est. Durée : 30 minutes à 3 jours (selon l’expérience de l’équipe).
- Développement : Rédaction et vérification d’une partie du code. C’est le travail principal d’un programmeur dans le développement agile. Un membre de l’équipe prend une petite tâche, programme une solution (idéalement avec test), et vérifie cela en configuration avec l’ensemble du système. Durée : 15 minutes à plusieurs jours.
Stratégies et Techniques de Crystal Clear
“Crystal Clear” pur n’exige aucune stratégie et technique spécifique. Cependant, nous avons préparé un ensemble de méthodes initiales pour aider l’équipe à travailler efficacement à chaque cycle de CC.Les Stratégies Clés Incluent :
- Recherché à 360° : Au début du projet, l’équipe doit comprendre à quel point le produit est utile et significatif et s’il peut être créé avec les ressources et technologies disponibles. Le projet est examiné dans des domaines tels que valeur commerciale, exigences, technologies nécessaires, plan de projet, composition de l’équipe, et méthodologies choisies. La mise en œuvre prend quelques jours à 1 – 2 semaines.
- Victoire Précoce : Une victoire unit l’équipe et renforce la confiance de chaque membre. Dans le développement d’application, la stratégie de victoire précoce consiste à trouver le premier morceau de code fonctionnel, souvent un petit élément de fonctionnalité utile du système. Cette petite victoire aide les membres de l’équipe à apprendre les styles de travail des autres, les utilisateurs obtiennent une idée précoce du système, et les sponsors voient les capacités de l’équipe.
- Changement d’Architecture Incrémental : L’architecture du système devrait évoluer à mesure que les besoins technologiques et commerciaux changent au fil du temps. La stratégie répond à cela en permettant à l’équipe de modifier progressivement l’architecture sans perturber la fonctionnalité globale du système. La même stratégie peut être appliquée à des changements fonctionnels dans le système final.
- Radiateurs d’Information : Affichages placés là où les gens peuvent les voir en travaillant ou en se reposant. Ils montrent des informations nécessaires sans avoir besoin de poser de questions supplémentaires, incarnant la règle de Crystal Clear “plus de communication, moins d’interruptions”.
Le radiateur d’information doit être grand, facilement accessible, simple à utiliser et à lire, et contenir des informations à jour. Des exemples incluent des tableaux Scrum et Kanban et un glossaire de travail interprétant la terminologie du projet.

Techniques Populaires Incluent :
- Formation de la Méthodologie : La personnalisation de Crystal Clear se fait en deux étapes : entretiens de projet (création d’une mini-bibliothèque d’expérience organisationnelle soulignant les points forts et faibles du projet) et un atelier de formation de méthodologie (analyse de l’expérience pour améliorer les forces et compenser les faiblesses). Les informations de la première étape sont utilisées dans la seconde.
- Atelier de Réflexion : Périodiquement, l’équipe devrait prendre une pause d’une heure pour réaliser un “atelier de réflexion,” discutant de ce qui fonctionne bien ou mal, ce qui nécessite une amélioration, et ce qui peut être fait différemment dans les prochaines étapes du projet.
- Planification Blitz : Permet aux sponsors, utilisateurs et développeurs de créer ensemble une feuille de route projet avec des contraintes de temps.
- Réunions Quotidiennes : Réunions courtes pour déterminer l’état, les progrès et les problèmes du projet. Ces réunions né sont pas destinées à la discussion, seulement à l’identification des problèmes. Les résultats sont enregistrés dans un gestionnaire de tâches en ligne ou sur un tableau Kanban physique.
- Programmation en Paires : Dans ce processus, deux personnes travaillent sur une tâche de programmation sur un seul appareil. La programmation en paire est souvent critiquée pour éliminer les approches individuelles des tâches et nécessiter des relations interpersonnelles de haute qualité au sein de l’équipe projet. Une technique alternative, “diapositive par diapositive,” implique deux personnes assises assez proches pour voir les écrans des autres mais travaillant sur des tâches différentes sur des postes de travail séparés. Cela correspond au concept d’ ”interaction osmotique.”
Lectures Recommandées sur Crystal Clear
Malheureusement, il y a très peu de littérature sur Crystal Clear, et aucun ouvrage spécialisé en ukrainien jusqu’en 2017.Ressources clés pour étudier Crystal Clear comprennent :
- “Crystal Clear: A Human-Powered Methodology for Small Teams” par Alistair Cockburn : Le livre essentiel pour comprendre la méthodologie de son créateur. Il contient de nombreuses études de cas, exemples et mini-guides sur la mise en œuvre des éléments individuels de Clear dans une organisation.
- “Pair Programming Illuminated” par Laurie Williams : Une analyse détaillée de l’une des techniques de Crystal Clear, la programmation en paire. Le livre fournit des conseils pratiques sur l’utilisation de PP dans le développement logiciel.
- “Développement Logiciel Agile : Le Jeu Coopératif” par Alistair Cockburn : Explique le concept du développement logiciel comme un “jeu coopératif d’invention et de communication.” Cockburn développe des idées de Crystal Clear dans ce livre, qu’il formalise ensuite dans “Crystal Clear: A Human-Powered Methodology for Small Teams.”
- Le site officiel du créateur de Crystal Clear : Bien que ce né soit pas un livre, il offre une richesse d’informations, y compris des interviews, des diagrammes, des billets de blog et des discussions sur la méthodologie. Le seul inconvénient est le design peu accueillant du site.
Verdict
De nombreuses méthodologies dites “meilleures” sont rejetées par les équipes de projet parce qu’elles sont trop complexes, intrusives et lourdes.