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
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
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 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.