La Tribune

La conception logicielle appliquée au monde physique

Image Crédit Creative Commons : Stanjourdan
Image Crédit Creative Commons : Stanjourdan
Fabien Eychenne  |   -  2050  mots
Depuis une quinzaine d'années, la majorité des développements de logiciels s'appuie sur des méthodes dites "agiles". Sous cette bannière se regroupe plusieurs méthodes basées sur un développement itératif et incrémental, dans lequel la recherche de solutions aux problèmes rencontrés s'appuient sur la collaboration de pair à pair. Elle promeut des réponses rapides et flexibles, une planification des tâches adaptatives dans des laps de temps très courts permettant une très grande réactivité. L'objectif central est de trouver de meilleur moyen de développer des logiciels. Cet ensemble de méthodes a fait ses preuves dans le domaine du logiciel libre et pourrait pour certains, demain, s'appliquer aux méthodes de travail de la production de biens, de connaissances, dans les entreprises, les administrations, les associations, etc.

Le 4 octobre 2012, à l'Ecole nationale de création industrielle (Ensci), Joe Justice donnait une conférence et un atelier sur ce thème (voir la vidéo de son intervention). Sous ce nom digne d'un super héros, l'intervenant spécialiste de ces méthodes, a livré une expérience très inspirante d'un projet collectif de réalisation d'un véhicule (ici une voiture) en partant de zéro, le projet Wikispeed.

L'agilité ou la rentabilité ?

L'objectif de Wikispeed est de construire une voiture rapide, consommant peu (2,5 L/km) et répondant à toutes les normes de sécurité. L'industrie automobile fait assez peu évoluer les véhicules qu'elle propose. Joe Justice évoquait l'exemple d'une voiture hybride de Honda (dont le modèle ne semble pas exister en Europe) dont la consommation a très peu évolué en 6 ans. Celle-ci a gagné 0,3 litres aux 100 kilomètres, passant de 4,6 à 4,3 l. La carrosserie du véhicule n'a également que peu évolué et ceci pour une raison simple : les automobiles étant produites en série, chaque partie de la carrosserie va être produite par une presse spécifique. La presse d'une porte coûte 10 millions de dollars, il faut plusieurs années pour la rentabiliser.

Dans une démarche agile, les différents modules d'un logiciel sont "incrémentés" en permanence pour les optimiser, en modifier les comportements, développer de nouvelles fonctionnalités, répondre à des besoins, etc. et ceci aussi bien dans une phase amont, lors de la conception que lorsque le logiciel ou service est en production. Un service comme Gmail de Google, a longtemps été proposé en version "beta". Si les principales fonctionnalités avaient été implantées lors de son lancement, celles-ci ont été raffinées lors de mise à jour, Google ajoutant des fonctionnalités grâce aux usages observés, au retours utilisateurs, etc. Lorsque la porte du véhicule est conceptualisée et produite, si un ingénieur travaille sur de meilleurs plans, une meilleure qualité, un autre processus de fabrication, ces innovations ne seront implantés que lorsque la presse aura été rentabilisée. Une démarche assez commune dans l'industrie classique, qui ne facilite pas la souplesse.

Le développement d'un nouveau projet dans l'industrie, dans le logiciel, etc. passe par un cycle classique : besoin, design, implémentation, vérification, maintenance. Or, estime Joe Justice, les nouveaux produits sont plutôt imaginés en rassemblant les fonctionnalités désirées par les utilisateurs. Ils sont basés sur ce que les clients souhaitaient avoir il y a 10 ans, plus que ce qu'ils attendent pour demain...

Les techniques de conception agile

Cette méthode de travail était également employée dans l'industrie du logiciel, mais c'est en train de changer souligne Joe Justice. La boucle précédente est toujours suivie mais celle-ci est reprise tous les 7 jours. Wikispeed s'appuie sur cette méthode pour développer son véhicule : le développement du véhicule sera incrémental, en reprenant le cycle de production tous les 7 jours.

Pour se faire, le véhicule est "découpé" en 8 parties modulaires et indépendantes. Chaque équipe va travailler sur une partie tous les 7 jours. Pour reprendre le vocabulaire du développement logiciel et en particulier de la programmation orientée objet, Joe Justice parle de "object oriented engineering" (ingénierie orientée objet).

