Category : Sur le terrain

Achievements : seulement pour les jeux ou pour l’Agilité aussi?

J’ai récemment découvert un ajout intéressant à Visual Studio : les achievements (réalisations). Il s’agit d’un plugiciel que l’on peut installer dans notre environnement de développement et qui permet d’obtenir des médailles (ou badges) que l’on appelle achievements.

Un jeu d’enfants, pas vraiment

Le concept est inspiré des plateformes de jeu. Dans la plupart des jeux modernes, il existe ce concept d’achievement que l’on peut débloquer en réalisant certains exploits lors de nos quêtes. Par exemple, réussir à ramasser tous les jetons d’un niveau ou réussir sans se servir de pouvoir spécial.

Continue Reading

Vous avez dit DDD, Demo Driven Design?

Être agile

Pour moi être agile c’est savoir s’adapter, éviter les mauvais coups. Un boxeur agile ne frappera pas nécessairement plus fort ou précis mais il recevra moins de coup. Un joueur de hockey agile ne comptera pas nécessairement plus de but mais il pourra se rendre plus souvent dans la zone pour le faire.

Un développeur agile n’est pas vraiment plus rapide qu’un autre, il sait juste éviter les récifs comme s’il descendait les rapides en kayak. Le développeur agile voit venir les coups et sait les éviter. Il sait même se mettre dans une situation où il sera en meilleure posture pour les éviter.

S’adapter c’est développer ses forces pour contrer les problèmes rencontrés. S’adapter c’est aussi laisser de côté ce qui ne fonctionne pas et utiliser ce qui fonctionne. La nature a évolué depuis des millions d’années comme ça. Il faut arrêter de faire ce qui ne fonctionne pas pour ne pas se faire déclasser pas les autres.

Continue Reading

Joy of Agile – On the plane!

Attached are excerpts of the internal news bulletin of an organization we started coaching in 2008. They had the courage to do things differently and are now reaping the benefits.  Being in the avionics industry, the challenges in adopting an Agile approach were immense.  But the highly capable team members and management at CMC Electronics were able to surmount those challenges and come up with new and ingenious ways to get closer and closer to the coach’s (me) one simple rule: “I want this on the plane at the end of the Sprint”

But don’t take my word for it. Read on here :

Page 1

Page 2

Cheers!

Share/Bookmark

Definir “Terminé”

Résumé
Les axes de réflexion que je considère pour construire une définition de Terminé :

  • qualité externe
  • qualité interne
  • autorisations
  • déploiement
  • exploitation

Lorsque je travaille avec une équipe à établir ou modifier notre définition de “Terminé” (le Done de Scrum), je ne leur propose pas d’exemple comme point de départ de la discussion. Par contre je leur propose les différents axes de réflexion dans lesquels nous allons identifier les points pertinents pour eux.

Pour démarrer la discussion, je propose de commencer par explorer les axes qualitatifs :

  • qualité externe
  • qualité interne

Qualité externe
Cette notion de qualité externe nous parle de notre capacité à construire le bon logiciel, celui qui rend les services souhaités, à un niveau de performance satisfaisant, à un niveau d’ergonomie qui fluidifie sa prise en main et son utilisation. C’est la qualité perçue lorsqu’on utilise le système.

Pendant cette réflexion, nous partageons alors comment nous comprenons cette idée de qualité externe et nous décidons quels types de tests nous souhaitons construire notre confiance dans notre code : des tests automatiques qui exercent le système dans son ensemble avec des données réalistes, des tests qui spécifient les conditions aux limites des services rendus, des tests de performance, des tests de sécurité, des tests de traduction, …

La question des anomalies est parfois abordée à ce moment dans la discussion. Cette discussion peut être difficile parce que chargée d’un historique peu flatteur pour les programmeurs. On distingue ici deux types d’anomalies: les anomalies que l’on découvre après la mise en production et celles que l’on connaît avant la mise en production.
Pour les premières, il s’agit de définir comment nous allons les prendre en compte, c’est à dire comment leur découverte va impacter le travail en cours. La démarche stop the line du Lean est la démarche la plus cohérente avec une approche empirique, même si elle représente des défis importants.
Pour les secondes une attitude cohérente avec ce que l’on vient de dire consiste à ne jamais déployer un système avec des anomalies connues. Cela demande souvent beaucoup de courage dans des environnements qui ont malheureusement appris à supporter des systèmes avec beaucoup d’anomalies.

