Les héros du bagot

hudson_trends

Cela fait 6 ans que nous faisons des tests fonctionnels (ou d’acceptance). Tests FitNesse, GreenPepper, Concordion avec ou sans IHM (Selenium par ex). Une chose reste constante, c’est la difficulté de stabiliser ces tests. Les approches sur le sujet dans les conférences sont variées, mais l’énergie mise dans la maintenance de ces tests semble toujours importante.

Le défi est double : avoir des tests qui s’exécutent rapidement, et dont la stabilité permet de détecter de manière certaine les régressions fonctionnelles. Ce que nous constatons sur les 4 projets qui ont mis en oeuvre des tests d’acceptance, c’est que le non-déterminisme de la plupart des tests provoque des bagotements (flaky tests). Tant et si bien que nous avons donné un nom à ces défauts de déterminisme : les bagots. Le soucis avec ces bagots, c’est qu’ils empêchent de décider si un test est rouge pour une bonne raison (une régression), ou pour une mauvaise raison (typiquement une mauvaise séquence d’accès concurrents du test).

Ces tests sont « probabilistes » : lorsque l’ordonnanceur partage équitablement le temps entre les différentes unités de calculs (process, threads), le test est vert. Avec une machine lente ces tests sont plus fréquemment rouges. Une sélection inattendue de ses maigres ressources provoquerait le même comportement. Dans une équipe avec le même environnement de développement (garanti par l’utilisation d’une image en chroot), le développeur ayant la plus mauvaise machine a le plus de chance de reproduire les bagots : un événement reste trop longtemps dans un bus de données, un réplicant mongoDB « laggue » alors que nous allons y lire une valeur… le test est rouge.

Il existe une multitude de manière de reconnaître ces tests. Un fort « smell » est constituée par l’utilisation d’un sleep : nous sommes alors dans le monde du test probabiliste. Le test est rouge ? Passons l’attente de 1 à 5 secondes. Allez, 10 secondes pour être sûr. Ça ne vous dit rien ? On me dit Courage ? Non, jamais entendu parler : supprimer ces 5 lettres suivies d’un entier est souvent un « refactoring » qui aura des répercussions profondes.

Sur notre dernier projet, nous avons beaucoup de code javascript exécuté dans le navigateur. L’ergonomie en est largement améliorée, mais la gageure des tests d’acceptance est encore plus grande. Nous avons parfois passé plusieurs jours, plusieurs semaines avant de résoudre un bagot (et parfois même échoué). Alors pour les héros qui ont pris leur courage à deux mains, et ont stabilisé ces tests, nous allons vous raconter leurs histoires, des histoires de bagots.

Publié dans agilité, tests | Marqué avec | Un commentaire

Notes sur l’Agile Conférence 2014

Ça se passait les jeudi-vendredi 22 et 23 mai toujours au chalet de la porte jaune. Cette année, la conférence suivait au moins 2 fils. L’un explicite « le fil rouge », activité de médiation graphique omniprésente et l’autre en trame, avec une résonance entre la keynote de Régis Médina sur le produit lean et les sessions qui ont suivi.

L’après-XP pour du développement produit

Avis de non-responsabilité : pratiquant l’XP depuis 7 ans, en partie avec Antoine C, et travaillant avec David B, membre de l’équipe d’organisation les propos suivants sont éventuellement subjectifs ;)

Cette keynote était une bonne introduction, une synthèse construite autour de l’expérience de Régis parti de l’extreme programming pour faire du lean. Ce ne sont plus des pratiques lean (les liens ci-dessous) qui sont expliquées mais l’utilisation de ces pratiques au service d’un nouveau modèle de gestion du système de production logicielle. Le marché a changé, l’open source, les plate-formes de téléchargement (apple store, android store…), les éditeurs, mettent en compétition énormément d’acteurs. Pour sortir du lot, il faut créer un effet « whaoo!! ».
Continuer la lecture

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

Créer un chroot (part. 2) : se connecter

Dans un précédent billet, nous avons créé un linux de base. Son arborescence a maintenant besoin d’être rattachée à la machine sur laquelle elle va s’exécuter. Pour cela nous allons répliquer les pseudo-systèmes de fichier /dev /proc et /sys déjà présents sur la machine :

    • /proc contient les infos sur les processus en train de tourner
    • /sys contient des informations système sur comment créer les périphériques (numéros de séries…)
    • /dev contient les fichiers d’accès aux périphériques eux-même (recréés dynamiquement par udev à chaque redémarage à partir des infos de /sys)

Le fichier complet

Publié dans linux | Marqué avec | Un commentaire

Créer un chroot (part. 1) : un linux de base

Notre environnement standardisé va s’appuyer sur chroot. Pour l’initier, utilisons le package debootstrap :