Pour conceptualiser, développer et produire le véhicule, l'équipe de Wikispeed s'est appuyée sur la méthode de "fabrication extrême" (extreme manufacturing) , qui consiste à gérer des projets "physiques" comme s'ils étaient des logiciels. Sous ce terme nous allons retrouver plusieurs méthodes dans lesquelles Wikispeed est allé puiser certaines spécificités :

  • Le "lean" : Il s'agit d'utiliser le moins de choses possible lorsque cela est faisable. Par exemple dans un véhicule classique, il existe un ordinateur pour contrôler les airbags, un pour gérer le niveau d'essence disponible et en informer son conducteur, un pour analyser l'air entrant et sur certains véhicule et pulvériser un déodorant... Ces ordinateurs ne sont pas conçus par les constructeurs mais par des prestataires et ne sont généralement pas compatibles entre eux ni entre marques. A chaque modification, les ordinateurs de bord doivent être changés. Wikispeed c'est appuyé sur des Arduinos, une plateforme électronique matérielle libre, open source et très économique (20 euros) afin de tester et programmer toutes les composantes logicielles du véhicule quand il en coûte quelques 3000 dollars pour intégrer la plupart des ordinateurs de bords classiques d'une voiture d'aujourd'hui.

  • Agile pour réduire le coût des itérations et des changements.

  • SCRUM : Cette méthode découpe les tâches en un ensemble de sous tâches pour les traiter sous forme de "sprints". Les sprints peuvent durer entre quelques heures et un mois (avec une préférence pour deux semaines). Chaque sprint commence par une estimation suivie d'une planification opérationnelle. Le sprint se termine par une démonstration de ce qui a été achevé, et contribue à augmenter la valeur d'affaires du produit. Avant de démarrer un nouveau sprint, l'équipe réalise une rétrospective : elle analyse ce qui s'est passé durant le précédent sprint, afin de s'améliorer pour le prochain. La méthode SCRUM formalisée en 2003 est aujourd'hui appliquée dans les 10 premières entreprises cotés à Wallstreet.

  • XP (extreme programming) : Toutes les équipes travaillent en binômes pour favoriser la collaboration et capitaliser les compétences. L'objectif est de former les nouveaux membres du projet par "l'apprentissage en faisant" avec un mentor. De plus, tous les membres de l'équipe doivent être capables d'avoir des compétences sur tous les postes afin de mobiliser toute l'équipe lorsqu'un problème est rencontré, on parle de "swarming"

Ces méthodes permettent d'avoir très rapidement un premier prototype, celui-ci est présenté toutes les semaines au "client" afin d'avoir ses retours, lui présenter des scénarios d'évolution, etc. D'ailleurs tout le travail est synthétisé par des tableaux Kanban afin d'être toujours accessible et compréhensible par tous. Tout le workflow est représenté par des post-its dans un tableau en 5 colonnes : une colonne avec l'ensemble des tâches à réaliser, une "à faire", "en cours", "fait". Lorsque le post-il arrive dans la colonne "Fait" la tache passe un protocole de test réalisé par un autre membre de l'équipe qui vérifie que celle-ci est bien validée. Pour Joe Justice, cette méthode permet de considérablement accélérer le workflow.

Mais on ne surveille pas que le processus de fabrication et de conception. Pour Joe Justice le moral de l'équipe est un des points central de la conception. Toutes les études montrent que lorsque le moral est bon la productivité est soutenue. Garder un moral élevé fait parti des objectifs du projet : les membres de l'équipe sont traités comme des clients, ils doivent être satisfaits. Les feedbacks, ces moments de discussion qui reviennent sur ce qui a été accompli, permettent de régler rapidement les problèmes et ainsi souder l'équipe.

Un prototype fonctionnel en 3 mois

Avec ces méthodes, le projet est géré sans planning préalable. Il est intégralement développé en "développement piloté par des tests". Lorsque les tests sont satisfaisants, c'est que la tache est terminée. En trois mois, le prototype de Wikispeed a effectué et réussi son premier crash test (nécessaire pour acquérir une licence afin de rouler sur les routes Américaines). L'avantage d'avoir un premier prototype fonctionnel rapidement est de pouvoir collecter des données lors de conduite sur route et pouvoir réaliser des feedbacks fréquents. Une produit fonctionnel est aussi efficace pour la recherche de partenaires, investisseurs et futurs clients. Cette voiture a concouru aux X-prize et a fini dixième sur 136 compétiteurs dont la majorité disposait de budget à plusieurs millions de dollars face à un budget de quelques dizaines de milliers de dollars.

La voiture finale a été produite en 3 ans avant d'être commercialisée. Elle reste très simple, le "châssis roulant" (le véhicule sans sa carrosserie) a pu être assemblé en 3 heures lors d'un salon public par une équipe de 20 personnes prise dans le public et accompagnée en binôme par Wikispeed.

