Tuesday, May 26, 2009

Fin d'une journée Pomodoresque

La journée de travail touche à sa fin, il ne me reste pas assez de temps pour commencer un nouveau Pomodoro. Il est temps d'analyser puis de synthétiser les activités du jour.

Dans un premier temps, je reporte sur la feuille d'Enregistrements les activités pour lesquelles j'ai alloué des Pomodori. Je note la date du jour dans une première colonne.

En face de chaque activité, j'indique ensuite l'écart entre l'estimation du nombre de Pomodori nécessaires à l'accomplissement de l'activité de ceux réellement utilisés. Par exemple en début de journée j'ai estimé la tâche "Logiciel XXX: en-tête, afficher la date + heure du serveur" à 2 Pomodori et j'en ai finalement utilisé 3. J'obtiens donc un écart de -1.

Je note ensuite le nombre total de Pomodori réalisés ainsi que le nombre total d'interruptions.

Je prends alors mes stabilos de couleur et je surligne ce qui me paraît important (gros écarts, activité qui s'est mal déroulée, ...). Je cherche à décrire les causes des écarts et interruptions ainsi que les solutions possibles à l'amélioration de mon process.

Finalement, je retourne ma feuille d'Activités du Jour et je dessine un Mind Map pour faire ressortir les points forts de la journée que je veux retenir.

Ce que j'aime dans ces pratiques est que d'une part on se sent construire une expérience, de l'autre on arrive trés vite à se remettre dans le bain le lendemain ou après le week-end. En début de journée je relis le Mind Map de la veille et la feuille d'Enregistrements avant de planifier la journée. Le Lundi matin je relis la totalité des Mind Maps de la semaine précédente.


Friday, May 15, 2009

Un Pomodo est indivisible

Un Pomodoro est indivisible, il n'existe pas de demi ou quart de Pomodoro. Deux évènements peuvent nous inciter à diviser un Pomodoro et nous faire basculer du côté obscur:

  • nous n'arrivons pas à gérer une interruption (question d'un collègue, coup de téléphone, ...) en plein Pomodoro.
  • nous terminons une activité avant la fin du Pomodoro.

Voyons ce que la règle d'indivisibilité nous apporte dans chaque cas.


1. L'interruption


Si nous interrompons un Pomodoro, on doit le considérer annulé. Pas de croix sur sa feuille du jour, pas de récompense. Cela peut s'avérer trés frustrant lorsqu'il ne reste plus que deux minutes au Pomodoro. Ou bien quand cinq fois de suite nous commençons notre Pomodoro et à chaque fois quelqu'un a besoin de nous au bout d'une minute.
Cette frustration va nous pousser à trouver des solutions pour ne pas être interrompu et augmenter le nombre de Pomodori réalisés par jour. En voici quelques unes:

  • le téléphone sonne: laissez le répondeur répondre à votre place. Vous pouvez toujours rappeler à la fin de votre Pomodoro.
  • un nouveau mail arrive: le mieux est de fermer sa messagerie.
  • un collègue viens vous voir: demandez si c'est vraiment urgent et s'il est possible de voir ça dans quelques minutes, le temps de finir la tâche en cours.

Dans chaque cas, marquez sur votre feuille ce que vous devrez faire une fois le Pomodoro terminé pour ne pas l'oublier.


2. L'activité terminée


Vous venez de terminer ce que vous étiez en train de faire (un devis, développement, ...) mais il reste encore dix minutes au Pomodoro. A ce moment là il faut rester sur la même activité et profiter de ce temps pour passer l'activité en revue:
Pour un développement, relisez le code écrit. Vérifiez s'il est compréhensible, si des implémentations alternatives sont possibles (voire souhaitables), si les tests unitaires couvrent tous les cas. Pour un devis, vérifier les temps, coûts, comparer avec d'autres devis. Demandez-vous si vous auriez pu réaliser votre tâche en moins de temps, comment, notez-le.
Le Pomodoro nous oblige à vérifier ce que nous venons de faire. On évite d'expédier un peu trop vite notre travail et cela nous donne confiance dans nos réalisations. Dans les périodes où la pression se fait ressentir, bien des erreurs peuvent ainsi être évitées.

