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.