J’étais mardi soir au 3ème Agile Playground organisé par l’A-Cube. Le principe est simple : partager les valeurs de l’agilité grâce aux jeux. Les jeux ont une puissance insoupçonnée pour communiquer, échanger et faire partager des points de vue différents. Plusieurs activités peuvent être réalisées au cours d’une session : jouer à un jeu connu, découvrir un nouveau jeu ou bien même créer un jeu !

Nous étions une petite dizaine de participants et nous avons commencé la soirée par jouer. C’était mon premier playground et j’ai donc découvert le delegation poker. Le but du jeu est de faire prendre conscience aux participants du niveau de délégation dont doit faire preuve un manager et quel niveau de responsabilité peut accepter une équipe de travail auto-organisée que l’on retrouve dans beaucoup de méthodes agiles.
Pour cela, chaque joueur dispose de 7 cartes représentant chacune un niveau de délégation, de 1 (chef décidant seul sans consulter l’équipe) à 7 (équipe décidant seule sans présence du manager). L’animateur du jeu énonce un cas (ex: en tant que manager, je décide seul du recrutement d’un nouvel équipier) et chaque participant retourne la carte qui lui semble la plus appropriée.
S’en suit un échange pour connaître les avis de chacun et la raison de leur choix, puis un deuxième tour de jeu (comme au planning poker) pour voir si les avis peuvent converger.
J’ai bien aimé ce jeu qui permet selon les profils des participants (manager, responsable équipe, développeur, etc) de mettre en évidence les différences de jugement et surtout d’échanger autour de ces différences pour que chacun puisse relativiser un peu. Il me semble tout à fait approprié pour désamorcer les tensions qui peuvent apparaître dans un projet.

Après le delegation poker, place à la créativité. Nous avons essayé de créer un jeu en rapport avec des difficultés que l’on peut rencontrer dans notre quotidien professionnel. Un tour de table de chaque participant a permis de lister les idées de chacun et un vote a permis de choisir lequel serait le thème du jeu.
Puis brainstorming autour du thème pour trouver un support (dessin, cartes, organisation des personnes dans l’espace, …) et les règles. Je n’en dirais pas plus, rendez-vous au prochain agile playground en juillet pour découvrir peut-être ce jeu dans sa version finalisée !

J’ai passé une super soirée avec des personnes très sympas. Merci à l’A-Cube pour l’organisation de ces soirées et aux participants pour leur bonne humeur !

Vivement la prochaine !

Commenter et partager


Jeudi dernier avait lieu la 6ème session de l’année du Lava JUG : Développeur front-end en milieu hostile présenté par Julien Muetton. Julien un passioné de développement web qui pratique l’amélioration continue. Il est donc venu nous présenter ses bonnes pratiques, ses outils préférés et sa vision du métier. Il est, entre autres, vice-président de Clermont’ech et président de ClermontJS.

Julien a commencé sa présentation en détaillant ce qu’il appelle un “milieu hostile”. Le développement web a ceci de particulier qu’il possède un vaste environnement hétérogène. Il existe plusieurs navigateurs(IE, Firefox, Chrome, …), une multitudes de “devices”(ordinateurs, tablettes, mobiles) aux tailles d’écran variées, un niveau de sécurité important à injecter dans les applications et une couche réseau à la qualité difficilement prévisible (Fibre, ADSL, 4G, 3G, Edge, …). Julien nous a donné quelques astuces et bonnes pratiques pour appréhender ces contraintes.

Julien a enchaîné avec l’éco-système du développeur web en nous donnant à chaque fois son avis sur la qualité et l’utilisation qu’il fait de chaque outil.

En voici quelques uns :
    - Chaîne de build et “watchers” : Yeoman, Grunt, Broccoli, Gulp, Brunch
    - Package : npm, bowser
    - Versionning : Git
    - Test unitaires
        -Assertions : Chai, should, NodeJS assert
        - Runners : Mocha, Jasmine
        - Mock : Sinon.JS
        - Cross browser runner (test à travers plusieurs navigateurs) : Karma, Yeti
    - Tests fonctionnels
        - CasperJS
        - Selenium et Selenium as service (Sauce Labs, BrowserStack)
        - Régression visuelle : Phantom CSS, Viff
    - Maven, Graddle et surtout l’utilisation de scripts (install, start, stop, tests, release) enchaînés dans un Jenkins.