Les plans, fichiers 3D, documentation du premier véhicule de Wikispeed, le SGT01 ont été publié dans une licence libre accessible à tous.

Aujourd'hui, le projet Wikispeed, ce n'est pas une équipe qui travaille sur une voiture, mais 150 équipes reparties dans 18 pays avec chacune ses spécificités. L'équipe Néo Zélandaise travaille sur un camion, la Barcelonaise sur des vélos électriques et de petites voitures. Toutes utilisent les méthodes agiles et l'internet pour partager, échanger et s'entraider. Leur système d'information n'est pas très compliqué, tous les outils utilisés sont ou libres ou gratuits. Une majorité d'outils proviennent des grands acteurs du Web2.0 : Google docs, Dropbox, Youtube, Scrumy, Linoit, Skype, etc.

Vers un management radical ?

Dans la suite de sa présentation et pour argumenter son propos Joe Justice s'est appuyé sur l'étude du cabinet Deloitte "The Big Shift" de 2011 qui analyse les forces structurelles à l'oeuvre dans le domaine économique. D'un coté la performance technologique augmente de façon exponentielle tout comme les machines à prototypage rapide de plus en plus performantes et de plus en plus accessibles, de l'autre la rentabilité économique est en baisse constante. Joe Justice résumait ce phénomène en "nous avons des outils de production du 21e siècle mais des méthodes de management des années 60?"

Chez Wikispeed c'est le contraire, les outils de production sont le plus simples possibles, peu chers, mais utilisent des méthodes de management radicale. Joe Justice parle même de Radical transparence. Par exemple, ils disposent d'une fraiseuse à commande numérique achetée d'occasion à 1500 dollars pour usiner de la mousse sur laquelle, ils vont ensuite coller de la fibre de carbone ceci permet de prototyper rapidement et à faible coût une carrosserie. Chez les fabricants d'automobiles le prototype de carrosserie sera usinée sur une machine a commande numérique à plusieurs millions de dollars et en aluminium. Dans les ateliers de Wikispeed on retrouve les outils de base des Fab Labs, du matériel informatique recyclé, des plates-formes de prototypage électronique de type Arduino ou Raspberry Pi, etc.

Suite a plusieurs présentations publiques, Joe Justice a été invité à intervenir chez John Deer pour évoquer justement ces nouvelles formes d'innovation. La méthode de "fabrication extrême" y a été mise en place sur le tracteur LifeTrac dont les plans et la documentation sont publiées en licence libre. En quelques mois le premier prototype fonctionnel de ce tracteur a été créé, alors que les ingénieurs de John Deer mettaient une année pour sortir un premier prototype d'un nouveau tracteur. Suite à cette présentation, un groupe de travail s'appuyant sur les méthodes agiles a été mis en place pour développer une nouvelle gamme de tracteur chez John Deer, le Wikideer. Joe Justice évoquait également que Boeing aujourd'hui s'intéresse aussi ce type de méthode... Un projet similaire à Wikispeed existe également pour construire demain de petits avions en open source. Ces méthodes ont également été employées chez un fabricant de radio, en 3 semaines, un nouveau prototype était produit alors que généralement chaque nouveau prototype avait un temps de maturation d'au moins une année.

Ce qui est intéressant ici, c'est que derrière les outils qui paraîtront à tout capitaine d'industrie comme étant parfaitement amateurs, le Do it Yourself s'intéresse également aux méthodes de conception. Il ne s'agit pas seulement de faire de la conception autrement, mais bien de transformer la conception et la production même des produits. Le but n'est pas tant d'aller plus vite que de faire mieux, de faire en sorte que le processus de production soit aussi stimulant que possible. Force est de reconnaître que la démonstration faite par Joe Justice était particulièrement inspirante. Et que concevoir autrement est indéniablement une méthode pour aboutir à de nouvelles conceptions.

Réagir

Commentaires

Asimon  a écrit le 17/01/2013 à 12:50 :

Conclusion : i) l'automobile telle qu'on la connaît, c'est bien sympa, mais c'est un beau gâchis.
ii) si on démarre from scratch, il vaut mieux éviter Microsoft pour le système d'information de l'entreprise.
Et surtout : iii) l'ingéniosité humaine n'a aucune limite, et on n'a encore rien vu.

xavier-marc  a écrit le 28/12/2012 à 7:03 :