Qualité interne
Cette notion de qualité interne nous parle de notre capacité à construire correctement un logiciel. Par correctement, on entend ici un logiciel que l’on peut faire évoluer durablement. Plusieurs outils aujourd’hui sont capables de construire des indicateurs qui, lorsqu’on les améliore, nous aide à construire un logiciel que l’on peut faire évoluer durablement. Par exemple le pourcentage de couverture de code par des tests unitaires et d’intégration, la compléxité cyclomatique, le taux de duplication… Certains outils, comme Sonar, vous permettent même assez simplement d’implémenter votre propre règle.

Les tests automatiques sont des indicateurs de qualité assez simples à construire car ils se basent sur une analyse statique du code, c’est à dire sur une photo du code à un instant donné. Or il se trouve que l’on a constaté que le fait d’écrire un test avant d’écrire le code de production qui le fait passer a un impact majeur très positif sur la qualité du logiciel construit. On parle ici d’un indicateur de qualité dynamique qui nous renseigne sur la manière dont le logiciel a grandit. La plupart des équipes mettent en place cette idée simplement en ayant la discipline de toujours écrire un test avant d’écrire du nouveau code.

Vient ensuite, dans l’ordre chronologique des étapes à passer pour être prêt à déployer un système en production, la question des autorisations nécessaires.

Autorisations
Certaines industries contrôlées imposent aux créateurs de logiciels de faire la preuve de certaines caractéristiques dans un format imposée par une convention. C’est le cas par exemple dans l’avionique ou la pharmacie, pour en citer deux à priori assez éloignées. D’autres normes, internes celles-ci s’imposent parfois aux équipes.

La plupart du temps, ce besoin d’autorisation déclenche la rédaction de document dans un format souvent imposée à l’équipe. Le travail récurrent d’une itération à l’autre consiste alors selon les cas à les créer ou bien à les tenir à jour.

Déploiement
Le déploiement par incréments successifs suppose que plusieurs déploiements vont être effectués pour mettre à jour un système. Dans ce contexte, il est pertinent de ne pas considérer le premier déploiement comme un cas particulier mais bien comme le déploiement d’un incrément qui part d’un état précédent vide.
Des éléments de différentes natures sont à considérer. Sans ordre d’importance, on peut citer : un moyen d’interdire l’accès au système pendant le déploiement du nouvel incrément, la modification de l’environnement, la modification des configurations réseaux, la modification de la structure de données, la migration des données, … Disposer de tests automatiques de déploiement s’avère encore une fois très utile pour être capable de déployer chaque incrément sans détruire le système déjà en place.

Exploitation
Ce qui précède concerne la préoccupation de mise à jour d’un système existant. Il faut aussi considérer les activités qui tournent autour de l’utilisation du système en place. Selon les cas il s’agit de choses aussi variées que des scripts de redémarrage, la formation des utilisateurs, la formation des équipes travaillant à la hot-line du système, …

Si le développement incrémental est nouveau pour vous et que vous avez des difficultés à établir votre définition de Terminé avant de commencer, rassurez-vous c’est normal. Explorez pendant une première discussion les différents axes de réflexion qui vous semblent sensés et établissez vos premiers indicateurs en fonction de la vision du produit. Faites une itération et pendant la revue d’itération posez vous la question: est-on prêt à déployer cet incrément en production ? Si oui, faites le. Si non, améliorez votre définition de Terminé pour la suite.

Un coach agile dans les pièces automobiles – Sprint 3

Sprint planning

L’équipe commence à être efficace durant la planification de l’itération, j’ai moins à intervenir! En tant que tel, je trouve que c’est une bonne chose. Ca me fait penser que mes interventions précédentes ont porté fruit et que l’équipe devient indépendante. Du moins pour cette cérémonie…

