Forum ouvert et agilité

Ce 22 Septembre (oui, un dimanche), Christine Koehler nous a proposé de nous rassembler afin de réfléchir ensemble aux convergences entre forum ouvert et agilité. C’était aussi une opportunité d’échanger avec des orateurs du Scrum Gathering que Christine avait contacté pour l’occasion: Dan Mezick, Suzanne Daigle et Jasmina Nikolic. Suzanne nous a d’ailleurs gratifié d’un post pour l’occasion.
Zenika hébergeait ce rassemblement, je ne saurais trop remercier Carl Azoury d’être venu spécialement nous ouvrir les locaux ! Par contre l’aménagement spécifique à cette réunion nous était dû à Christine et entre la tenture d’affichage électrostatique, les posters répartis dans notre zLocalhost et la signalétique des points de rendez-vous, c’était de la mise en musique élaborée.
Parmi les appointés, quelques habitués des rendez-vous agiles.

Forum ouvert et Agilité 2

Sur 22 inscrits, nous étions finalement 17, ce qui n’est finalement pas si mal. Le nombre ne fait pas la qualité de toute manière.

Forum ouvert et Agilité 3

Christine et Suzanne ont ouvert la séance en rappelant le fonctionnement du forum ouvert. Je ne le rappelle pas ici, on trouve pas mal d’information sur le Web à ce sujet.
La première étape, c’est de proposer les sujets, bien sûr. Il n’y a pas de limite. On l’écrit sur un grand format…

Forum ouvert et Agilité 11

… et on le présente devant tous.

Forum ouvert et Agilité 12

Impact hub ? Cela ne me parle pas trop. L’occasion pour moi d’en apprendre plus…

Forum ouvert et Agilité 20

Lorsque qu’on a fait le plein, on vient faire son marché.

Forum ouvert et Agilité 22

D’ailleurs le lieux s’appelle bien la “place du marché”.

Dan Mezik et Jasmina Nikolic semblent assez pensifs devant les sujets. Le temps donné au groupe s’il est alloué ne veut pas dire que l’on s’y limite: Comme le dit Suzanne, la passion et l’énergie n’arrivent pas sur la base de la contrainte du temps.

Forum ouvert et Agilité 24

J’en sais un peu plus maintenant sur l’impact hub ; le tout me laisse encore un peu dubitatif, bien que je sois à priori convaincu sur l’idée de croiser des champs d’activité différents pour faire germer des idées nouvelles. Mais pourquoi et comment ? L’idée fera peut-être son chemin avant de vraiment m’interpeler.

Forum ouvert et Agilité 25

D’autres sessions en cours. pas très facile pour moi de m’insérer en cours de route, je passe.

Forum ouvert et Agilité 26

Je passe aussi celle avec Dan Mezik !

Forum ouvert et Agilité 27

Finalement je reste un peu sur une session consacrée au respect des règles et à la cohésion d’équipe !

Forum ouvert et Agilité 28

Je ne suis pas sûr d’accrocher à la direction que prends la discussion. Assimiler les “valeurs agiles” à une spiritualité, c’est peut-être trop fort pour moi. Et oui, en bas de la feuille, c’est bien marqué “sexualité”.

Forum ouvert et Agilité 29

Pour le coup, j’ai aussi manqué la discrète discussion menée par Jasmina autour du “oscrumban” ! Donc, je ne sais toujours pas ce que c’est !

Forum ouvert et Agilité 31

Au risque de vous frustrer, je ne vais pas retranscrire les discussions. Un forum ouvert, ça se vit plus que ça ne se restitue. Même si le “grand journal” essaie de se faire l’écho de notre après-midi !

Forum ouvert et Agilité 32

Devfest Nantes 2013

Le DevFest Nantes 2013 est une journée de conférences organisée par le GDG Nantes, qui s’inscrit dans un évènement mondial : les DevFests.

Les DevFests sont des événements communautaires de grande envergure à travers le monde, suivant la tradition des Google Developer Days et organisés par des groupes d’utilisateurs locaux. Ils constituent une occasion unique de partager et d’échanger autour des technologies du Web et du Cloud ! Et plus particulièrement sur Android, Dart, AppEngine, Angular JS, Chrome, HTML5, WebGL, Google Drive, Go, GWT… Cet événement sera suivi d’une AfterParty afin de discuter de manière conviviale et faire du networking !

Zenika est partenaire de longue date du Google Developers Group de Nantes et aussi l’un de cette manifestation.

Nous serons aussi parti prenante de l’évènement avec une session que je co-animerais avec Martin Mouterde. La session mérite bien sûr son petit teaser !