C’était une bonne présentation ! Moi qui ne suit pas familier avec le développement web, j’ai appris beaucoup de choses et je suis reparti avec pas mal de pistes pour m’y mettre. Le seul point négatif selon moi est l’absence d’une partie démo en live des outils comme l’avait fait Sébastien Douche dans sa présentation; ça passait dans le créneau et ça aurait pu être utile à ceux qui ne les connaissent pas.

Merci Julien !

Prochaine session du Lava JUG, le 19 Juin avec Alexis Moussine-Pouchkine pour une présentation Java dans le Cloud.

Commenter et partager


Kent Beck est un développeur reconnu par ses pairs. Il fait parti des signataires du manifeste Agile et est le fondateur de l’eXtreme Programming qui met en avant des valeurs telles que le courage, le retour sur développement (feedback) et amène de nouvelles méthodes de travail telles que le pair-programming et le développement piloté par les tests (test-driven development).

C’est justement cette dernière technique qui est détaillée dans ce livre. Je l’ai trouvé très bien écrit; il se lit vite du fait de chapitres courts, voire très courts (2 pages pour le chapitre 7), et du style fluide de Kent Beck. L’enchaînement de chapitres courts donnent envie de ne pas s’arrêter, surtout quand ils décrivent une histoire comme c’est le cas pour la première partie qui est un exemple, avec code, du développement d’un système monétaire.
La deuxième partie m’a moins convaincu. Elle est plus difficile à lire et le développement d’un framework de test en Python ne m’a pas emballé.
Enfin la dernière partie est un vrai guide pour mettre en place un développement piloté par les tests. Il fournit beaucoup de trucs et astuces, explique la philosophie qui fait le succès de cette méthode et surtout Kent Beck nous dévoile un peu sa vision du développement logiciel.

Je ne vais pas m’attarder sur les deux premières parties qui sont des déroulements d’exemples concrets mais plutôt reprendre en détail la troisième partie : Patterns for Test-Driven Development.
Continuer

Clean Code

dans Lectures

Près de dix ans après The Pragmatic Programmer, Clean Code est le livre qui a donné un second souffle au mouvement Software Craftsmanship. Tout comme son prédecesseur, c’est une bible pour développeur. J’ai dévoré ce livre du début à la fin et je pense que c’est un livre à relire régulièrement afin de ne pas perdre de vue le bon sens qu’il contient.

Il a été écrit par Robert C. Martin, alias “Uncle Bob”, expert mondialement reconnu dans le domaine des technologies objets. Il est aussi le fondateur et président de Object Mentor, Inc., une équipe d’experts mondiaux dans les domaines C++, Java, C#, Ruby, OO, Design Pattern, et autres.

Le but du livre est de recenser les bonnes pratiques et les expériences d’experts d’Object Mentor afin d’écrire du code propre, robuste et surtout facilement lisible et compréhensible pour d’autres développeurs. La plupart des chapitres sont écrits par Robert Martin mais il a aussi laissé sa plume à d’autres experts : Tim Ottinger, Michael Feathers, James Grenning, Jeff Langr, Dr Kevin Dean Wampler, Brett L. Schubert.

Continuer

Moteur de script en Python

dans Code

Récemment, j’ai dû réfléchir à une solution de moteur de script dans le cadre d’un projet au boulot. Le but est d’enregistrer l’exécution d’un code python à la volée et de générer le script équivalent, pouvant se rejouer seul.

J’ai pour cela utilisé Spring Python qui est la version Python du fameux Spring pour Java, ainsi que l’introspection fournie par Python.
Continuer

ATDD, by Example

dans Lectures

ATDD by Example est un guide pratique pour qui désire une introduction rapide et concrète à “l’Acceptance Test-Driven Development”. L’auteur, Markus Gärtner, qui se définit lui-même comme un artisan développeur (“software craftsman”), partage avec nous son expérience dans le domaine de l’agilité et plus particulièrement sur les tests.

Dans son introduction, Markus nous donne une rapide présentation de ce qu’est l’ATDD et ses autres formes/noms (Behaviour Driven Development, Specification by Example, Agile Acceptance Testing, Story Testing). Il présente ensuite le plan de son livre; les 2 premières parties seront des exemples concrets avec mise en situation et la 3ème partie reprendra les grands principes de l’ATDD ainsi que les bonnes pratiques à suivre.
Continuer