Thursday, May 14, 2009

Le Pomodoro au quotidien

Documents:
A l'instar de Scrum avec son Backlog, Pomodo necessite tout d'abord un Inventaire des Activités. On peut prendre une simple feuille A4 sur laquelle on écrit une activité / tâche par ligne. Lorsqu'une acitvité se termine, on la raye. Si la feuille est pleine (environ 25 activités) et qu'on a besoin d'en rajouter, on prends une nouvelle feuille vierge. On y reporte les activités toujours d'actualité ainsi que les nouvelles.
Une nouvelle feuille des Activités du jour est créée quotidiennement. On peut comparer cette feuille au Sprint Backlog de Scrum. On sélectionne quelques activités de l'Inventaire des Activités pour les porter sur cette feuille. En face de chaque activité on écrit notre estimation de Pomodori pour cette tâche.
La feuille d'Enregistrements est mise à jour chaque fin de journée. Elle contient la synthése de la journée, une sorte de Sprint Retrospective. On y indique tout ce qui peut nous permettre d'améliorer le processus.

Déroulement:
La journée se décompose en 5 étapes quotidiennes [1]:
  1. Planification: au début de la journée, on sélectionne les activités les plus importantes de l'Inventairedes Activités que l'on estime réalisables dans la journée. On écrit ces activités sur une nouvelle feuille d'Activités du Jour.
  2. Suivi: à la fin de chaque Pomoro (25 minutes), on ajoute un X en face de l'activité dans les Activités du Jour (si il n'a pas été interrompu). On écrit aussi les informations relative à l'activité qui nous semblent importantes (liste des interruptions et leur type).
  3. Enregistrement: à la fin de ma journée, je reporte la liste des Pomodori terminés et mes observations associées sur la feuille des Enregistrements.
  4. Traitement:on analyse les données des la feuille des Enregistrements et on en extrait les informations. On va par exemple calculer l'écart entre le nombre de Pomodori estimés et réalisés par activité, la moyenne de Pomodori effectués par jour, le nombre d'interruptions rencontrées, leur nature.
  5. Retrospective: on analyse les enregistrements dans l'objectif de nous améliorer. Quelles ont été mes erreurs d'estimation ? Comment pourrais-je éviter ces interruptions ?
La journée commence donc par la Planification. Se succèdent ensuite plusieurs phases de Suivi, après chaque Pomodoro. La journée se termine par l'Enregistrement, le Traitement et la Retrospective.
[1]: Staffan Nöteberg - "Pomodoro Technique Illustrated" DRAFT 27/04/2009

Saturday, May 9, 2009

Pomodoro technique et cerveau droit

La "Pomodoro technique" permet d'optimiser sa gestion du temps. Elle se présente comme un moyen d'éliminer son anxiété (de manque) du temps, d'améliorer son attention et sa concentration.
Pomodoro signifie tomate en italien et fait référence au minuteur de cuisine de l'auteur Francesco Cirillo en forme de tomate.
La technique s'apparente aux méthodes agiles, itératives. Là où les méthodes agiles s'attachent beaucoup à l'équipe, Pomodoro s'intéresse plus à l'individu. La technique peut néanmoins s'utiliser en groupe. Henrik Kniberg décrit le processus comme un Scrum individuel basé sur des itérations de 25 mn, qui en garde la plupart des avantages (cf le billet sur son blog).
Le Pomodoro nous contraint (dans le bon sens du terme) à exercer la même activité sans interruptions pendant une tranche de temps courte et de durée fixe. L'objectif est de maximiser sa concentration sur ces 25 minutes et nous apprendre à gérer rapidement les interruptions (un mail qui arrive, coup de téléphone, question d'un collègue) et à les reporter sur un Pomodoro suivant.
Le livre téléchargeable "The Pomodoro Technique" en décrit les règles:

  • Un Pomodoro (unité de mesure) dure 25 minutes, plus 5 minutes de pause.
  • On prends une pause de 15 à 30 minutes tous les 4 Pomodori.
  • Un Pomodoro est indivisible. Il n'existe pas de demi ou quart de Pomodoro.
  • Un Pomodoro commencé doit obligatoirement se terminer:
    • Si un Pomodoro est stoppé car on n'a pas su gérer la perturbation / interruption, on doit le considérer comme nul.
    • Si une activité se termine avant la fin d'un Pomodoro, on ne change pas d'activité et on utilise le temps restant pour passer en revue cette activité.
  • Protégez le Pomodoro. Informez efficacement, négociez rapidement la planification de l'interruption, rappelez la personne qui vous a interrompu au moment convenu.
  • Si vous estimez une tâche à plus de 5-7 Pomodori, divisez la. Les tâches complexes doivent être décomposées en plusieurs tâches.
  • Si vous estimez une tâche à moins d'un Pomodoro, combinez la avec d'autres tâches simples.
  • Les résultats sont enregistrés après chaque Pomodoro.
  • Le Pomodoro suivant se déroulera mieux.
