me retrouver : |
smartview |
twitter |
slideshare |
linkedin |
3 derniers articles : |
Shadoks, freins, changement, cynefin |
coach retreat paris, 2012 |
Stoos network, un départ, des attentes |
recherche | archives | catégories | à propos
Ce billet prend naissance au travers de la lecture de cet excellent article : The philosophy of Kanban is Kryptonite to Scrum . Je n’ai pas mis en oeuvre KanBan. Je n’en ai pas eu à ce jour l’occasion (cela ne saurait tarder), mais prenez donc cet article avec des baguettes car je n’ai pas de feedback terrain à ce sujet.
Ma problématique :
A la lecture de l’article cité ci-dessus je me dis que la solution réside peut être dans KanBan. Il ne règle pas la question de contractualisation mais il peut régler celle de la stabilité de l’équipe. Pourquoi ? Scrum apporte beaucoup de souplesse en réponse aux besoins d’un projet, mais il n’introduit pas nécessairement beaucoup de souplesse au sein de l’organisation. Il nécessite un rituel fort et contraignant : les sprints, les daily scrum, les retrospectives, le tout organisé autour d’une équipe très stable et très impliquée. Pour une SSII (ou une entreprise) ce n’est pas si simple à mettre en oeuvre. Rare sont les moments où une équipe peut effectivement entièrement se consacrer à son sprint. Rare sont les projets ou une personne/évènement externe ne vient pas bousculer le planning, les priorités. KanBan propose un cadre moins rigide (oups scrum méthode agile serait rigide, non ne me faites pas dire cela), en tous cas il propose moins de recommandations d’une part (pour reprendre les termes de Henrik Kniberg (cf les liens ci-dessous)), et ne l’assujetti pas à des timeboxes et un rituel régulier (stand up, etc..). Mais le cycle de Kanban se différencie de la vélocité de Scrum. Le rythme/”flow” de Kanban me parait beaucoup moins contraignant. la vélocité de Scrum est rythmée par le rituel, mise en exergue par les burndown chart, on se doit de respecter l’itération : si une user storie n’est pas achevée à la fin du sprint elle n’apparaitra pas dans la démo, elle a été hors du rythme et donc exclue. Là où Kanban -il me semble- va être plus docile : on déduit le rythme des faits, on ne s’y soumet pas.
Bref, l’exercice de suivre la rythmique de Scrum n’est pas aisé, je me répète, d’où aussi l’importance de la sensibilisation du management au respect des règles d’un projet Scrum. Mon propos est aussi de dire que des fois ce n’est pas possible et qu’il s’agit peut-être là finalement de plutôt se tourner vers Kanban (sans opposer les deux, ce en quoi je ne fais que redire ce que l’article cité ci-dessus explique bien mieux).
Autre point qui m’amène à évoquer KanBan, il se peut (double conditionnel alto arrière..) que je sois amené à coacher des équipes composées de 1 à 2 personnes dans un prochain temps. Avec 1 personne Scrum perd de sa substance… On se retrouve simplement dans le mode héro (oyez CMMi niveau 1…), en espérant que cet acteur solo a une bonne culture de la gestion d’un projet informatique, des outils qu’il peut mettre en place, etc, mais nulle question à mes yeux de réaliser un daily stand up seul, surtout si une seconde personne vient de façon épisodique compléter l’équipe.
Là encore KanBan avec son approche -apparemment- plus simple, et beaucoup moins ritualisée, va peut-être pouvoir répondre à ce besoin. En introduisant un simple “radiateur” KanBan je peux amorcer une gestion rythmée du projet, je n’ai pas de sprint à respecter, je peux introduire une seconde personne de façon épisodique. Bref je me répète : je peux rythmer plus simplement le projet et qui dit rythme, dit charge et planification et donc indicateurs et prévisions, etc.
Pour finir et afin de le rappeler une nouvelle fois, je n’ai pas encore mis en oeuvre Kanban à l’inverse de Scrum, excusez moi par avance si j’avance ici des grossièretés à vos yeux de Kanbanmaster (?). Je veux simplement souligner pourquoi KanBan serait une piste intéressante. J’en décèle deux : impossibilité d’appliquer le rituel de Scrum et de garantir la stabilité de l’équipe, l’un étant souvent le corollaire de l’autre.
Un autre article très intéressant : Kanban and Scrum a practical guide et surtout le PDF associé qui compare Scrum à KanBan, celui avec la citation de Myamoto Musashi, …
This entry was written by , posted on November 25, 2009 at 10:27 am, filed under kanban, méthodes agiles, scrum and tagged kanban, scrum. Leave a comment or view the discussion at the permalink.

