Barre verte! au Lean IT summit 2012

Après les conférences Agile France et XP days Benelux, barre verte! sera représentée au European Lean IT summit les 22 et 23 novembre 2012. Nous montrerons comment, grâce à la magie du binômage, nous avons utilisé la démarche A3 de résolution de problème au sein d’équipes agiles pour :

  • fournir aux managers de nos Product Owner des données pour améliorer leurs décisions d’un projet à l’autre
  • corriger un problème de concurrence d’accès en production en moins de deux jours
  • tordre le cou à des croyances erronées sur nos retards

Comme la demande des participants de la précédente édition étaient de relater des expériences de terrain, nous nous autoriserons à certains moments à rentrer dans les détails du quotidien d’un développeur agile.

Publié dans agilité, evenements | Marqué avec , , | Laisser un commentaire

Formation accélérée « agile avancé » avec Alistair Cockburn

Mardi et mercredi 11 et 12 nous avons eu la chance de pouvoir participer à une formation gratuite en français chez /ut7 avec Alistair Cockburn. Voici ce que nous en avons retenu.

IMGP8127.jpg

Il y a toujours des personnes passionnées dans le mouvement agile. C’est suffisamment rare pour le souligner : des formations gratuites avec l’un des fondateur, hébergée gracieusement, ça ne court pas les rues. L’échange, le partage de moments, d’informations, de questionnements autour de ce thème continue d’intéresser, ça fait du bien.

Paradoxalement, des pionniers ont exprimé un certain spleen en observant une large adoption de l’agilité, noyée dans une soupe marketing indigeste loin de ses valeurs fondatrices. L’agilité est récupérée pour attirer des clients ou des développeurs, victime de son succès et d’absence d’alternatives devant la difficulté de réussir des projets informatiques. Pire, elle peut être utilisée de manière cynique en donnant aux équipes une autonomie de façade, moyen de les impliquer d’avantage et in fine de les faire travailler plus. Qu’elles soient prestataire ou client, ces en-général-grosses-boites  se foutent comme d’un post-it de l’objectif de l’agilité, à savoir (grosso-modo) apporter de la valeur de manière durable dans un environnement en évolution, en développant les individus.

Laurent Bossavit a une analyse intéressante s’appuyant sur les frontières ouvertes de l’agilité, entre la gestion de projet, le développement logiciel et le management. Le métier de l’agiliste et son territoire de légitimité sont mal connus, ce qui favorise les incursions d’autres professions, mais permet également de plus grandes possibilités d’adoption. Si le sujet vous intéresse voir le livre « The System of Professions » – Abbot 1988 (merci Laurent pour la référence).

La théorie

Mais revenons à la formation. La présentation d’Agile Avancée, selon Alistair, s’articule autour de cinq thèmes :

  • Artisanat
  • Gestion de flux
  • Eveil de Soi
  • Acquisition de connaissances
  • Jeu coopératif

Il nous a distribué une feuille A4 recto de modèles se rapportant à ces thèmes. Ce support est très dense et synthétise plusieurs ouvrages dont son livre « Agile Software Development: The Cooperative Game« . La suite de la formation était une confrontation de nos expériences issues des ateliers avec ces modèles. L’idée étant d’étudier les pratiques et la théorie vécues par des humains (self-awareness).

practices theory self-awareness

Un modèle du thème Gestion de flux, inspiré du lean nous a interpellé. Il considère que l’ensemble des décisions d’une organisation constitue le stock à réduire. Pour fluidifier la chaîne de valeur, il faut localiser les goulots d’étranglement provoqués par une accumulation de décisions non actées.

Design = manufacturing if Inventory = Decisions
©Alistair Cockburn

Connaître ses défauts

Nous avons commencé par un atelier en groupe de 3 dans lequel nous devions répondre à la question :

pourquoi l’agilité est-elle moins efficiente que la cascade ou le cycle en V ?