On a juste réinventé la taylorisation en version logicielle, ce qu'on appelle la méthode objet, la taylorisation elle-même empruntée des militaires, c'est ce qu'on appelle aussi la sous-traitance en finance et commerce, avec le sous-traitant qui va lui-même sous-traiter, on nous dit ainsi par exemple qu'un produit est européen mais au final si on additionne tous les sous-traitants finaux on arrive à un produit à au moins 90% non européen.
En fait, vous vous leurrez complètement, cette méthode demande une énorme et longue planification au début( elle n'est pas donc si rapide car un problème de conception et un temps de folie est perdu quand on le découvre trop tard, peu de gens sont réellement bons là dedans), faite donc par très peu de gens, mais ensuite, quand on passe à la phase active là les programmeurs doivent bosser comme des dingues parce que finalement tout ceci, c'est uniquement pour compenser le salaire horaire en augmentant la productivité par la réduction du temps individuelle de compréhension et de réflexion du codeur.
A mon avis dans moins de 10 ans, il ne restera que les équipes de planification en occident et toute l'équipe de codage sera délocalisée en Asie.
A terme, on fera sans doute comme dans le monde de l'intelligence artificielle, c'est à dire créer une bibliothèque universelle de code en version objet dans laquelle chacun y piquera ses besoins, à ce moment là les équipes de codages seront fortement réduites.
Et puis, au final, il n'y aura quasiment plus de planification, une intelligence artificielle développera le produit directement pour le client.

PochiYeh  a écrit le 09/11/2012 à 9:59 :

Mon dieu que de poncifs sur les méthodes agiles.... Dans la réalité cela ne se passe pas comme ça; ici on considère que la transmission d'un élément d'un membre vers un autre est transparente en terme de temps et d?énergie: c'est le noeud d?achoppement principal dans la conception logicielle c'est ce qui coute le plus cher est de faire comprendre à quelqu'un ce qui a été fait et pourquoi contrairement à l'industrie automobile où passer un élément à un autre personne ne coute rien. De plus c'est compter sur le fait que la technologie est connue et maitrisée ce qui n'est pas le cas la plupart du temps dans l'industrie logicielle contrairement à l'industrie automobile (encore une fois). De plus le concept du scrum (et autre lean) ne prend pas en compte le problème fondamental de l'interaction entre différentes équipes ( et oui il n'y a a ce jour aucun exemple réussi de scrum of scrum...). le scrum marche pour des petits projets avec une techno parfaitement maitrisée pour le reste c'est de la mauvaise science fiction!!!

cdg  a écrit le 26/10/2012 à 12:27 :

intéressant concept mais ca ne resoud pas le probleme majeur: etant donné que les machines pour la prod coutent une fortune, on peut pas les changer souvent et elles sont hyper specialisees: autrement dit, impossible de lui faire faire autre chose que ce pourquoi elle a ete faite
donc sur une prod en serie massive comme l automobile, on a toujours un probleme. pour des volumes nettement plus faible (avion tracteur ...) c est un autre pb

petite faute  a écrit le 23/10/2012 à 12:05 :

dans la partie 'lean' : ''s'est appuyé'' et non ''c''

sunny  a écrit le 23/10/2012 à 4:11 :

S'inquiéter de savoir où acheter Casquettes beaute en ligne? The Shopping igogo en ligne présente différents types de casquettes.We actualisation faire des affaires en gros ou au commerce de détail. Basé sur des tissus de qualité, d'excellents détails de l'artisanat et du style élégant, chaque robe a été faite afin d'améliorer et de flatter votre silhouette et vous pouvez concevoir le meilleur Casquettes que vous aimez. De sorte que vous pouvez sentir fantastique sur votre jour important.<strong><a href="http://www.igogo.fr">keyword</a></strong>

enfaitpouquoi  a répondu le 03/02/2013 à 10:50:

Un contrexemple de l'efficacité d'un logiciel agile??? ce commentaire vient sans d'un traducteur automatique basé lui-même sur les nombreux retours d'expériences et autres enrichissements suggérés des lecteurs /rédacteurs...

igogo  a écrit le 23/10/2012 à 4:08 :

S'inquiéter de savoir où acheter Casquettes beaute en ligne? The Shopping igogo en ligne présente différents types de casquettes.We actualisation faire des affaires en gros ou au commerce de détail. Basé sur des tissus de qualité, d'excellents détails de l'artisanat et du style élégant, chaque robe a été faite afin d'améliorer et de flatter votre silhouette et vous pouvez concevoir le meilleur Casquettes que vous aimez. De sorte que vous pouvez sentir fantastique sur votre jour important.[b][url=http://www.igogo.fr]tisa snapback[/url][/b]
<strong><a href="http://www.igogo.fr">tisa snapback</a></strong>