La construction Agile, un mix d'extreme manufacturing, de scrum et d'architecture orientée objet

La construction Agile, un mix d'extreme manufacturing, de scrum et d'architecture orientée objet

L’eXtreme Manufacturing (XM) , une méthode agile pour la construction

L’eXtreme Manufacturing (ou XM) est une méthode agile inventée et développée par Joe Justice et Marcin Jakubowski pour conception d’objets. Le nom XM fait référence à celui de l’ "XP" ou la méthode de l’extreme programming. Il trouve sa source au carrefour de l'approche Agile, de l'ingénierie et du knowledge management.

L'application du XM nécessite de changer notre façon de concevoir. Cette méthode nous permettrait de concevoir des objets qui soient plus proches des attentes des utilisateurs. Et également de réduire le temps nécessaire pour disposer d’un prototype et d’une version opérationnelle.

Découvrez les mécanismes de l’Agilité dans la construction et comment ils peuvent vous aider dans votre travail. Découvrez les bénéfices apportés par la construction Agile dans la rapidité de conception et comment elle permet de développer des projets plus proches des attentes des utilisateurs.

Les 3 principes de l’eXtreme Manufacturing (XM)

La fabrication agile s’inspire de trois méthodes: l’eXtreme Programming, le Scrum et l’object oriented architecture. Combiner ces trois principes forme l’eXtreme Manufacturing. Examinons ces 3 composants de la construction Agile.

la systématisation du travail par pairs est une des techniques de l'eXtrem programming/manufacturing
la systématisation du travail par pairs est une des techniques de l'eXtrem programming/manufacturing

L’eXtreme Programming (XP), pour la manière de travailler

L’EXtreme Programming est une méthode agile axée sur l'efficacité et la rapidité d'exécution de l'équipe de conception. Elle s’appuie sur différentes stratégies : la responsabilisation de l'équipe dans son ensemble, et le fait de s’appuyer sur des tests automatiques. Ils permettent de progresser rapidement dans la conceptions tout en tenant compte de la qualité .

La programmation par paire

La programmation en binôme est une pratique pendant laquelle deux développeurs travaillent ensemble sur la même tâche. Ce principe peut s’appliquer pour de nombreuses tâches telles que le codage, la conception d’une pièce de matériel, la conception d’un bâtiment,….

L’avantage de travailler à deux est d’abord de permettre un contrôle continu de la qualité du travail. Les deux membres de l'équipe ont des rôles distincts. L'un commence à travailler sur l'ordinateur, tandis que l'autre regarde avec plus de distance et aide son binôme. Ensuite, ils échangent leurs rôles.

C'est également une bonne occasion pour partager leurs connaissances et échanger sur leurs pratiques. Cela réduit la boucle de rétroaction, puisque l’on peut connaître certains éléments du projet que l'autre aurait découverts trop tard sinon.

Habituellement, deux collègues se contrôlent une fois par semaine, mais ils peuvent également effectuer un contrôle continu. À la fin, c’est un excellent moyen d’améliorer la motivation et de conserver l’attention des différents membres de l’équipe sur le projet.

Le fourmillement

Le fourmillement permet de résoudre les problèmes les plus importants et les plus difficiles rencontrés au cours du projet. La solution consiste à les résoudre ensemble et en collaborant, exactement de la même manière que les fourmis. Lorsqu'un problème est simple, elles travaillent de manière autonome, mais elles s'unissent pour surmonter les obstacles les plus difficiles. En extreme programming, la réponse est similaire: l’équipe s’unit pour débloquer les principaux problèmes.

Nous pourrions faire un graphique avec la difficulté des tâches en abscisse et leur importance en ordonnée. Plus la tâche est difficile et plus il est important que toute l’équipe travaille ensemble. Au contraire, moins cela est difficile et important, plus chaque membre de l'équipe peut travailler de manière indépendante.

Ainsi, si l'équipe est confrontée à un problème complexe, tous les membres doivent unir leurs efforts jusqu'à ce qu'ils résolvent le problème ou jusqu'à ce qu'ils le réduisent en des tâches plus simples.

Le développement guidé par tests

Avant de commencer à développer le projet, il est nécessaire de définir comment l’évaluer. Vous devez d’abord déterminer comment le tester et quelles performances sont attendues.

Le projet peut alors être amélioré pour devenir plus simple et plus efficace jusqu'à ce qu'il passe les tests automatiques. Le test garantit également que toute modification de la conception n'aura pas d'incidence sur les performances précédentes et qu'elles seront atteintes à n'importe quelle étape de l'objectif d'itération.

Processus itératif pour la conception de la voiture Wikispeed
Processus itératif pour la conception de la voiture Wikispeed

Le Scrum, pour l’organisation

Le Scrum est une méthode agile qui favorise les itérations et l’attention portée aux besoins de l’utilisateur. Un des points majeurs de cette méthode du Scrum est celui l'organisation de l'équipe.