De l’agilité pour mon projet : pour quoi faire ?

Les développeurs ne sont pas tous des individus mal rasés, travaillant la nuit et jonchant leur sillage de boites de soda et d’emballages de pizzas.

L’agilité ne se réduit pas à des hurluberlus cherchant à couvrir chaque centimètre carré des murs de post-it multicolores.

Et d’ailleurs, l’agilité, qu’est-ce que c’est ? Vraiment !

Est-ce une nouvelle mode qu’il me faudra subir et passera à mon grand soulagement ? Ou est-ce une véritable réponse à la sclérose et l’inefficacité qui gangrènent nos projets ?

Durant cette session de découverte, nous allons voir ensemble ce qu’est réellement l’agilité, en quoi elle peut vous aider à réaliser des projets qui déchirent tout en y prenant plaisir ! Depuis les principes de base (adaptation aux changements, collaboration et transparence) jusqu’aux pratiques telles que le test-driven développement, le pair-programming, l’intégration continue, etc. nous iront à la rencontre des fondamentaux de l’univers agile.

Enfin, nous dérouleront un jour dans la vie du développeur agile pour comprendre comment les choses se passent. Réellement.

Rendez-vous à Nantes le 8 Novembre pour la DevFest !

Devfest Nantes 2013

Purely awesome – Chess Games and Neo4j

nosql:

I wasn’t able to follow the post. I got myself lost into the superb presentation built for it. Chess game replays. Dynamic graphs. Pure awesomeness.

This is by far the most entertaining blog entry presentation I’ve seen since I’ve start reading and writing about NoSQL.

standingovation

Original title and link: Purely awesome – Chess Games and Neo4j (NoSQL database©myNoSQL)

Cedric Fauvet évoquait justement ce cas d’usage de Neo4J lors du meetup de mardi. Voici a chose mise en musique, hélas seuls les vrais amateurs d’échec sauront vraiment apprécier la chose, ce qui n’est pas non plus mon cas. Comme l’auteur du post, je me suis simplement laissé hypnotiser par ce très beau replay…

Purely awesome – Chess Games and Neo4j

Le tour de Varnish en 30 minutes

… En fait, cela aurait dû être “le tour de Varnish en 80 jours” … cela s’est avéré trop long, nous nous sommes donc repliés sur 30 minutes !

Varnish, j’en entends parler régulièrement, surtout quand il s’agit de gros, de très gros sites. Mais jusqu’à présent, je ne savais pas vraiment ce que c’était. La présentation que nous a fait Dridi Boukelmoune chez Zenika nous a éclairé sur la bête.

Le tour de Varnish en 30 minutes

Varnish, c’est quoi ?

C’est un cache HTTP. Plus exactement un reverse proxy cache HTTP. Ce n’est ni le premier, ni le seul. Pourquoi donc l’évoquer ? Comme je l’ai dit, on trouve Varnish dans les grosses, les très grosses infrastructures Internet. Car outre sa remarquable stabilité, ce sont ses performances très élevées qui ont fait la réputation de Varnish. Bien qu’issue de Varnish Software (la partie commerciale de Varnish), cette petite Vidéo fait un bon résumé de la situation.

Bref, Varnish, c’est un cache HTTP très performant car travaillant au plus près de la pile TCP/IP. 

L'architecture de Varnish

Pas d’IHM sexy pour configurer la bête. Varnish est fait pour les admmins sys barbus et se configure à l’aide d’un DSL : le VCL.

Configurer Varnish avec VCL

VCL c’est plus qu’un script de configuration, c’est un DSL qui est ensuite compilé en C. Pré-compilé, devrais-je dire, car bien sûr ce code C est lui même compilé ! Nous l’avons évoqué, Varnish est focalisé sur la performance, et on ne fait pas de choses performantes avec des mécanismes dynamiques ! Malgré tout, le changement de configuration peut être opéré à chaud.

Time to live

De base, Varnish gère son cache en TTL, mais on peut y inclure certaines variantes:

  • En fonction de l’encoding
  • En fonction du navigateur utilisé
  • En fonction de la compression

Les règles par défaut

Tout ne doit pas aller en cache ! Le VCL permet d’ajuster ces règles, mais par défaut Varnish stipule que :

  • Il n’y a pas de mise en cache d’une ressource si elle est liée à un cookie.
  • Pas de mise en cache si il y a des informations d’authentification.
  • Seules les requêtes GET et HEAD sont mises en cache. Les requêtes POST ne le sont pas.
  • Varnish gère les “variantes” en s’appuyant sur l’en-tête HTTP vary qui permet d’indiquer explicitement un élément à associer à la décision de cache.

 Invalidation ou prolongation