CMMi ?
Je viens de passer un “check CMMi” avec pour sujet un projet Scrum dont je suis le ScrumMaster. On lit beaucoup de choses sur les liaisons ou équivalences en CMMi et Scrum, par exemple dans une annexe du bouquin de Ken Schwaber (“Agile Project Management”). Notamment sur les pratiques couvertes par Scrum concernant CMMI. Je reste assez dubitatif sur cette volonté de rapprocher ces deux méthodes car je perçois pour l’instant que ce n’est fait que pour rassurer certains clients, ou pour bâtir un argumentaire commercial. Actuellement -dans la société pour laquelle je travaille encore durant deux mois- c’est assez caricatural : les scrumers moquent les cmmis et vice-verça. Je joue moi aussi beaucoup à cela. C’est de la détente, hein. Mais je suppose qu’une vraie analyse des pratiques CMMi (telles qu’elles sont mises en oeuvre ici) via le prisme de Scrum apporterait une vraie (contre)analyse et permettrait de faire évoluer le modèle. Et là aussi vice-verça.

Scrum ?
Bref en tous cas je viens de passer un “check” : on vérifie l’application des pratiques CMMi sur vos projets au sein de l’”agence”. Parmi les points forts sont remontés le projet Scrum, notamment sur la pratique PMC (en gros gestion de projet) : visibilité et implication des équipes (le radiateur, les stand-up meeting, etc.), mais aussi sur la pratique VER (vérification) : test d’intégration et d’acceptation par le client à chaque itération. Bref : L’auditeur CMMi est probablement moins borné que moi et a observé avec intérêt les pratiques Scrum !
This entry was written by , posted on November 6, 2009 at 8:47 am, filed under cmmi, méthodes agiles, scrum and tagged check, cmmi, scrum, scrummaster. Leave a comment or view the discussion at the permalink.