A noter que Staffan Nöteberg prépare un livre sur le sujet, "Pomodoro Technique Illustrated", et propose de télécharger les ébauches sur http://www.pomodoro-book.com/.


Quel rapport avec le cerveau droit ? L'obligation des pauses de 5 et 15-30 minutes m'a intéressé.
Dans "Pragmatic Thinking & Learning", Andy Hunt détaille le fonctionnement du cerveau et explique les avantages qu'on peut tirer quotidiennement de cette connaissance, comment nous pouvons améliorer l'utilisation de notre matière grise. La distinction cerveau droit et gauche symbolise deux fonctionnements identifiés. En simplifiant à l'extrême:

  • le cerveau gauche fonctionne par logique (si dans X je mets Y alors j'obtiens Z), s'occupe du langage, analyse les détails. C'est la voix qui nous parle.
  • le cerveau droit fonctionne par synthèse, avec une vision globale. Il nous fait rêver et nous apporte de nouvelles idées. C'est un cerveau créatif, riche.
Andy Hunt nomme ces deux manières d'utiliser notre cerveau L-Mode (pour left et linéaire) et R-Mode (pour right et riche). Si quelqu'un a un moyen mémotechnique en français...
Nous ne pouvons pas utiliser nos deux cerveaux à la fois. Lorsqu'on programme, tape sur le clavier, on utilise notre cerveau gauche, linéaire, analytique. Lorsqu'on bloque sur notre programme, on s'éloigne du clavier, regarde ailleurs, arrêtons de nous parler. Nous laissons travailler notre cerveau droit pour qu'il nous donne une solution.
Malheureusement, l'éducation et l'entreprise nous ont forgés à sur-utiliser notre cerveau gauche au détriment du droit. On ne nous paye pas à méditer, rêver, dessiner ou jouer de la musique. Ce sont pourtant ces activités qui nous permettent de développer nos idées et nos manières de penser. Ceci dit, des entreprises prennent conscience de ce phénomène et intègrent des activités sportives, artistiques ou de relaxation au quotidien.
Mais revenons au Pomodoro. Une itération dure 25 minutes puis nous prenons 5 minutes de pause, ou 15-20 minutes tous les 4 Pomodori. Pendant ces pauses, il ne faut pas penser à l'activité que nous venons d'exercer. Rêvez, allez marcher dans un endroit tranquille, dessinez sur une feuille... activez votre cerveau droit ! C'est à ce moment là que les idées arrivent et peut-être une meilleure solution aux problêmes que nous tentions de résoudre. Dès qu'une idée apparaît, notez-là pour ne pas la perdre. Combien de fois avons nous eu des idées géniales sous la douche que nous avons perdu cinq minutes après...


Le pair-programming, deux développeurs pour un ordinateur, permet d'utiliser les deux modes de fonctionnement en même temps. La personne qui tape est en mode analytique (cerveau gauche) et celui qui pilote en mode synthétique, il garde le recul sur le développement. Il me reste à essayer la combinaison pair-programming + Pomodoro et voir si les deux pratiques se combinent bien...

Saturday, May 2, 2009

Vous êtes ce que vous faites

Un nouvel article sur le blog d'Andy Hunt concernant "Pragmatic thinking & Learning" arrive comme par hasard.


Pour ceux que l'anglais rebute:
  • On ne peut devenir expert sans expérience.
  • Devenir expert dans un domaine nécessite approximativement 10 ans, 10 000 heures de pratique.
  • Seule une pratique réfléchie, avec un objectif d'amélioration fait la différence. Suivre le mouvement ne suffit pas.  (Ça me rappelle un article sur la musique précisant que lorsque un musicien travaille vraiment son instrument, cela sonne très mal car il tente de jouer au delà de ses limites).
  • La pratique n'amène pas la perfection, mais amène la permanence: le cerveau se modifie en fonction de ce que l'on fait. 

On ne deviendra (peut-être) pas ce qu'on aspire à être. On deviens ce que l'on fait.

Friday, May 1, 2009

Modèle Dreyfus

Je viens de recevoir "Pragmatic Thinking and Learning" de Andy Hunt (co-auteur du célèbre "The Pragmatic Programmer: From Journeyman to Master"). Le livre s'annonce passionnant.

Le second chapitre présente le modèle Dreyfus d'acquisition de compétences. Cette théorie dit que le passage de novice à expert d'un domaine donné passe par cinq étapes.

étape 1: Novice
  • l'activité change sa manière de penser car il acquiert de l'expérience dans un domaine qu'il ne connaît pas, ou peu.
  • il focalise sur le besoin, l'objectif immédiat.
  • l'accomplissement de ses tâches nécessite des recettes, une marche à suivre.
  • il n'a pas d'intuition sur la manière de résoudre les problématiques


étape 2: Débutant avancé
  • il fait preuve d'indépendance technique et sait chercher l'information nécessaire à l'accomplissement de ses tâches.
  • il sait choisir quelle démarche et technique appliquer selon le contexte.
  • il ne comprends pas ou peu la stratégie globale du système, de l'entreprise; il ne voit généralement pas les liens avec son travail quotidien.


étape 3: Compétent
  • il peut développer et utiliser des modélisations des problématiques et travailler par abstractions.
  • il peut résoudre des problèmes qu'il n'a pas rencontré auparavant.
  • on dit d'eux qu'ils font preuve d'initiative.
  • il ne réfléchit pas ou peu sur ses méthodes de travail, ne rentre pas dans un processus d'amélioration continue.

étape 4: Spécialiste
  • il ressent le besoin de comprendre la vue générale et les détails, la sur-simplification le frustre.
  • il corrige ses erreurs.
  • il apprend par l'expérience des autres, étudie des cas, des projets et prends ce qui peut améliorer son expertise.
  • il comprends et applique des maximes, vérités essentielles "Fait le minimum qui peut fonctionner", "Ne te répète pas", "Teste tout ce qui peut casser", ...
  • il sait utiliser les modèles de conception quand nécessaires (ce ne sont pas des recettes) et les adapter .
  • il utilise les avantages de la réflexion et du retour d'informations qui sont au cœur des méthodes agiles

étape 5: Expert
  • il cherche continuellement des nouvelles méthodes et manières de mieux faire les choses.
  • il travaille par (bonne) intuition.
  • il peut avoir du mal à expliquer ses choix: ils lui semblent "naturels".
  • il distingue les détails futiles de ceux très importants.
  • peu d'experts existent: certainement entre 1 et 5 pourcent de la population.

A noter qu' on peut être expert dans un domaine et totalement novice dans un autre.

Si le novice ne cherche pas à diversifier son expérience (ou ne suit pas de formation), il peut rester novice dans ce domaine quelque soit le nombre d'années d'activité. De même pour passer de débutant à compétent.

Nous tendons à penser que la plupart d'entre nous est au niveau "Compétent". Or il apparaît en pratique que la grande majorité est au stade "Débutant avancé".

Nous nous estimons aisément expert d'un domaine et sûr de nos choix lorsqu'on possède peu de compétences et connaissances de ce domaine. Un novice ne connaît peu ou pas les limites de son savoir. Plus on est expert, plus on doute, on se sent ignorant.

Cette citation (approximative) de Ghandi (je crois) me revient à l'esprit:
"Vivez comme si vous alliez mourir demain. Apprenez comme si vous étiez immortels."