Au-delà de la règle de fonctionnement de Varnish, qu’il s’agisse des règles par défaut ou d’une configuration qui s’en écarte, il est possible d’exclure des ressources du cache à l’aide de plusieurs mécanismes.

L’invalidation des ressources est possible, que ce soit sur une base individuelle ou suivant une expression régulière. Elle peut être opérée en ligne de commande ou via le VCL.

L’option la plus radicale d’invalidation est la purge. La ressource est retirée du cache, il n’y a plus moyen de la ressusciter une fois cela fait.

Varnish possède aussi une notion de ban. Il permet d’invalider un objet du cache, mais sans en entrainer son nettoyage.

A contrario on peut prolonger une ressource au-delà de ce que prévoit initialement les règles de Varnish,  avec la notion de “grâce” qui permet de prolonger un contenu à priori périmé. Ce mécanisme peut s’avérer utile en cas de défaillance du back-end.

Mais comment ça fonctionne le VCL ?

Ecrire du VCL, c’est presqu’écrire du C (c’est probablement pour cela que c’est facile à compiler…). Varnish propose un certains nombre de “looks”, des template méthodes qui sont appelées par Varnish si elles sont implémentées. Il suffit alors d’implémenter la fonction en question pour s’insérer dans le cycle de vie du cache, et d’y utiliser les fonctions que Varnish met à notre disposition pour bannir un objet, par exemple.

Bien sûr, il faut pour cela connaitre le cycle de vie des objets

Varnish VCL

Et voici ce à quoi peut ressembler un bout de configuration Varnish :

sub vcl_recv {
        if (req.request == "PURGE") {
                if (!client.ip ~ purgers) {
                        error 405 "Method not allowed";
                }
                return (lookup);
        }
}

Comme on peut l’imaginer, cet élément de configuration vient “hooker” l’état recv, en suivant le pattern “template method”.

Au-delà de la configuration

Director : Varnish fait du load balancing !

Enfin, pas tout à fait du load balancing, mais presque !

Un director est un groupe de back-ends clusterisés pour lesquels on établit une stratégie de redirection. Le but premier n’est pas de faire du load balancing, mais plutôt de maximiser les chances d’obtenir une ressource.

Maintenant, on peut aussi s’en servir pour faire du load balancing !

Etendre Varnish avec les modules

Outre la possibilité qu’offre le VCL d’y introduire du code en C, la méthode la plus élégante d’étendre Varnish est d’utiliser les modules, ce qui est possible depuis la version 3 de l’outil.

Dridi a d’ailleurs écrit un article (sinon l’article de référence) sur ce sujet, sur le Blog de Zenika.

Administrer l’outil

La console

On n’est pas chez les touristes. Ici de base, l’administration c’est la ligne de commande avec varnishadm ! Certaines des opérations que l’on peut faire avec sont même scriptables pour être intégrées dans un sh. Du classique pour les admins, donc.

Le bundle commercial de Varnish propose la Vanish Administration Console (VAC) qui est un outil Web. Mais comme toujours dans ces cas là, on ne peut quand même faire l’impasse sur la ligne de commande.

La gestion des logs

C’est un sujet d’attention particulier. Le loge peuvent rapidement ralentir terriblement les traitements. Varnish a pris une option radicale à cet égard : les logs sont en mémoire et sont en binaire ! Et Varnish propose un ensemble d’outils pour y accéder et les exploiter (varnishlog, varnishncsa)

Vers l’infini et au-delà…

En résumé

Le point essentiel, celui qui fait choisir Varnish, c’est qu’il s’agit d’un cache HTTP ultra-performant à même de décharger efficacement le back-end dans le cas de sites à très fort trafic. C’est LE cas d’utilisation. Pour un site n’ayant pas un très fort trafic, Varnish sera de très peu (et plus probablement d’aucun) intérêt.

Varnish en 5 étapes

Voici la démarche condensée de mise en oeuvre que nous propose Dridi :

  1. Cacher le contenu statique
  2. Configurer la compression
  3. Cacher le contenu semi-statique
  4. Automatiser l’invalidation
  5. Améliorer le back-end

Les autres fonctions de Varnish

Bien que sa fonction essentielle soir le cache HTTP, on ne peut ignorer ce que Varnish sait faire d’autre :

  • Gérer le streaming
  • Utiliser des ACL
  • Structurer des architectures multi-tenant.
  • Tester son architecture, c’est à dire en pratique tester sa configuration VCL, avec le framework de test qui fait partie de la distribution.
  • Gérer le Edge Side Include (ESI)