« Je ne vois pas » n’était pas une bonne réponse selon Alistair. Nous avons apprécié ce contre-pied d’entrée de jeu, cette nécessité de faire une auto-critique avant d’aller plus loin. Pour les curieux, sont sorties entre autres réponses :

  • il y a plus de réunions avec plus de monde
  • répéter c’est coûteux
  • payer des gens autonomes et compétents coûte plus cher
  • la collaboration est plus difficile que le suivi d’un processus

Savoir découper fin

Nous avons pratiqué l’exercice du carpaccio autour du thème de l’acquisition de connaissance. Il s’agit de découper de manière la plus fine possible une expression de besoin en tranches démontrables, utiles et livrables à l’utilisateur. Nous devions ensuite coder nos histoires avec des itérations de 9 minutes, démo à l’appui. La manière qu’il a eu de présenter le problème nous a mis un peu de pression (portables fermés, silence, déballage des sujets sous blister, annonce du langage choisi par les binômes), et a avivé un esprit de compétition entre les binômes. Il a ainsi pu mettre un peu en évidence nos égos, et nous faire réfléchir avec cette question faussement naïve qu’il a posée lors de débrief :

qu’est-ce que vous avez à y gagner ?

La transmission d’idées c’est compliqué

Nous avons trouvé une autre source de réflexion en faisant l’atelier Draw this drawing game :

  • Former des groupes de minimum 3 personnes
  • Créer 2 rôles par équipe : les Artistes et les Donneurs d’ordres
  • 1 des Donneurs d’ordres sera le Messager, c’est à dire qu’il apportera les instructions aux Artistes
  • Les Donneurs d’ordres spécifieront un dessin à reproduire le plus fidèlement possible par les Artistes
  • Contrainte : Les Donneurs d’ordres sont séparés des Artistes et le Messager n’a pas le droit de parler aux Artistes. La communication se fera par indication purement textuelle

Nous l’avons fait trois fois de suite avec des images de plus en plus difficile à reproduire. Entre chaque session, nous avons eu 5 minutes pour discuter sur notre mode d’organisation. Lors de la dernière session, nous avons eu le droit de nous regrouper et parler sans indications gestuelles pour dessiner une photo de takoyaki explosé.

takoyaki explosé

Ce que nous en avons retenu ;

  • la difficulté de communiquer même en face à face
  • savoir être audacieux, quitte à être à la limite des règles (comme disait Alistair « don’t be fired, don’t go to jail, anything else is possible« )

Le jeu de la corde

Petit intermède animé par Géry Derbier, nous avons fait un atelier d’animation/construction d’équipe : prenez quelques personnes (6-8), une corde fermée, demandez-leur de tenir la corde avec les 2 mains, puis de former une figure géométrique les yeux fermés et sans lâcher la corde (même avec une main) en 7 ou 8 minutes. Ex un carré à 6, un triangle équilatéral à 7. À la fin on pose la corde et on discute de ce qui s’est passé. C’est très intéressant de voir les dynamiques qui se mettent en place, les réflexions entre les participants.

IMGP8129.jpg

Cette formation de un jour et demi nous a donnée l’envie de sortir des limites qu’on s’était nous-même fixés, à l’image de l’engagement de non allégeance d’Alistair qui pousse à l’ouverture de toutes les écoles de pensées. Nous conseillons aux agilistes expérimentés cette formation qui dure 3 jours. Il conseille de la faire 3 fois afin de bien digérer le condensé théorique et d’expérimenter 3 fois les applications avec des personnes différentes.

Bruno et David

Publié dans agilité, evenements | Marqué avec , , | Laisser un commentaire

Binômer avec un clavier dvorak et un clavier azerty

Nous avons récemment succombé à la geekerie du moment : un clavier Type Matrix dvorak.

Clavier Type Matrix 2030 dvorak

Clavier Type Matrix 2030 dvorak

Sous Linux, la commande setxkbmap permet de changer le mapping de son clavier. Ainsi, pour passer en Dvorak avec la composition pour les accents (3 touches pour écrire é : compose (le Alt de droite), apostrophe, e), il faut écrire :