Backlog maintenance

L’efficacité de l’équipe se propage aux autres cérémonies. Cette séance se déroule avec très peu d’interventions de ma part. Les membres de l’équipe discutent entre eux du contenu des stories, posent des questions au PO et s’entendent généralement, en 2 tours de planning poker, sur le pointage à mettre sur une carte. On pourrait penser que s’est une équipe formée depuis longtemps et qu’ils sont tous habitué de travailler ensemble.

Il reste un point qui risque de devenir problématique, le backlog n’est pas très garni. Ce qui fait qu’il n’y a pas de stories, ou même d’epics, d’avance pour les prochaines itérations. L’engagement de l’équipe pour la prochaine itération risque d’être limité par le contenu du backlog. Il y a de la sensibilisation à faire auprès du PO. À suivre…

Sprint review

Une autre review qui va bien! Cette fois, par contre, il n’y a que le patron du PO qui est présent, l’utilisateur n’est pas là. Ca n’empêche pas à l’équipe de recueillir tous les points auxquels elle était engagée. La patron pose quelques questions et semble satisfait. C’est une review express qui se déroule rapidement, mais ca n’empêche pas que tout le monde est content du résultat.

Sprint retro

Les membres de l’équipe s’attendaient à la formule des 2 sprints précédents; identifier les points forts et les points à améliorer. Un membre me demande en blague « C’est maintenant qu’on chiale ? ». Je lui réponds avec sourire que non, ce n’est pas aujourd’hui! J’ai autre chose de prévu. J’ai constaté que les membres de l’équipe travaillent beaucoup selon leurs spécialités respectives. Je pense que ca a un impact sur le déroulement des itérations, certains membres sont un goulot au début de l’itération et d’autres vers la fin. C’est un signe! Je questionne l’équipe sur le potentiel de travail de façon multidisciplinaire. Ils semblent s’opposer à ma proposition. Je comprends par leur réaction qu’ils ne sont pas contre, c’est qu’ils ne comprennent pas la même chose que moi. Ils entendent que tous les membres de l’équipe atteignent un même niveau d’expertise dans tous les domaines et que chacun peu faire le même travail au même niveau d’efficacité et de qualité. Ouf, je comprends qu’ils s’opposent. Ce que j’entends est plutôt que chacun peut faire du travail qui relève d’une autre discipline, ceci pour s’assurer que l’itération avance bien lorsque qu’un spécialiste n’est pas disponible (avec la saison des vacances qui approchent, ca va rapidement devenir une réalité!).

L’équipe me trouve dur avec mes questions, ils suivent quand même bien l’exercice de rétro. Il faut un peu d’encouragements de ma part, mais les équipiers finissent pas adopter l’idée de travailler en paire interdisciplinaire pour mieux partager la connaissance. On verra à la prochaine rétro comment ils ont apprécié l’expérience.

Un coach agile dans les pièces automobiles – Sprint 2

 

Sprint planning

J’apprends que le patron du PO a vraiment apprécié de participer à la review de la semaine dernière. Il veut être invité encore à la fin du sprint présent. C’est une bonne nouvelle!

Pour débuter, j’explique à l’équipe qu’à la dernière itération ils ont réussi à réaliser 4 points de story. En principe, ils devraient aussi être capable de réaliser 4 points à cette itération. À la review de l’itération 1, une story a été refusée par le PO. Je me souviens qu’ils étaient convaincus qu’il ne restait que peu de temps à faire pour la compléter. Alors, l’équipe pourrait s’engager à faire 6 points. Aahhhh! Soulagement collectif. Ils n’avaient pas bien compris qu’ils pouvaient s’engager à plus. L’équipe regarde le backlog, est confiante et s’engage à réaliser 10 points. J’aime ça les équipes optimistes!!

Backlog maintenance