Bien entendu, nous l’avons évoqué, Varnish peut servir de reverse proxy, bien que ce ne soit pas sa vocation première.

Merci Dridi !

Dridi n’est pas seulement un excellent collègue chez Zenika, son intérêt et sa maitrise croissante sur Varnish l’ont amené à en devenir un contributeur ! Il est entre autre chose l’auteur du module QueryString.

La présentation dont Dridi nous a gratifié fera partie de sa présentation des petits déjeunes planifiés sur Lyon et Paris, consacrés à Varnish. J’avoue que cette présentation en 30 minutes (30 minutes et 18 secondes, précisément) était un peu ardue pour moi, car faite un peu sans concession. C’est mon seul reproche. Elle présente clairement les fonctions et possibilités de l’outil et l’enthousiasme, la passion devrais-je dire de Dridi pour ce projet open-source font beaucoup au plaisir que j’ai eu à l’écouter.

La présentation de Dridi est accessible ici.

En épilogue, je vous propose de jeter un coup d’oeil au manuel de référence de l’outil.

Scrum Beer de Septembre

C’est la rentrée pour tout le monde, le SUG ne fait pas exception ! Nous nous sommes retrouvés au Café Livre : sur les 60 inscrits, 10 sont finalement venus. Qu’importe : les personnes présentes sont les bonnes personnes !

Scrum Beer de Septembre

Si vous ne connaissez pas le Café Livre, regardez simplement les photos : les murs sont littéralement couverts de livres ! On y trouve même celui d’Antonio Goncalves sur J2EE !

Scrum Beer de Septembre

Vous voulez un compte-rendu de cette soirée ? Eh bien, je ne l’ai jamais vraiment fait jusqu’ici et apparemment je ne vais commencer aujourd’hui. Il fallait venir !

Pour ma part, j’ai particulièrement apprécié les échanges sur les fondements de ce que nous cherchons à faire. C’est pour cela que je viens aux Scrum Beers, pour échanger avec des personnes qui e donnent à réfléchir.

Scrum Beer de Septembre

Calme et Cosy, un bon endroit pour commencer une année de Scrum.‘aurais l’occasion d’en reparler bientôt !

Agile Grenoble 2013

J’avais brièvement évoqué cet évènement cet été, pour vous suggérer de le noter dans vos agendas. Je serais présent cette année à la conférence où je présenterais un sujet. Teasing, teasing :

User stories, what else ?

Les users stories sont rapidement devenus la formulation convenue du besoin. Mais est-ce la seule ? Est-ce toujours la meilleure ? On dit que quand on a un marteau, tout ressemble à un clou. Notre communauté agile tend à ignorer ce qui vient d’ailleurs. Pourtant ce qu’on appelle l’ingénierie des exigences est un domaine riche de plusieurs décennies de connaissances et de techniques. Certaines peuvent être utilisées directement, d’autres doivent être adaptées ou peuvent servir d’inspiration.

Au cours de cette session, nous allons étudier ensemble plusieurs techniques et concepts du recueil des besoins et les regarder par le prisme de nos pratiques agiles. A l’aide d’exemples, nous verrons comment elles peuvent renforcer nos pratiques actuelles.

La conférence Agile Grenoble

Agile Grenoble existe 2008. C’est LA conférence incontournable sur l’agilité sur la région Rhone-Alpes et l’un des évènements majeurs consacré à l’agilité en France aux côtés d’Agile France et du Scrum Day (Je devrais sans doute ajouter Mix-IT, mais cet évènement n’est pas uniquement focalisé sur l’agilité). Avec 500 inscrits, elle se situe même devant les grandes manifestations Parisiennes en terme de fréquentation !

Zenika à la conférence

Zenika est fier de compter au nombre des sponsors de l’édition de cette année.

Mais il ne s’agit pas seulement de faire acte de présence, ce serait insuffisant.

Le leader en tant qu’hôte

En plus de ma session, Géry Derbier animera l’atelier “le leader en tant qu’hôte” auquel j’ai eu le plaisir de participer à Agile France cette année. En voici le teaser:

