eric.lemerdy

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 13 mai 2009

Présentation du Lean Software Developement

Je vais parler aux XP Day !

XP Day bag 1 (c'est le sac de l'année dernière)
1 2 3
  1. Ne pas négliger la théorie
  2. S'entraîner en s'écoutant pour se corriger
  3. Prendre des forces (5 fruits et légumes par jour, c'est un objectif dur à atteindre !)
La théorie permet d'être à l'aise avec les fondements de ce que l'on vit sur nos projets.
En s'écoutant, on apprend à se placer du côté de l'auditoire. Je cherche à me poser les questions en tant que public de la présentation : quels sont mes attentes et serais-je déçu si j'y assistais ? Mais la voix n'est pas le vecteur primordial pour faire passer l'information. L'attitude, le ton, la présence comptent aussi beaucoup.
Il est aussi important d'avoir une idée claire des messages que l'on souhaite faire passer. Ensuite, le mieux est de trouver une histoire à raconter pour faire passer le tout de façon agréable. Ce qui me plaît dans une présentation, ce sont les accroches, et lorsque les exemples résonnent dans mon expérience actuelle et passée. J'utilise donc des cartes pour répéter sur lesquelles j'inscris le message important du slide et les accroches et les transitions dans une autre couleur.
Tentons de faire tout ça pour le 26 mai !

jeudi 12 février 2009

Productivité: faire son Hansei

"Je trouve que je passe trop de temps au travail."

Cette phrase exprime un ressenti sur une situation dangereuse.
Que faire pour améliorer cet état ? Et en premier lieu quel est cet état ?!?
Le bon sens cartésien veut que l'on ne puisse mesurer une amélioration que de ce que l'on peut préalablement quantifier.
Partant de ce constat, j'ai décidé de tenter une petite expérience cette semaine: mesurer mon temps de travail.

Ne disposant pas d'un outil aussi interactif que Talia (Pyxis en parle), je me suis monté un google document tableur pour reporter mon activité: Effective working time
(Les valeurs sont en décimales d'heures)
Tous les jours, je remplis le nombre d'heures de travail

  • total de la journée (hors pause déjeuner)
  • de 'dev' on peut traduire par travail productif (slides, docs, etc.)
  • de 'support', les questions des utilisateurs, le support aux autres développeurs
  • de 'other', web surfing, checkage de mail clientèle, pro et perso, lecture de docs et... autre quoi
Le reste est calculé tout seul par différence. C'est ce qui n'est pas comptabilisé (pause toilettes (!), oubli du chrono, etc.).

Le chrono, justement, pièce maîtresse dans mon expérimentation. Je suis infidèle à la philosophie agile ou lean du 'physical communication'. Et non, je n'ai pas trois chronos qui trônent sur mon bureau. A la place, c'est un 'google gadget' sur mon bureau virtuel qui compte le temps qui passe. C'est le bien-nommé : Task List and Timer Timer task_and_timer.png

Bilan après une semaine:

  • L'interface du timer n'est pas très jolie. Encore un développeur qui essaye de faire une interface... Pourquoi diable a-t-il voulu créer sa propre scrollbar ? En regardant comment est fait un google gadget, j'ai compris mais au moins, il aurait pu prendre un style d'ascenseur plus joli.
  • A l'usage, c'est assez lourd de déclencher les chronos au changement d'activité. Un déclenchement à la voix serait sympa, ou alors une IA qui infère l'activité en fonction des logiciels en action sur le poste... C'est possible mais pas dispo. sur google gadget...
  • Ce qui n'apparaît pas justement est le nombre de "changements de contexte" qui est une cause classique de perte de productivité.
  • La tentation de l'isolation est donc importante pour augmenter facilement la productivité
  • L'irrégularité de la journée de travail dénote un emploi du temps assez torturé cette semaine...
  • Prise de conscience sur la répartition réelle des activités quotidiennes
  • Le côté motivant : voir la courbe de l'activité productive qui monte est assez stimulant.
  • Qu'est-ce-qui est fait pendant la journée de travail qui pourrait être éliminé sans conséquences ?

Je pense prolonger encore un peu le monitoring pour tirer d'autres leçons de ces données puis recommencer le mois prochain. Je n'ai pas encore terminé mon "Hansei" (auto-critique, réflexion).
En tous cas, j'encourage quiconque souffrant du temps qui passe trop vite de mener à son tour ce genre d'expérience adapté à son contexte. En effet, le lean nous apprend qu'il n'y a pas de métrique magique qui va illuminer tout seul les gains de productivité à faire. Par la suite, pourquoi ne pas partager les retours en "Hansei Kai" (réunion d'auto-critique) ?
(Ces termes japonnais sont issus de la pensée lean [ppt])

jeudi 29 janvier 2009

Paris Java Camp 3

Je compte participer à ce BarCamp. Il y a 22 inscrits pour l'instant. Je suis le 23ème. Je pense qu'il faut tenter le samedi au moins une fois pour voir ce que ça donne. En semaine, il m'est déjà arrivé d'être un peu fatigué le soir.

Agrandir le plan
Au plaisir de vous voir samedi prochain.

vendredi 23 janvier 2009

Valtech Go Ski

this week-end !valtechGoSki.gif

vendredi 19 décembre 2008

Wifi rabbit notifier plugin for Hudson

The

Everybody wants a BuildBunny

I rediscover yesterday Larinou, my electronic wifi buddy bunny, a brilliant representative of its Nabaztag species.
I decided to create an Hudson plugin to let my bunny alert me of my builds. I have already seen equivalent plugin for Teamcity for exemple. The Hudson plugin architecture is elegant, maven facilitates rapid immersion in the source code, provides an out-of-the-box debugging environment with Jetty and the "HelloWorld" template is brilliant to start. It was pretty pleased to implement.

A quick overview of the plugin

You will see the Nabaztag Notifier as a post build notifier:
nabaztag-hudson-configure.png
You should then set the serial number of your bunny buddy and the associated token (not as a password in this preliminary version of the plugin).

The Hudson system configuration offers a new section related to the plugin:
nabaztag-hudson-system.png
This place you can configure the main API URL (in case it changes from the settings I use in France and you can set a custom voice for your bunny.

The result is that your bunny now alerts you about any build result. The position of the ears vary in respect with the buidl result. The rabbit will seam sad if a build is broken... Even if the API provides the way to light the rabbit with Hudson "build colors" (red/yellow/blue), my rabbit nevers turns on. By the way, the plugin is implemented in case Violet decide to let us pilot the colors.
nabaztag-hudson-exec.png

One drawback is that the communication between the Hudson build machine and your wifi rabbit is not direct (there is a reverse engineering open-source project to achieve this goal). The communication is intermediated by Violet, your rabbit great creator.

Please find the first version of the plugin below (I will propose it to be a part of the main plug-in list on dev.java.net or I will put source on sourceforge later):
nabaztag.hpi

An overview of the rabbit messages

Project free-style-job gets better ! Here is the status : back to normal
Project free-style-job gets better ! Here is the status : stable
Edit: Seams like the idea was in the air: Stephan developed the same plug-in, the same day. He invokes the "white rabbit" effect. But which plug-in is the One ? ;-) The first to be committed of course !

lundi 15 décembre 2008

Recherche dans les "mailing list"

Le service markmail.org permet de faire une recherche dans les mailing-lists des projets open source. L'interface est particulièrement utile pour repérer les messages au cours du temps. C'est un critère assez important quand on s'intéresse à l'obsolescence des frameworks et des projets.
Sur l'exemple ci-dessous, la requête choisie est: stubless web service.
stublessDynamicWebServiceInvocation.png
Les rémanences des messages en 2008 montrent que le sujet n'est toujours pas clos aujourd'hui. L'intérêt de cette vue temporelle permet de voir quand le besoin était très fort. Ici, c'est entre 2002 et 2003. On peut donc parcourir les messages de l'époque pour savoir quel framework avait le mieux répondu au besoin. En l'occurence, il s'agit des promesses (déçues) du framework Apache WSIF (Web Servies Invocation Framework) qui s'est avéré ne pas gérer le typage complexe des paramètres des web services, ce qui est une (bonne) pratique tout de même assez répandue dès lors que l'ont veut exploiter ses web-services pour faire plus que du simple RPC.
Le service fête ses 1 an ce mois-ci. Espérons qu'il survive encore de nombreuses années !

dimanche 12 octobre 2008

Un tour à l'exposition des 100 ans d'industrie aérospatiale française

  • Eurocopter (civil)
  • Stand Thales (avec des bonbons): simulation et satellites de Thales Alenia Space
  • Session de simulateur de vol ATR sur un simulateur de vol certifié FAA (X-plane). Sans doute après avoir répondu à la question toute la semaine, l'instructeur précise à plusieurs reprises que Flight Simulator n'est pas un simulateur de vol mais un simulateur de navigation. Dans ce genre de simulateur grand public, il n'y a pas de simulation physique poussée des paramètres. Pour le démontrer, il affiche en direct les vecteurs de force représentant la portance de l'avion.
  • Avions de chasse réels avec armement Thales
  • Le très violent Tigre d'Eurocopter
  • Le tout nouveau radar de Thales, le Ground Master 400: un radar mis à jour par internet...
  • On finit en douceur avec un drone avec une propulsion à hélice en bois. Normal, la durée de vie d'un drone sur le champ de bataille: 3 mois seulement.
Jouant sur la fibre patriotique des visiteurs, l'exposition permet de réaliser un tour d'horizon des produits phares de grandes entreprises impliquées dans l'industrie de la défense et de l'aéronautique. On sent leur volonté de présenter sous leur meilleur jour au public les activités de leurs groupes. Un immense pavillon était dédié au recrutement. Leurs besoins sont en croissance.
En tant que visiteur du dimanche, j'ai particulièrement apprécié la séance de simulation d'ATR et les bonbons Thales, l'écran géant avec des images du lancement Ariane 5 était un beau défi technique avec un gros contre jour et une qualité d'image impeccable grâce à des matrices de led tricolores comme notre bon vieux tube cathodique.

slider flash parAlsacréations. Dewslider

dimanche 29 juin 2008

Bilan du SI de notre asso d'anciens

Que pensez-vous des discours mettant en avant la débrouillardise et les talents de bricolage des réalisateurs de SI? Cela amène l'industrie à admirer les héros de l'artisanat et des heures supplémentaires... Que répondre alors à la question ouverte: "Comment bâtir un système d'information industrialisé qui réponde aux besoins de ses utilisateurs en minimisant la composition anarchique de développements spécifiques ?". Cela passe sans doute par une plate-forme standard, robuste, ouverte et extensible, bref, le Graal du Système d'Information.
Je vais prendre de cas du système que nous avons mis en place avec des collègue>s étudiants pour construire le système d'information de notre association d'anciens du Master GLR.

L'Amglr, une association de gestion d'anciens étudiants.

Créée en 1987 pour promouvoir le DESS IF (Informatique Fondamentale), l'association s'appelait alors ADESIF (Association des Diplômés d'Etudes Supérieures d'Informatique Fondamentale). L'existant pour nous en 2005 était donc un listing d'anciens adhérents qui allait constituer notre base initiale d'adhérents. Après avoir pris la décision de remonter l'association, le besoin d'un système d'information s'est fait naturellement sentir à la fois pour la gérer et pour fournir les services aux étudiants.

Des besoins...

  • Une Association loi 901: des adhérents, des statuts "classiques", un bureau pour animer tout ça et une trésorerie : un système d'information dont les données métier sont centrées sur les adhérents (attention à la loi sur les fichiers de personnes physiques, déclaration à la CNIL conseillée), pas de comptabilité compliquée dans notre cas.
  • Des anciens étudiants: but d'insertion professionnelle, maintient de relations, évolutions de carrière, mise en relation de personnes : réseau social.
Les besoins tournent donc autour de ces concepts:
amglr_needs.png

...et des contraintes

Contraintes du SI
coût global gratuit si possible (sauf nom de domaine)
licence les licences libres ont plus de chance d'être gratuites...
serveur linux, php, MySql (hébergement amical par un membre du bureau)
coût de main d'oeuvregratuit (bénévolat des membres du bureau)
type de système distribué et accès web (ou en tous cas très ouvert)
sécurité assez forte pour ne pas dévoiler les informations personnelles des membres

Cartographie actuelle de la solution

amglr-archi.png
  • Utilisation de produits:

    Le choix du CMS s'est porté sur le produit phpbb couplé à un "mod" Gf-portal permettant de définir en plus du forum, une arborescence de pages statiques ou dynamiques. La qualité des produits phpbb est parfois inégale. Cependant, nous n'avons pas rencontré de problèmes notables en utilisant ce couplage.

    Par la suite, un planet a été installé pour fédérer les blogs des adhérents volontaires.

  • Personnalisations du produit:

    Style: Par installation et modification d'un thème additionnel.

    Contenu statique: Autant de temps que de rédiger des pages HTML standard, l'intégration dans le portail demandant un temps négligeable.

  • Développements spécifiques:

    Contenu dynamique: La fiche adhérent a été un peu laborieuse (php basique), la géo localisation fut l'occasion pour l'auteur de cette partie de reprendre un code qu'il avait déjà écrit pour un autre site. Tandis que l'annuaire en ligne est l'intégration au portail de l'export XML de la base adhérent mise en forme avec un template XSLT.

    Génération dynamique de l'annuaire: Un "wizard" est mis à la disposition du bureau par Java Web Start pour générer l'annuaire pdf complet. Les technos sous-jacentes sont: Swing, FOP (donc XML et XSL-FO) et XSLT. Pourquoi un choix si atypique dans cette architecture full php/MySql? Pour des raisons de compétences (ça n'arrive pas en entreprise, on aurait loué a ressource compétente ;-) ) et Java Web Start car java n'était pas installé côté serveur.

    Outils fournis par l'hébergeur: une adresse mail pour le bureau (avec antispam), des statistiques (WebDruid)

Retrospective

"What went well?""What did not go so well?"
  • Couverture fonctionnelle assez étendue
  • Taux d'utilisation des services par les adhérents
  • Continuité de service (grâce à notre hébergeur)
  • Coût (grâce à notre hébergeur)
  • Hétérogénéité des technologies
  • Multiplication des produits installés, peut rendre la maintenance difficile
  • Un SI sur internet génère beaucoup de SPAMs (mail et ouvertures de compte...) contre lesquels il faut apprendre à se défendre.
  • Une fois que le système est en place, changer les choses devient plus compliqué : inertie du système...
  • Séparation des données entre le référentiel d'adhérent (données métier) et les comptes forum (dans l'applicatif): cela aboutit à une fiche adhérent pour éditer les données métier et un profil pour le forum...
Le meilleur jugement sera celui de nos successeurs car ce sont eux qui vont assurer la suite, je suis finalement curieux de voir les bonnes idées qui nous ont échappé. Il faut peut-être chercher à utiliser une plate-forme de service en ligne de communautés de type web2.0. Ce business model est déjà déployé par certains sites comme ning par exemple. De plus, je constate un certain éloignement du bureau actuel par rapport à la dernières promotions qui n'utilise presque pas les services. C'est réellement le moment de changer pour conserver cette proximité nécessaire entre les animateurs de l'association et les promotions courantes.
En tous cas, ce fut pour moi un bon moyen de me rendre compte de la difficulté de fédérer des gens sur un si petit dénominateur commun (une année de Master pro.). C'est une expérience qui m'a donné confiance. En prenant les choses en mains avec des collègues, nous avons été capables d'aller plus loin qu'on aurait pu l'imaginer au départ. On se surprend alors du temps qu'on peut passer sur le sujet. Ca a permis de mieux me connaître et de comprendre ma relation au travail. J'ai alors compris que j'avais une forte capacité de travail aussi longtemps que la motivation de l'atteinte de d'objectif était présente (Génération Y?). J'ai aussi pris conscience de la valorisation mais aussi du risque associé à la charge d'une responsabilité.

Quels objectifs pour l'avenir?

A l'heure où la tendance du recrutement (en apparence du moins) cherche moins les profils "formatés" des écoles que les expériences personnelles des candidats, la valorisation des filières de Masters Pro. passe sans doute par une meilleure visibilité de la formation au niveau national voire international. Un réseau d'anciens à la fac peut être cet outil qui démarque un Master pour son attraction des étudiants entrant ainsi que pour la qualité des débouchés professionnels. Cette période très favorable aux candidats sur le marché actuel ne permet pas de tester la facilitation de l'insertion professionnelle mais l'ADESIF a déjà montré par le passé son efficacité pour l'insertion professionnelle.

mercredi 28 mai 2008

My brother is back

I am very pleased to announce my twin's first post since 2006 ! Visit now his blog : sebastian.lemerdy.free.fr !

jeudi 15 mai 2008

ParisJUG - Productivité, Maven

productivité des développements

Productivité des développements Java

On pourrait résumer la session de Guillaume Duquesnay ainsi : la productivité des développement Java, ou comment adopter des pratiques qualité sans prononcer ce mot qui fait peur.
Une démonstration des tâches avilissantes et peu créatrices de valeur auxquelles s'est plié chaque développeur dans sa carrière au moins une fois a été exécutée par l'orateur. Il a expliqué que pas à pas, on peut améliorer la productivité de tous les membres de l'équipe. Simplement en étant à l'écoute des souffrances et des plaintes, on détecte les failles du processus de développement à corriger.
En effet, la productivité ne devrait pas être vue comme un mot taboo, mais devrait pouvoir remplacer dans la vision des managers le centre de coût que représente la qualité en une source de valeur. Là où le mot productivité dans l'industrie classique est associé à l'augmentation des cadences de travail, pour le développeur, cela rend son travail quotidien moins laborieux et plus agréable.
Du point de vue pérénité de la démarche, les procédures de qualité sont les premières pratiques à être abandonnées lorsque les contraintes projet se tendent. On peut penser au contraire que les pratiques visant a améliorer la productivité sont adoptées pour de bon.
pragmatic.jpg

Clés du succès

  • pas de religion : ne pas croire aux miracles : la solution universelle n'existe pas. Au contraire, les solutions d'amélioration de productivité doivent être adaptées au niveau de maturité de l'équipe.
  • pas de révolution : un changement progressif à petits pas est le garant de l'adoption des pratiques.
  • pas de procrastination : les tâches d'amélioration de la productivité ne doivent pas être remises à plus tard, l'expérience montre qu'on perd plus de temps à continuer une pratique improductive que de passer le temps qu'il faut à la résoudre.
J'ai retrouvé dans cette présentation une mise en pratique de nombreux conseils lus dans le livre : The Pragmatic Programmer: From Journeyman to Master. Paru il y a un peu moins de 10 ans déjà, la démarche décrite reste d'actualité et est en accord avec le discours de Guillaume.

maven à la demande

Une scéance de réponses aux questions préalablement posées par les inscrits à Arnaud Héritier.
Ce qui m'a particulièrement étonné dans l'intervention d'Arnaud fut la coloration très "commerciale" du discours. On pouvait entendre notamment les termes : Concurrence, challenge, rester sur ses acquis, niveau de service ergonomique. On a plus l'habitude d'entendre ça de la part de commerciaux ! Le cliché du développeur open-source s'est envolé immédiatement.
Il a aussi évoqué les problèmes relationnels au sein du projet. J'ai toujours supposé qu'il pouvait y avoir des tensions au sein d'une communauté Open-source. Avec maven, on est servit : un chef despotique et intransigeant (Jason van Zyl), des sociétés rivales qui se créent... Arnaud lui-même a parlé de projet à la Dallas ; ne mentionnons pas le terme "jasonification des équipes" qui m'a fait bien sourire.
filthyrichclients.jpg Il a rappelé que l'influence des entreprises est vraiment non négligeable. En effet, comment rivaliser contre des personnes qui travaillent 8h rémunérées sur le projet là où les développeurs bénévoles donnent deux heures de minuit à 2h pas très frais (attention, cliché ;-) ). Ce fut l'objet de ma question (qui m'a vallu le livre Filthy Rich Clients offert par ParisJUG et dédicacé par Chet Haase) sur ce qu'apportait au niveau personnel à Arnaud sa participation à ce projet. Pour lui, le moteur premier est la récompense d'avoir trouvé une solution satisfaisante au problème du build.
Côté infos, j'étais venu pour me renseigner sur un support du build des plug-in eclipse par Maven. Arnaud nous a renvoyé vers l'expert maison Carlos Sanchez qui a exposé ses slides durant 2h sur le sujet à la dernière eclipsecon.
Je résumerai également la rivalité des deux projets qui entrent en concurrence pour devenir le plugin de référence apportant (enfin) le support de maven dans eclipse. Notez qu'IBM a toujours mis des bâtons dans les roues à maven pour s'intégrer (à la différence d'IntelliJ ou NetBeans dans lesquels maven est très bien supporté). Ils utilisaient ant et ne voyaient pas de raisons d'en changer.
Q4em2eclipse
+ support WTP+ support WTP
pas JasonJason
+ ergonomie- peu intégré
+ support eclipse 3.3 (sous modules maven = sous projets eclipse)+ support de Nexus (indexation artefacts)
La course est féroce entre les deux projets qui sont au coude à coude. Impossible pour l'instant de les départager... Comme toujours dans ce cas là, les essayer et juger par soi même.

Une session très intéressante, encore un succès pour ParisJUG.

- page 1 de 5