MariaDB c’est le bébé de Monty Widenius : fondateur de MySQL. C’est aussi un fork 100% compatible de MySQL.
“MariaDB is a drop-in replacement of MySQL, with more features, less bugs and better performance”, peut-on lire dans le README du dossier MariaDB 5.1.38 que je viens d’extraire, rien que ça ! MariaDB est un fork officiel de MySQL par l’un de ses fondateurs.Les différences entre MariaDB et MySQL sont listées ici. MariaDB est entièrement compatible MySQL, d’ailleurs toutes la documentation d’installation de MySQL est compatible (pour dire le démon se lance avec libexec/mysqld…bref C’EST MySQL). Essayons ! Je télécharge les sources, je compile. je déploie, je copie ma conf mysql, je fais les changements qui vont bien, je lance le mysql_install_db…
/opt/mariadb5138$ sudo bin/mysql_install_db --defaults-file=/opt/mariadb5138/my.cnf Installing MariaDB/MySQL system tables... OK [...]
Et je me retrouve avec :
/opt/mariadb5138$ sudo ls data/ maria_log.00000001 maria_log_control mysql test
J’ai toute une petite série d’exécutables MariaDB : maria_chk, maria_dump_log, maria_ftdump, maria_pack, maria_readlog : le moteur de stockage mariadb est sensé être crashproof, contrairement à MyISAM, et à l’instar de InnoDB. Bref je lance le biniou (c’est moi qui ai placé le démon sur le port 3308, et changé la socket).
/opt/mariadb5138$ sudo libexec/mysqld --defaults-file=/opt/mariadb5138/my.cnf --user=mysql 091103 16:23:22 [Note] Event Scheduler: Loaded 0 events 091103 16:23:22 [Note] libexec/mysqld: ready for connections. Version: '5.1.38-maria-beta' socket: '/tmp/mariadb.sock' port: 3308 Source distribution
J’ai plus qu’à dumper mes données mysql vers mariadb(on va essayer une base eZ 4.2.0) (j’ai pris soin de placer comme moteur de stockage par défaut “maria”, sinon je vais devoir faire des alter table en pagaille)
mysqldump -u*** -p*** ez420 | mysql -u*** -p*** -S/tmp/mariadb.sock ez420 mysql> show table status like "ezcontentobject"\G *************************** 1. row *************************** Name: ezcontentobject Engine: MARIA Version: 10 Row_format: Page [...]
Ah je vois que j’ai un format Page (qui n’existe pas avec MyISAM). Je note que l’on peut dans processlist analyser les temps des requêtes à la milliseconde prêt (ce que l’on peut faire avec MySQL Proxy, mais pas le mysql “de base”), je note que l’on a une analyse étendue des logs des “slow query”. Et pas mal d’améliorations côté performance. Je vois cela là.
Et je vois pas mal de variables associées au moteur de stockage :
mysql> show variables like "%maria%"; +-------------------------------------------+---------------------+ | Variable_name | Value | +-------------------------------------------+---------------------+ | maria_block_size | 8192 | | maria_checkpoint_interval | 30 | | maria_force_start_after_recovery_failures | 0 | | maria_log_file_size | 1073741824 | | maria_log_purge_type | immediate | | maria_max_sort_file_size | 9223372036853727232 | | maria_page_checksum | ON | | maria_pagecache_age_threshold | 300 | | maria_pagecache_buffer_size | 8384512 | | maria_pagecache_division_limit | 100 | | maria_recover | OFF | | maria_repair_threads | 1 | | maria_sort_buffer_size | 8388608 | | maria_stats_method | nulls_unequal | | maria_sync_log_dir | NEWFILE | | maria_used_for_temp_tables | ON | +-------------------------------------------+---------------------+
Si je fais un show create sur l’une de mes tables je vois ce paramètre (nouveau) : PAGE_CHECKSUM=1. Il me dit que cela accroit la sécurité autour de l’intégrité de mes données. Mais je dois aussi ajouter l’option TRANSACTIONAL pour rendre la table “crash safe” (rien à voir avec les transactions, en fait il journalise dans des logs). donc :
mysql> alter table ezcontentobject transactional=1;
Après tout cela mon site test ez420 fonctionne très bien. Le driver php_mysql continue à marcher as usual. Si j’essaye le module mysqli(mproved) ça marche aussi normalement. Bref je peux effectivement faire le remplacement tel quel de MyISAM par MariaDB (oui je sais des petits malins me diront que eZPublish nécessite un moteur InnoDB pour ses fonctionnalités transactionnels et ils auront raison. C’est juste un test sur la première base qui me tombe sous la main).
Tout ceci est très prometteur. Attention pour l’instant mariadb n’est pas un moteur transactionnel, mais, pas bête, la distribution MariaDB intègre XtraDB : la version Fork de InnoDB proposé par les excellentissimes Percona. 
l’Open Database Alliance, qui est saluée par la communauté opensource, oeuvre manifestement pour soutenir MariaDB. C’est aussi une vraie réponse au risque que fait planer Oracle sur MySQL. La communauté autour de MariaDB semble assez dynamique et surtout grossir. Monty Widenius interviendra ce 12/13 novembre au Forum PHP Paris 2009 (AFUP).
Encore plein de questions, mais je n’hésiterai pas d’ores et déjà à recommander son utilisation.

N'est ce pas un dauphin qui plonge que je vois là ?
This entry was written by , posted on November 4, 2009 at 10:58 am, filed under database, mysql and tagged innodb, maria, mariadb, monty, myisam, mysql, open database alliance, opensource. Leave a comment or view the discussion at the permalink.