sudo apt-get install debootstrap

Il crée des arborescences Debian ou Ubuntu. Pour voir quelles versions sont disponibles :

dpkg -L debootstrap | grep scripts/ | awk -F / '{print $NF}'
  • dpkg -L liste tous les fichiers du package
  • grep scripts/ sélectionne les scripts
  • awk -F / '{print $NF}' sélectionne leur nom

Continuer la lecture

Publié dans linux | Marqué avec | Un commentaire

Lean Agile Camp : la valeur avance masquée

reviewRadioFrancePrésent à la première rencontre du Lean Agile Camp, Barre verte! livre ses impressions sur l’atelier la voix du client. Le but est de décortiquer une application sous l’angle du livre Job to be done qui prends comme paradigme que l’utilisateur recrute une application pour faire un travail à sa place. Nous choisissons l’application Radio-France pour android car elle a des notes au dessus de la moyenne et plus de 900 commentaires.

Cette application permet d’accéder à toutes les radios du groupe. Nous décrivons la valeur que nous y voyons : Continuer la lecture

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

Ecrire un livre en 5 jours : converger vers l’objectif

Nous sommes lundi, au matin du 3e jour. Où en sommes-nous ?
Nous avons déjà pas mal de matière, mais elle reste à organiser. Nous ne savons pas vraiment où nous en sommes.

3e jour

Au flash meeting nous constatons que les parties agile et lean ne sont pas en cohérence. Cela empêche le déclic de se faire pour le lecteur. Nous pensons que ce serait mieux si le contour de chaque partie lean est faite en ayant déjà la partie agile. Nous prévoyons de travailler « en vertical » sur le pivot de chaque chapitre du livre : le passage de l’agile vers le lean.

L’objectif du jour est de terminer les parties agile, et l’aperçu des parties lean.
Continuer la lecture

Publié dans evenements, leanagile | Marqué avec | 3 commentaires

Ecrire un livre en 5 jours : définir le concept

Ce format s’appelle booksprint. Le concept est simple : il s’agit d’écrire un livre en quelques jours avec de nombreux contributeurs. La mise en oeuvre, quant à elle est beaucoup plus complexe. Il faut synchroniser le travail de chacun, partager une vision de fond, s’accorder sur un style si l’on veut une certaine homogénéité d’ensemble. Comme j’ai eu la chance de participer il y a 10 jours à une édition pour le Petit guide de management lean à l’usage des équipes agiles, je vous livre mes impressions et descriptions en « embedded« .

Vendredi soir

Nous découvrons le lieu dans lequel nous allons résider tout au long de ce stage d’écriture. Retiré, dans les champ, au vert et au calme. C’est un ancien hôtel dans lequel nous avons accès aux cuisines ainsi qu’à toutes les chambres. Parfait pour l’ambiance de travail. Il y a plein de matériel (post-it, stylos, clés USB, feutres, marqueurs…), une grosse imprimante, du réseau wifi et un répertoire DropBox.
Continuer la lecture

Publié dans evenements, leanagile | Marqué avec | 3 commentaires

Petit guide de management lean à l’usage des équipes agiles

Il est en ligne depuis mercredi !

Petit guide de management lean à l'usage des équipes agiles

Bientôt une série d’articles pour vous expliquer comment s’est déroulé notre booksprint.

Publié dans agilité, evenements, leanagile | Laisser un commentaire

Retours sur Agile Innovation Printemps 2013

Cette année, Barre Verte était aussi à l’Agile Innovation Printemps, à la recherche du soleil perdu. Gagné ! Il s’était planqué à Valence.

C’est sous la forme d’un forum ouvert que des praticiens agiles de Valence, Grenoble, Lyon, Montpellier et Paris se sont mutuellement enrichis. Vingt-cinq personnes, un nombre parfait pour nouer des liens de qualité et creuser suffisamment les sujets des participants.

J’ai apprécié

  • L’organisation irréprochable
  • La variété des profils des participants (enseignement, hors agiles, entrepreneur, développeur JS/Java, scrummaster, coachs)
  • La qualité des discussions
  • Le cadre rustique
  • La qualité du repas (ben oui)

Continuer la lecture

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

Notes sur l’agile conférence 2013

Les 23 et 24 mai, c’était la 8e édition de l’agile conférence Paris. Toujours à la bucolique porte jaune, dans le parc de Vincennes. Le site a été rénové, nous n’avons plus les peintures soporifiques vertes pâles dans les salles du chalet, et l’extérieur a pris une cure de jouvence colorée.

Le chalet de la porte Jaune

Continuer la lecture

Publié dans agilité, evenements | Marqué avec , | Un commentaire