Après une période d’apprentissage, nous sommes assez contents, mais tout le monde n’est pas prêt ou n’a pas forcément envie de faire cet effort.

Dans un premier temps, j’ai donc mappé sur le raccourci Windows + F5 une commande de basculement dvorak/azerty. (NB: La touche Windows s’appelle Start sur mon clavier)

J’utilise LXDE comme gestionnaire de fenêtres, un mapping se rajoute ainsi dans le fichier ~/.config/openbox/lxde-rc.xml :

Le script de bascule ~/bin/switch_dv_fr est le suivant :

(notify-send permet d’afficher une notification dans Linux)

Ce n’était toujours pas satisfaisant, car il fallait taper une combinaison de touches avant de se passer le clavier. Heuereusement, avec Linux il est possible d’avoir deux claviers branchés avec deux mappings différents. Le programme xinput permet de configurer les périphériques d’entrée. Pour obtenir la liste de tous les périphériques branchés sur sa machine, il suffit de taper xinput list. Chez moi cela donne :

On constate que mon clavier Type Matrix possède l’identifiant 12 et mon autre clavier (un HID 046a:0023) le 9. Du coup, maintenant que je connais le nom de mes claviers, je peux trouver leurs identifiants et les passer à setxkbmap grâce à l’option --device. Le script final donne :

Nous pouvons désormais binômer sur mon poste avec deux claviers différents !

Publié dans geekeries, linux | Marqué avec , , , , | 2 commentaires

Retour sur le format de rétrospective dit « La randonnée »

Jeune padawan dans le coaching d’équipe, la rétrospective de Sprint est un exercice que j’appréhende souvent car son format doit pouvoir s’adapter à la situation passée.

Un Sprint passé fut en échec car deux stories sur trois ne furent pas terminées. Le format de la timeline aurait pu être utilisé pour avoir la composante temporelle et trouver les causes racines mais je souhaitais que l’équipe voit l’accumulation des problèmes rencontrés au cours de l’itération.
Il était mercredi soir, le lendemain avait lieu la rétro. Autant dire que cela commençait à sentir le roussi.

Dans le RER, je lisais l’adaptation en manga du roman « Le sommet des Dieux » (merci JP pour le prêt) – roman qui rappelle furieusement certains passages de Premier de cordée de Roger Frison Roche. Outre la beauté des paysages de montagnes retranscrits à travers le crayon de Taniguchi, le récit est également d’une fluidité exemplaire lors des scènes d’escalade. C’est après une « grimpette » qui finit mal que j’ai eu une idée sur le format de rétro : Continuer la lecture

Publié dans agilité | Marqué avec | 5 commentaires

Affichage firefox sans couleurs

VNC est un bon outil pour binômer à distance (il faut une bonne liaison réseau), mais il peut avoir des impacts assez étonnants sur le poste de travail :

  • plus de répétition des touches
  • raccourcis clavier cassés
  • exécution de commandes impromptues

Pendant un binômage VNC, sur une tâche de développement d’écran Web sous firefox (avec firebug, webdevelopper), mon affichage n’avait plus les couleurs des sites :

Après avoir cherché un moment, j’ai pu rétablir l’affichage original en faisant about:config dans la barre d’url, et puis en double cliquant sur le paramètre

browser.display.use_document_color

le passant de false à true.

Publié dans geekeries | Marqué avec , , , | Laisser un commentaire

Retour sur la QCon 2012

Un petit retour sur la QCon pour animer un peu ce blog qui ne bouge plus beaucoup ces derniers temps, pour cause de nouveaux projets pour la plupart des rédacteurs. Nous avions exploré de nouveaux domaines (TDD javascript, noSQL), qui ont donné des articles, nous implémentons maintenant ces technologies. Nous vous dirons après l’épreuve de la production si cela fonctionne vraiment.

IMGP6040.jpg

Bref, nous sommes allés à la QCon de Londres qui se déroulait entre les 7 et 9 mars. Comme lors d’un précédent retour, l’organisation est toujours aussi impeccable, le lieu agréable, et les intervenants de haut niveau. Vous nous direz, pour le tarif (environ 1200€) c’est normal.