Avant de débuter la séance, nous avons une petite discussion à propos d’une situation « particulière ». Le patron du PO ne peut pas être présent pour la review et demande à l’équipe de faire la présentation à un autre moment pour qu’il puisse y assister. Après discussion au sein de l’équipe, les membres proposent d’échanger les séances de planning et de review. Ai-je bien compris ? L’équipe veut s’engager sur le prochain sprint sans connaître le résultat du sprint actuel ? Il semble que j’avais bien compris… L’équipe justifie qu’elle se sent en confiance de réussir l’engagement et qu’il n’y aura pas de problème. Même si l’équipe ne réussi pas, les membres considèrent l’impact mineur. J’ai fait part de mes réserves, l’équipe connait les conséquences potentielles. Je leur laisse maintenant la décision.

Le backlog n’est pas très garni, ça a comme conséquence que peu d’items sont estimés. Nous avons prévu deux séances de backlog maintenance pour cette itération, pour permettre au PO de rédiger d’autres stories. Pour la séance de ce matin, l’équipe a réussi à estimer 4 stories. Ça ne semble pas beaucoup, mais les discussions entourant les stories étaient intéressantes. Elles ont permis de faire diviser une story en deux, afin de réduire la complexité, de clarifier des éléments et faire ressortir des points que le PO doit éclaircir pour la prochaine séance.

Sprint review

Comme au sprint 1, des intervenants ont assisté à la review. Il y a 3 stories à présenter et le résultat d’un spike. Le PO a pris contrôle du clavier dès le début de la séance. Première story à démontrer; le PO commence à faire le tour des écrans pour valider l’information transmises. Il ressort tranquillement qu’il n’est pas prêt pour la review, il cherche un peu quelles données utiliser et où sont certaines informations. Je prends note que je devrai un peu mieux accompagner le PO pour qu’il se prépare pour la review. Les membres de l’équipe semblent aussi l’avoir remarqué. Je ne serai pas seul à en parler au PO…

Sprint retro

Pour cette deuxième rétro je préfère rester au niveau des processus. Alors je garde une formule assez traditionnelle de faire ressortir les points forts et points à améliorer. J’oriente par contre la discussion autour des cérémonies de Scrum; planning, backlog maintenance, review, retro et le déroulement général des itérations. Des bons points ressortent sur les différentes cérémonies. À l’opposé, l’équipe trouve que la mêlée quotidienne est inefficace; les membres de l’équipe communiquent beaucoup et se synchronisent près du tableau de tâches à chaque matin avant l’heure de la mêlée, alors ils ont le sentiment de se répéter. Pourtant, à quelques reprises durant la mêlée quotidienne, d’après la réaction de certains autres membres face à la réponse à « Qu’as-tu accompli hier? », j’ai senti que de l’information nouvelle circulait dans le mêlée. Elle n’est peut-être pas efficace, mais elle semble utile!

Un coach agile dans les pièces automobiles – Sprint 1 review

Il y a un auditoire pour le premier sprint review, le patron du PO et un utilisateur expert sont présents. C’est encourageant!

Au début du sprint, l’équipe s’était engagée à livrer 3 stories, il y a 3 stories a démontrer. Bon départ! Un membre de l’équipe se prépare à démontrer le contenu de la première story. Je me permet d’intervenir et suggère que le PO prenne plutôt le clavier pour expérimenter lui-même le système et qu’il tente d’accomplir ses vérifications des stories (les conditions d’acceptation). Il vérifie la première story. Ca va bien! Les intervenants présents posent des questions. Il y a interaction entre les personnes présentes et ca sent l’intérêt envers la story livrée. Le PO navigue dans le système et confirme que le comportement est bon. Story acceptée. On passe à la deuxième story. Il y a autant de discussions dans la salle. On se rend compte qu’une règle n’est pas complètement respectée. Le PO hésite un peu, mais refuse la story. L’équipe est mécontente. « Ce n’est qu’un petit bug, on en a pour 30 secondes à le corriger, on pourrait quand même avoir 1.8 points (sur les 2 points que valait la story) ». Je fais mon méchant et je dis non; la story est refusée alors l’équipe n’obtient pas les points associés à cette story. L’équipe n’est pas contente! Je vais expliquer le principe plus tard, maintenant on termine le sprint review. Pour la dernière story, ca se déroule bien, les discussions continuent et le PO accepte la troisième story. L’équipe a réussi à livrer 4 des 6 points engagés. Ils gardent un mauvais goût de s’être vu refusé une story pour si peu. De mon côté je me dis que c’est l’apprentissage qui débute!