Au sein de l'équipe, il n'y a plus de hiérarchie ni de travail en silos. Le Scrum prévoit une répartition spécifique des rôles, et également certaines cérémonies précises. L’équipe doit être multidisciplinaire et tout le monde travaille ensemble sur la même phase du projet. Les échanges et la communication sont très importants, de même que la visibilité du travail effectué par les autres membres de l'équipe.

Le travail est organisé en sprints successifs. Les sprints s’organisent autour de plusieurs cérémonies qui visent à améliorer le travail d’équipe. On retrouve d’abord le sprint planning en début de chaque sprint qui est une réunion de tous les acteurs pour organiser le sprint à venir.

Le stand up meeting a lieu chaque jour à heure fixe. L’équipe de conception fait une rapide réunion (la position debout aide à ce qu’elle ne s’éternise pas) de quelques minutes pour définir les objectifs du jour et communiquer autour des difficultés rencontrées.

Et à la fin de chaque sprint une rétrospective a lieu pour que l’équipe fasse le point sur ce qui a fonctionné ou non. L’objectif de cette réunion est de faire le point spécifiquement sur la méthode afin de l’améliorer pour le sprint suivant et faire progresser l’équipe.

En résumé, utiliser la méthode Scrum dans des projets Agiles signifie que vous:

Travaillez en courtes itérations appelées sprint
Utilisez les cérémonies du Scrum comme les stand-up meeting, la planification du sprint, la rétrospective
Dites au revoir au travail en silo et travaillez en Ă©quipes multidisciplinaires

Une conception orientée objet implique de divisier la chose à concevoir en modules indépendants reliés par des interfaces claires
Une conception orientée objet implique de diviser le projet en modules indépendants reliés par des interfaces claires

L’achitecture orientée objet pour la modularité

L’eXtreme Manufacturing s'appuie sur l’object oriented archtecture pour permettre des itérations régulières entre équipes indépendantes. Cela permet l'interopérabilité entre les différentes parties du projet.

L'un des problèmes actuels de la conception est que les objets sont conçus de manière trop monolithique dans leur ensemble. Souvent, vous ne pouvez pas modifier une pièce sans avoir à modifier le projet dans son entièreté.

Pour permettre la modification d'une pièce sans impacter l'ensemble de l'objet, il est nécessaire de penser le projet de manière modulaire. Plus l'objet est complexe, plus il doit être subdivisé en modules, pouvant être travaillés indépendamment. Cette division est l'un des piliers de l’ XM car elle facilite les itérations.

Les composants pouvant être conçus indépendamment, il est nécessaire de définir des interfaces claires entre chaque module. Les interfaces définissent les connexions entre les pièces. Elles sont idéalement définis dès le début du projet. Elles sont conçues lorsque les différents modules constituant l'objet complet sont définis. Disposant d'interfaces claires entre les modules, ils peuvent être assemblés indépendamment de leur évolution respective et même s'ils sont développés par des équipes agiles différentes.

Enfin,cette méthode encourage l'utilisation d'un module le plus efficiente possible. En effet, si l'objet est simple, vous pouvez travailler avec des cycles plus courts et réaliser plusieurs prototypes en une semaine. S’il est plus complexe au contraire, les cycles de sprints seront beaucoup plus longs et les problèmes de connexion apparaîtront rapidement. Cela ne signifie pas bien sûr que le produit ne peut pas être complexe.

Pour résumer l’object oriented architecture dans la conception Agile, il faut:

Diviser un projet complexe en parties plus petites appelées module
Définir une connexion claire entre les modules appelée interface
Favoriser l'utilisation d'une conception de module la plus efficiente
Travailler éventuellement avec des équipes agiles indépendantes en parallèle sur chaque module

Synthèse des trois approches

L’eXtreme Manufacturing est une approche visant à utiliser des méthodes agiles dans la construction. Il permet de concevoir un produit matériel plus adapté aux utilisateurs dans un temps beaucoup plus rapide. Il combine et adapte 3 méthodes et principes: eXtreme Programming, Scrum et une architecture orientée objet.

La méthode XM propose de travailler en cycles courts, appelés sprint, pour obtenir à chaque fois un produit fonctionnel qui est testé puis amélioré lors des itérations suivantes. Pour faciliter ce processus, le projet est divisé en plusieurs composants indépendants. L'organisation du travail de l'équipe est transversale et vise à faciliter les échanges et la visibilité.

Il reste encore beaucoup de professionnels à convaincre et éduquer pour qu’ils changent d’approche. Cependant, il est important qu’ils sachent que les temps de conception sont réduits grâce à l’utilisation des méthodes agiles dans la construction. Cette économie de temps permet des économies de moyens et compense les dépenses dues aux itérations successives. Le second point important est que cette méthode permet de construire des projets qui sont plus proches des attentes des utilisateurs.