Voici quelques orateurs remarquables :

Continuer la lecture

Publié dans agilité, architecture, evenements | Marqué avec , , | Laisser un commentaire

Retour sur les XPdays Bénélux

Un petit mot sur les xpdays bénélux auxquels nous avons participé avec JP les 1er et 2 décembre dernier.

Première chose, l’organisation, impeccable avec ces bonnes idées : tableaux de programme de la journée avec des cartes à emporter. Pochette transparente de taille A6 avec le programme et de même taille que les cartes. Le lieu est un peu perdu à 30km au nord de Bruxelles, mais c’est dans la nature, les salles sont spacieuses avec de la lumière.

Continuer la lecture

Publié dans agilité, evenements | Marqué avec | Laisser un commentaire

Une courte introduction à Haskell

J’ai entendu parler d’Haskell pour la première fois à l’université. J’entendais que c’était un langage très élégant, amusant et bien plus avancé qu’OCaml. Mais OCaml me donnait déjà bien du mal, et c’était ce dernier qui était demandé pour les examens et les projets de programmation. Je n’étais donc pas prêt à apprendre Haskell à ce moment.

Plus tard, par curiosité, j’ai regardé quelques projets écrits en Haskell. Je suis alors tombé sur xmonad, un gestionnaire de fenêtres spartiate, mais avec des idées intéressantes, comme l’agencement automatique. J’ai aussi découvert la bibliothèque Parsec, qui permet d’écrire des parseurs très simplement, et dont la lecture du code m’a convaincu que la notion de fonction était une abstraction vraiment puissante.
Continuer la lecture

Publié dans haskell | Marqué avec , , | 10 commentaires

Persistance polymorphe

Il y a quelques temps, lorsqu’un projet informatique démarrait, une question d’architecture qui se posait systématiquement, était « quelle base de données (relationnelle) utilisons-nous ? », et la subsidiaire (en langage objet), « quel mapping relationnel/objet ? ». La réponse était d’ailleurs souvent « hibernate/mysql » dans le monde java.

Le mouvement NoSQL est issu d’un besoin de stockage de données important, scalable, performant, et robuste sans avoir toutes les fonctionnalités d’une base relationnelle. Ces besoins ont été ceux de gros sites comme google, facebook, twitter, amazon, linkedin, sourceforge, github…

Si certains discours ont été excessifs au départ (comme souvent lors d’une inversion de tendance), c’est en réaction à des années de domination du monde relationnel dans le domaine de la persistance, et aux difficultés des développeurs à s’interfacer avec ces systèmes. A présent beaucoup de produits ont été développés offrant de réelles alternatives au monde des SGBDR :

Continuer la lecture

Publié dans architecture, NoSQL | 2 commentaires

Une courte introduction à Redis

Quand il s’agit de faire persister ses données, la seule option qui semble disponible est d’utiliser un SGBDR (une base de données relationnelle, telle que MySQL ou Oracle). Mais on se rend parfois compte qu’un seul outil ne peut résoudre tous les problèmes. Ainsi, si on ne dispose que de marteaux, on aura tendance à voir des clous partout.

Le mouvement NoSQL (comme Not Only SQL), nous propose des alternatives : bases clefs-valeurs, bases orientées document, bases orientées colonnes, bases orientées graphe ; Cassandra, MongoDB, Redis, Dynamo, Riak, Big Table, Voldemort sont souvent utilisés par les sites à gros trafic et à tendance « sociale » qui font le buzz : Google, Amazon, Facebook, Twitter, LinkedIn.

Aujourd’hui, nous allons explorer redis, ses principes, son API et ce qu’on peut en faire. Dans un prochain article, nous verrons une utilisation typique en écrivant un clone de twitter simple et sans prétention.
Continuer la lecture

Publié dans Bases de données, NoSQL, ruby | Marqué avec , , , | 5 commentaires