Le lycée collaboratif existe, depuis 1982

Aujourd’hui, un reportage surprenant sur le Lycée expérimental de Saint-Nazaire diffusé sur France 2. Ce lycée expérimental créé en 1982 est un établissement scolaire public cogéré par les professeurs et les élèves : élèves et professeurs partagent droits et devoirs. Des équipes d’élèves se relaient tous les 15 jours et assurent ainsi tout le fonctionnement de l’établissement. Hum… des équipes (de jeunes de 20 à 25 ans environ) sont changées et la gestion fonctionne en continu… on sait faire ça dans nos métiers?

Des élèves en difficulté scolaire peuvent y trouver leur compte et réussir ici (obtenir leur diplôme BAC) ce qu’ils échouent dans une structure traditionnelle. Des élèves témoignent qu’ils sont confrontés à des expériences inédites : travail en équipe, collaboration avec des adultes, tout cela leur donnent une grande confiance en eux. Ici, ils ont le droit de l’ouvrir, s’exprimer… ailleurs on leur disait seulement d’écouter et de travailler. Dans cet établissement, la sanction n’a plus lieu et l’autorité a été remplacé par la responsabilisation. Son taux d’obtention au BAC est le plus bas de France (50%) et s’explique par le fait qu’il y a dans cet établissement une plus grande proportion de jeunes en situation de difficultés scolaire.

Éducation, éducation… quels sont tes critères de succès?

Vers une Administration Agile?


Hier matin, j’ai entendu le médiateur de la république française qui parlait de son rapport publié aujourd’hui, dans une émission de radio nationale sur le service public.

Voici un commentaire de ce rapport sur les Echos:
Déficits d’information, réponses aléatoires, sentiment d’arbitraire : dans son dernier rapport publié hier, le médiateur de la République, Jean-Paul Delevoye, ne ménage pas ses critiques vis-à-vis de l’administration. A l’heure de la RGPP (révision générale des politiques publiques) et de la modernisation des services publics, il semble que les effets positifs pour les usagers tardent à se concrétiser. Jean-Paul Delevoye a notamment insisté, hier, sur le manque d’attention porté aux réclamations des usagers : « Ce n’est pas une question de moyens, mais plutôt de culture. La gestion des réclamations est cruciale pour améliorer la qualité de service. Ce qu’ont très bien compris les entreprises privées, mais pas encore l’administration. »

D’après les propos que j’ai entendu, le médiateur de la république a reçu cette année 65 000 courriers des citoyens français. 65% concernent des demandes d’information, des réponses erronées ou contradictoires données par les administrations. Il s’interroge “Pourquoi de nos jours, à l’ère de l’information, c’est si difficile pour le citoyen de connaître ses droits?”. D’après lui, plus que jamais, les citoyens ont besoin de réponses, ont droit à l’information!

La journaliste de l’émission lui demande

“Et les fonctionnaires? Peuvent-ils être plus performants?”

Sa réponse est à peu près la suivante:

“Les employés de l’état sont les autres victimes du système en place; les lois sont trop compliquées, il n’y a pas assez de délégation, de droit à l’erreur; on ne fait pas appel à l’intelligence et au bon sens des agents, mais plutôt à leur capacité à suivre des procédures trop lourdes; il y règne la culture de la faute, et non pas celle de l’erreur; le législateur doit simplifier les textes. Ce qui compte c’est la qualité du service, la satisfaction des utilisateurs, et cela passe par changer la culture en place.”

Hum… voudrait-il faire du refactoring des lois existantes? Voudrait-il rendre le système moins hiérarchique? Laisser plus d’autonomie aux employés? Voudrait-il rendre “lean” notre administration? Houla… J’avoue que ce genre de discours, ça me fait du bien, même si ce n’est pas pour demain ;-)