Pourquoi Kanban ?

Publié par Yannick Francois Sam 27 juin 2009 12:27:00 GMT

Durant mes études de génie mécanique puis de productique, j’ai eu l’occassion d’étudier le TPS et le système Kanban.

Après m’être interessé à l’agilité dans le monde du développement logiciel (domaine m’ayant recueilli après mes études), j’ai vu il y a quelque temps arrivé le Lean courant de pensé issu du TPS, et lu quelques billet très interessant sur l’utilisation de Kanban dans le développement logiciel.

Je vous conseil d’ailleurs la lecture de cet essai très interessant :

De mon point de vue je trouve que Kanban est plus approprié aux équipes que j’ai eu l’occassion de rencontrer: Multiprojet, maintenance. Scrum, XP et les diver pratique agile basé sur les itération courte ne sont pas forcement très simple, voir très adapté à une équipe travaillant sur de la maintenance, des évolutions, un nouveau projet, le tout en même temps…

Pour illustré l’utilisation de Kanban, Henrik Kniberg à réalisé un petit strip qui reflete assez bien le mode de fonctionnement d’une équipe utilisant Kanban: One day in Kanban land

J’espère bien pouvoir convaincre l’équipe avec laquelle je vais travailler quelques temps de mettre en place un tableau Kanban pour mieux gérer nos projets.

Ruby File.open 'w' Acces concurrent 1

Publié par Yannick Francois Mar 09 juin 2009 21:02:00 GMT

Je viens de tomber sur quelque chose d’étrange dans l’utilisation de l’objet IO de Ruby : La gestion des verrous sur les fichiers. Alors j’ai surement du rater quelque chose, mais voici mon histoire…

require 'test/unit'

DUCK="duck" 
ELEPHANT="elephant" 
SNAKE="snake" 
FILE="test_file" 

class TestFileConcurrencyAccess < Test::Unit::TestCase
  def test_concurrency_access
    t1 = Thread.start do
      File.open(FILE, "w") do |file|
        file.puts SNAKE
        file.flush
        sleep 8
        file.puts DUCK
      end
    end
    File.open(FILE,"r") do |f1|
      assert SNAKE, f1.read
    end
    t2 = Thread.start do
      File.open(FILE,"w") do |f|
        sleep 2
        f.puts ELEPHANT
      end
    end
    t2.join
    File.open(FILE,"r") do |f2|
      assert ELEPHANT, f2.read
    end

    t1.join
    File.open(FILE,"r") do |f3|
      assert SNAKE, f3.readline
      assert DUCK, f3.readline
    end

  end
end
fichier source Le resultat d’execution de ce test donne une erreur sur la dernière lecture:
Loaded suite test_file_concurrency_access
Started
E
Finished in 8.003509 seconds.

  1) Error:
test_concurrency_access(TestFileConcurrencyAccess):
EOFError: end of file reached
    test_file_concurrency_access.rb:38:in `readline'
    test_file_concurrency_access.rb:38:in `test_concurrency_access'
    test_file_concurrency_access.rb:36:in `open'
    test_file_concurrency_access.rb:36:in `test_concurrency_access'

1 tests, 3 assertions, 0 failures, 1 errors

Mais ce qui me gène (et qui ne ressort pas dans mon test, je l’avoue) c’est que j’aurais pensé que le deuxième File.open ne puisse pas s’executé, et me renvoie une Error du type: “Le fichier est déjà ouvert en écriture par quelqu’un d’autres”... Mais non, et du coup, j’ai un fichier assez moche qui ne ressemble à rien:

elephduck

Alors qu’on pourrait penser obtenir un truc dans le genre:

snake
duck

Avec éventuellement une erreur sur l’écriture d’éléphant dans le fichier.

J’ai également fait un essai en utilisant le code contenu dans chaque thread pour les executer dans deux console différentes, j’arrive au même résultat (c’est du coup dans test/unit, mais au niveau du contenu de FILE à la fin, j’ai là même chose…) Fichier write_quickly.rb pour l’écriture d’ELEPHANT Fichier write_slowly.rb pour l’écriture de SNAKE et DUCK

Bref, je suis perplexe. J’avoue ne pas avoir envie d’envoyer cela sur la mailing-liste Ruby-talk, ni sur celle de JRuby d’ailleurs (car j’ai vérifier, j’ai le même problème en JRuby). Du moins tant que je n’ai pas creusé un peu plus.

J’ai sûrement du faire une erreur quelque part, oublier quelque chose, ou faire quelque chose de travers. Si quelqu’un lit cela et à une idée, merci d’en m’en parler, je suis preneur !.

Si c’est un comportement souhaité, j’aimerais comprendre pourquoi, et si c’est un oubli ou une erreur, j’aimerais bien aider à trouver une solution.

ps: Retour au thème Scribbish que je trouve plus lisible, en attendant que je refasse quelque chose…

Retour des XPDay 2009

Publié par Yannick Francois Sam 30 mai 2009 16:26:00 GMT

Lundi et mardi dernier je me suis rendu au XPDay2009 . J’y ai trainé un associé de Kantena, j’y ai également retrouvé quelques têtes connu du dojo bien sur, mais également de l’association RubyFrance.