La métaphore du leader comme héros ne me satisfait bien évidemment pas. Celle du servant leadership ne me convient pas beaucoup plus d’autant que je l’ai rarement entendue traduite en français et je pense que dire à un exécutif qu’il doit devenir un serviteur est… source de résistance. Je propose d’explorer ensemble une métaphore ancienne proposée par Mark McKerkow, le leader en tant qu’hôte. Je propose d’étudier entre autres les aspects suivants : la notion d’hospitalité et le pouvoir de l’invitation, la co-création d’un moment comme une soirée ou une fête (en français hôte designe à la fois celui qui reçoit et l’invité), l’équilibre entre définir et participer, … Nous verrons ainsi comment utiliser, ou pas, cette métaphore dans la mise en oeuvre de l’agilité dans une organisation. Compte tenu du caractère co-créatif de la métaphore proposée tout le monde est concerné et bienvenu dans cette session.

See you soon !

Ce n’est d’ailleurs pas tout : Laurent Sarrazin présentera aussi une nouvelle session : Neurosciences pour transitions agiles. Une belle représentation du pôle agile de Zenika, donc.

Agile Grenoble 2013

Agile Grenoble 2013

Zenika est aussi présent à cet évènement en tant que sponsor, mais aussi nous l’espérons avec quelques interventions qui contribueront à la qualité de ce bel évènement !

http://2013.agile-grenoble.org/

Agile Grenoble 2013

What’s new in Scala 2.10 ? avec Martin Odersky

Comme l’année dernière, Devoxx proposait cette année des “BOF” dont l’accès était libre moyennant une inscription préalable. J’ai vite arrêté mon choix sur celle de Martin Odersky. Scala est un sujet d’actualité pour moi, je suis au milieu du cours Functionnal Programming in Scala sur Coursera par le créateur du language !

Autant l’avouer tout de suite, ce n’est donc pas spécifiquement les nouveautés 2.10 qui m’intéressaient ici. J’espérais aussi grapiller un peu des “pourquoi” qui ont présidé aux options du language.

MartinOdersky01

Ca commence plutôt bien en ce sens.

La suite …

What’s new in Scala 2.10 ? avec Martin Odersky

AgileTour Brussels 2013

Comme l’an dernier, je me rendrais à l’Agile Tour Bruxelles ! Pas tout à fait comme l’an dernier, toutefois, car je m’y rends cette année sous les couleurs de Zenika !

Je vais me livrer à ce que j’appelle une “session participative”, une présentation entrecoupée de participations de l’assistance. Le titre en est inspiré d’un principe promu par Scott Meyers : Easy to use correctly and hard to use incorrectly.

En voici le teaser :

We are all seeking for good advices, recipes and rules of thumbs to make our designs better, our requirements strong and accurates, our user interfaces outstanding and more and more…

But there are as many set of rules our advices as there are gurus. And as smart as they are, their rules are only good advices, not final weapons usable in each and every situation. It’s because there is no final weapon. Human mind can’t be replaced and will not be.

Then I crossed Scott Meyer advice. Amazingly it help me to challenge my ideas in programming, design, user interfaces, even in the way I can mitigate user stories or make iteration priorities !

Agile teams are targeting excellence. Code, design and functionalities are not here forever : they are reused, refactored, improved or changed. We want functionalities deighting our customers and be handled without questions. This sessions will help you make a step in this direction by illustrating what it means to build things easy to use correctly and hard to use incorrectly. We will see that successively with code, design structures, requirements, user interfaces and even agile practices !

You will be invited to juge the examples against Scott Meyer’s principle and sometime to improve them and make them better.

Mais je n’ai toujours pas répondu à la question que vous vous posez : Pourquoi Bruxelles ?

  1. Tout d’abord: la communauté Belge ! Elle n’est pas seulement très aguerri en matière d’agilité (ils ont été les pionniers d’XP en Europe), elle est aussi et surtout éminemment sympathique et accueillante !
  2. Une occasion d’entrainer mon Anglais ! Eh oui, nous sommes au pays du bi-culturalisme. Donc, la conférence se fait en langue neutre : l’Anglais !
  3. Enfin, quoi ! Nous sommes en Belgique ! Donc, il y a de la bière …

Me voici donc avec quelques travaux de vacances pour préparer cette session qui sera entièrement nouvelle !

Rendez-vous sur le site d’Agile Tour Bruxelles

Venez nombreux !

AgileTour Brussels 2013

ScrumBeer de rentrée : Une année French SUG à construire soi-même !

http://www.meetup.com/frenchsug/events/130351452/

L’appel est clair : cette fois, nous viendrons à la Scrum Beer avec un objectif concret en tête : proposer des thèmes et des formules originales pour cette année qui commence. Et pourquoi pas vous y impliquer également ?

ScrumBeer de rentrée : Une année French SUG à construire soi-même !