Après la virtualisation avec Sébastien Douche en décembre, le Lava JUG démarre l’année sur les chapeaux de roue avec la venue de Rémi Forax, maître de conférence à l’UPEM (Université de Paris-Est Marne-la-Vallée), pour sa présentation Lambda Bestiary.

Après s’être présenté et nous avoir expliqué quels étaient ses travaux professionnels, Rémi est rentré dans le vif du sujet en nous expliquant pourquoi les lambda existaient en Java et à quoi elles servaient. Il a pris pour fil rouge la réécriture de design patterns bien connus tels que “Visitor”, “Factory” ou encore “Command” en les transposant de leurs implémentations objets “classiques” en implémentations à base d’objets Lambda. Bluffant !

J’ai vraiment apprécié la soirée, riche en enseignement sur les nouveautés de Java, les coulisses de son évolution et ce vers quoi il pourrait tendre dans les années à venir. Rémi est un très bon orateur et les heures défilent à grande vitesse.

Encore merci au Lava JUG de nous offrir des soirées de cette qualité là !

Commenter et partager

The Pragmatic Programmer

dans Lectures

“The Pragmatic Programmer” est une bible pour les développeurs. Il est l’œuvre d’Andrew Hunt et Dave Thomas d’après leurs expériences en tant que développeurs. Leur objectif est simple, faire du lecteur un Pragmatic Programmer, un développeur fier de son travail et qui utilise les meilleures techniques à sa disposition pour faire un travail de qualité.

J’ai vraiment apprécié ce livre facile à lire, rempli de métaphores et tellement inspirant. Il donne envie d’appliquer dans notre quotidien professionnel tous les bons conseils et techniques que les auteurs nous donnent.

Pour chacune de mes lectures, j’essaierais de faire un résumé des points importants à retenir afin que ces lectures ne soient pas perdues.
Pour le résumé de “The Pragmatic Programmer”, je vais reprendre les “tips” qui accompagne les 46 items.
Continuer

En revenant de l’Agile Tour Clermont-Ferrand 2013, je me suis dit qu’il fallait que j’essaye de mettre en place quelques bonnes idées présentées ce jour-là.

Parmi celles que j’ai retenues comme possiblement applicables dans mon environnement professionnel, il y a les “Brown Bags” ou comment enrichir sa culture professionnelle sur son temps personnel pendant la pause déjeuner. J’y reviendrai plus tard dans un article qui y sera consacré.

Avant de mettre en place ses moments conviviaux, je me suis dit que ça serait pas mal de présenter (modestement) ce qu’est l’Agilité à mes collègues pour ceux qui ne connaissent pas.

Voici donc ma présentation, n’hésitez pas à la réutiliser pour vous si vous en avez besoin ! Je suis preneur de toutes les remarques que vous auriez à me faire.

Commenter et partager

Lava JUG - Virtualisation

dans Événements

J’étais jeudi dernier à la soirée LavaJUG qui avait pour thème la virtualisation présenté par Sébastien Douche.

Après une présentation de son parcours et de ses compétences (sysadmin, développeur et manager !), Sébastien nous a présenté ce qu’était la virtualisation et comment il utilisait les machines virtuelles dans son quotidien professionnel. Il nous a rappelé la différence entre émulateur et hyperviseur et quels étaient les outils disponibles pour ce genre de besoin.

Après la théorie, la pratique ! Ses démos nous ont permis de voir comment ils mettaient les mains dans le cambouis et quelle était la puissance d’outils comme vagrant, saltStack et autres.

Ça faisait longtemps que je n’avais plus entendu parler d’administration système (depuis mes études en fait…) et le moins que l’on puisse dire, c’est que ça ne fait pas de mal. En tant que développeur, on peut avoir tendance à ne pas explorer suffisamment cette activité et pourtant certains outils peuvent nous faciliter la vie.
Les machines virtuelles, par exemple, peuvent être un bon moyen de reproduire un environnement de production afin de faire des tests en situation réelle, pour un coût temps/budget négligeable !

Commenter et partager

Pierre PIRONIN

J’ai créé ce blog pour parler de ce qui se passe autour de moi dans le domaine du génie logiciel.
J’exposerai mes devs, mes idées, mes lectures, les faits qui m’intéressent et les événements auxquels je participe.

Bonne lecture !


Artisan développeur


Auvergne, France