Le cadre était magnifique: Le chalet de la porte jaune est un endroit exellent pour ce genre de chose. Mise à part effectivement des salles parfois difficile d’accès ;-).

Nous avons entendu beaucoup de chose interessante, mais aussi beaucoup échangé, et c’est ce qui fait beaucoup dans ce genre d’évènement: les rencontres. Le planning et le cadre étaient propice à ce genre de chose.

Ce que j’attend de ces deux journée:

- Rencontrer des gens qui partage un interêt pour ces bonne pratique
- Avoir quelque retour d’expérience
- Apprendre et passer un bon moment.

Et bien mission accompli !

J’ai passé un bon moment, j’ai rencontré des agilistes convaincu, et moins convaincu, et les retour d’expérience on fini de me convaincre.

Ce que je retient principalement c’est que l’agilité, mais surtout le projet informatique sont une histoire d’Homme en premier lieu. C’est pas forcement nouveau, mais on le sent vraiment dans ce genre de contexte. Et c’est surement cette première valeur du manifeste agile : L’interaction avec les personnes plutôt que les processus et les outils. qui est le plus dur à faire comprendre au réticent. C’est dailleurs un des points point commun avec le Lean (ou TPS . C’est un point commune à la fois sur la forme, car le Lean se concentre sur les Hommes , mais également sur le fond (du problème) car c’est aussi un des aspects les plus dur à faire comprendre dans une entreprise voulant adopter des pratiques Lean

Pour ce qui est de mon objectif professionel: avoir une vision plus clair de ce que je peut proposer sous forme d’un contrat ou non, autour de projet au forfait, avec un client distant. je n’ai pas de réponse toute faite. Mais je m’y attendait. C’est normal, toute ces pratiques ne peuvent s’appliquer de la même manière dans tout les contexte. Au risque de me répéter, l’agilité, le lean, sont des pratiques de bon sens, et le bon sens ne peut s’appliquer de la même manière à tout les projets. J’ai même entendu qu’un projet mené en mode cascade avec les bonnes personnes au bon endroit, avec des une équipe motivé peu faire mieux qu’une équipe mauvaise utilisant Scrum ou une autre méthodes agiles… Et je suis assez d’accord avec cela !

Bref, pour une première, je suis ravi. Je compte bien renouveller l’expérience l’année prochaine, et cette fois, j’essayerais d’amener avec moi plus de personnes de Kantena !

XPDay France 2009

Publié par Yannick Francois Dim 24 mai 2009 11:29:00 GMT

Demain (lundi 25 mai) et après demain (mardi 26 mai) se déroule les XP Day France 2009 au chalet de la porte jaune (c’est à Vincenne).

Je m’y rend au nom de Kantena. En effet, nous sommes convaincu que beaucoup de projet en échec aujourd’hui le sont à cause d’un manque de bon sens, et les méthodes agiles en général ne sont que du bon sens mis en forme.

Sur la forme, je ne suis pas convaincu par l’une ou l’autre, et je ne me lancerais pas dans un débat Scrum vs XP vs Lean vs MettezIciUnNomDeVotreChoix. Je pense que selon le projet, le client, l’équipe il faut s’adapter et surtout ne pas aller à l’encontre du bon sens. Par exemple, chez Kantena, nous essayons de proposer à nos client des TMA et autres projets au forfait quand le besoin s’y prête. Dans ce context il est très délicat d’avoir la présence d’un utilisateur ou product owner avec l’équipe.

Ce que j’attend de ces deux journée:

  • Rencontrer des gens qui partage un interêt pour ces bonne pratique
  • Avoir quelque retour d’expérience
  • Apprendre et passer un bon moment.

Je me fixe également un objectif professionnel: avoir une vision plus clair de ce que je peut proposer sous forme d’un contrat ou non, autour de projet au forfait, avec un client distant.

Bref, je suis impatient d’y être, surtout quand je regarde le programme

Apéro Ruby de mai 2009

Publié par Yannick Francois Mar 19 mai 2009 19:51:00 GMT

Pour ceux qui ne serait pas encore au courant, Cyril ‘shingara’ Mougel organise au nom de l’association RubyFrance le 12ième apéro Ruby de Paris.rb (la communauté parisienne de Ruby). Si cela vous tente, rendez-vous le 20 mai à partir de 20h au Dune (ça devient une habitude ;-)) 18 avenue Claude Vellfaux 75010 Paris (Métro Colonel Fabien ou Goncourt: e-dune/acces).

Petit extrait des activités de la soirée (à part boire un coup et discuter):

Les sujets que nous pourrons abordé sont : – Rails 3 étant annoncé en Alpha pour très bientôt, nous pourrons tous en parler entre nous. – RailsConf 09 qui s’est terminé le 10 Mai

Vous pouvez voir quelque vidéo de cet conférence sur blip.tv

http://railsconf.blip.tv/posts?view=archive&nsfw=dc

Et Cyril nous précise les non-modalités

Aucun enregistrement préalable n’est nécessaire. mais vous pouvez toujours m’indiquer votre venue par email. Si vous souhaitez réaliser une présentation, n’hésitez pas à me l’indiquer pour qu’on puisse l’organiser. En espérant vous voir à nouveau, bonne soirée

Je pense que j’y ferais un tour, j’espère vous y voir ;-)