Outils de productivité partie 3: Agile Results

imagePour faire suite à la série de billets sur les outils de productivité, nous allons parler aujourd’hui d’une technique intéressante qui nous permet d’être « Agile » avec nous-mêmes, et ce sur différents niveaux.

Cela fait quelques années que je lis régulièrement les articles de J.D. Meier. Ce dernier travaille chez Microsoft, mais on ne parlera pas ici de son côté technique, mais plutôt de ses trucs pour obtenir des résultats.

De son blogue, Source of Insight, il a publié plusieurs articles très intéressants sur la productivité, comment atteindre nos buts et améliorer la balance entre travail et vie à la maison. Il a récemment formalisé toute sa méthode dans un livre intitulé « Agile Results ». Ce dernier est gratuit en ligne et on peut se procurer aussi une version papier.

 

Les grandes lignes de sa méthode sont les suivantes:

  • La règle de trois: Toujours y aller avec trois objectifs à la fois dans vos planifications.
  • Adopter le concept de « Monday Vision, Daily Outcomes, Friday Reflection« , qui est en gros:
    • Vision du lundi: On identifie nos 3 résultats souhaités pour la semaine
    • Résultats Journalier: On révise nos 3 objectifs de la semaine et on regarde comment les faire avancer aujourd’hui en priorisant nos tâches.
    • La Rétrospective du vendredi: On regarde notre semaine en se posant les deux questions suivantes:
      • Quelles sont les trois choses qui vont bien ?
      • Quelles sont les trois choses à améliorer ?
  • Trouver ses « hotspots » afin de savoir comment on distribue notre temps et se fixer des limites. Le tout afin de bien balancer notre vie. C’est un peu philosophique, mais assez important pour se questionner sur quoi investir en priorité et les conséquences à ne pas investir à d’autres endroits.

Le livre mentionne aussi un paquet de stratégies et de points clefs obtenir des résultats. Très intéressants à lire. La version du web du livre est très pratique et on s’y retrouve bien. Il y a un résumé de la méthodologie et  des « Cheat Sheets », posters et autre.

iStock_000001342452LargeDe mon côté, je pratique régulièrement la règle de trois et le « Monday Vision, Daily Outcomes, Friday Reflection ». C’est vraiment la base de mon rythme pour réaliser un paquet de trucs, comme écrire ce billet. Pour ce qui est des hotspots, je m’y suis attardé une fois je crois pour bien les connaître et c’est tout. Bref, cette méthode marche bien pour moi. D’ailleurs la section « Mes points clefs » que l’on retrouve régulièrement à la fin de mes billets, est tirée de cette technique.

Si les « Agile Results » vous branchent, n’hésitez pas à lire aussi le blogue « Source of Insight » qui publie régulièrement de bons articles et résumés. J’en ai d’ailleurs aussi inscrit, dans les références au bas de ce billet, des liens sur des articles intéressants de J.D. Meier et de E-Books gratuits qu’il a déjà écrits.

 

Mes points clefs :

  • Planifier nos tâches et ce que l’on veut accomplir, et ce de manière journalière, hebdomadaire, mensuelle et annuelle
  • Apprendre à mieux se connaître et important pour se fixer des objectifs
  • Nos résultats guident nos actions

 

 

Références :

Les « skills » de l’Agilité

L’agilité, ce n’est pas seulement Scrum et le XP Programming. Plusieurs autres méthodes, concepts, notions et habilités gravitent aussi autour de l’agilité. Les travaux de l’Agile Skills Project répondent justement à cela. Ils ont répertorié toutes ces habilités et les ont classés selon les 7 piliers suivants:

  • Business Value
  • Collaboration
  • Confidence
  • Product
  • Self Improvement
  • Supportive Culture
  • Technical Excellence

Je vous recommande fortement d’y aller jeter un coup d’œil au site. On y retrouve le détail de leurs travaux et le classement des habilités « Agiles ». Ce qui est intéressant avec tout cela, c’est qu’on peut voir dans quel secteur (ou pilier) nous avons des acquis et à quel endroit il serait intéressant d’évoluer. Ceci vaut aussi bien de manière individuelle, d’équipe ou au niveau d’une entreprise.

J’ai aussi fait une petite présentation sur Slideshare pour illustrer les 7 piliers de l’agilité:

Vous m’en direz des nouvelles !

Références:

Atelier Gestion Visuelle

clip_image002

Aujourd’hui, lors de l’Agile Tour Québec 2010, j’ai eu l’occasion d’animer un atelier sur la gestion visuelle. Le tout s’est bien déroulé malgré le temps plus restreint (1 heure) pour mener l’activité.

La participation de tous fut excellente et une bonne créativité en est ressorti dans le tableau des tâches de tous et chacun. Bravo !

J’avais aussi mentionné que je publierais sur mon blogue les ressources en questions mentionnées lors de la séance ainsi que les photos prises des tableaux.

Les voici :

Aussi, si vous voulez discuter ou poser des questions au sujet de la gestion visuelle, juste à mentionner le hashtag #GestionVisuelleQc sur Twitter. J’y participerai avec joie aux discussions qui pourront y avoir lieu.

Merci encore à tous les participants de l’atelier et à ceux de l’Agile Tour Québec 2010 en général !

Critique du livre Agile Samurai

The Agile Samurai: How Agile Masters Deliver Great SoftwareUn autre livre sur l’agilité ?

Bon, il parle de quoi ce livre, une autre méthodologie ?

Une autre manière différente d’appliquer l’agilité ?

Non, rien de tout cela.

Ce magnifique petit livre (250 pages environ) ne fait que nous réexpliquer les différentes facettes de l’agilité mais d’une manière un peu spéciale.

Tout est présentement de manière simple, abondamment illustré et drôle par moment.

Voici la description des différentes sections du livre :

  • Dans la première partie du livre, on commence avec la base, soit l’Introduction à l’agilité et la description d’une équipe agile et les rôles que l’on y retrouvre normalement.
  • Dans la deuxième partie, Agile Project Inception, j’ai particulièrement apprécié la section sur le début d’un nouveau projet et les choses à faire afin que l’équipe s’approprie davantage le projet. On y explique diverses activités telles que le Inception Deck, un Elevator Pitch et la conception d’un Product Box. Je vais sûrement tenter d’essayer ces techniques un jour au l’autre.
  • La troisième partie, Planification d’un projet Agile, on discute de User Stories, Estimation et comment être flexible avec le Scope d’un projet.
  • La quatrième partie, Exécution d’un projet Agile, le concept d’itération prend tout son sens et on aborde plusieurs notions pour aider à livrer régulièrement notre produit logiciel. On voit comment les notions des 3 premiers chapitres fonctionnent ensemble. Exemples:
    • Comme quoi faire à l’itération 0
    • Quand faire l’analyse fonctionnelle
    • Communiquer l’information à l’équipe
    • Faire un espace de travail visuel
  • Pour finir, la dernière partie, Création d’un logiciel Agile, on fait la revue des pratiques d’ingénierie Agile connues et éprouvées tels que les tests unitaires, le refactoring, le TDD et l’Intégration continue. Même si je connaissais très bien ces notions, c’était intéressant de les trouver résumé dans le livre en y mentionnant de bons arguments pour les pratiquer.

Donc, on revoit la plupart des notions de l’agilité, ses principes et ses pratiques. Mais remis au goût du jour avec plusieurs illustrations et de nouvelles manières d’expliquer l’agilité. Le livre est raconté de la manière étudiant-professeur (ou plutôt Maître Sensei et Aspirant Guerrier pour rester avec la thématique Samurai) afin de nous glisser de prodigieux conseils tout au long du livre. On sent que l’auteur, Jonathan Rasmusson, a fait plusieurs projets agiles et veux nous communiquer son savoir et ses trucs. Bref, on trouve ici un guide visuel sur l’agilité, rien de moins. Même si vous être expérimenté avec l’agilité, vous avez de quoi à apprendre que ce soit les conseils du maître Sensei ou certaines techniques moins couvertes ailleurs.

Certaines notions ne sont abordés qu’en surface, tels que les Users Stories et le Refactoring,  et pour bien les maîtriser, il faudra peut-être faire d’autre lectures.

Petit point à améliorer selon moi dans le chapitre 2 sur l’équipe Agile. Le rôle « Programmeur Agile » couvre un peu trop large. On aurait dû le diviser avec un autre rôle plus senior genre « Tech Lead » ou « Agile Architect ». C’est certain qu’à la base on veut effacer un peu les rôles traditionnels et rendre l’équipe multifonctionnelle. Sauf que cela prend quelqu’un qui se charge en autre du respect des normes, de coacher l’équipe, de faire le lien avec les autres systèmes de l’entreprise et d’avoir une vue globale de l’architecture.

Merci en passant Pragmatic Press de m’avoir donné une copie ebook du livre en version beta et finale afin que j’en fasse la revue.

Darts

Mes points clefs:

  • Avant de commencer un projet Agile, il a des activités à ne pas oublier
  • Toujours avoir en tête les principes du manifeste agile et comment les appliquer concrètement
  • Scrum et XP Programming y sont mélangés pour ne faire qu’un dans le livre.

Les références:

Critique de livre : The Five Dysfunctions of a Team

FiveDysfunctionsCover Ce livre n’est ni technique et ne parle pas d’agilité. Pourquoi donc j’en ai fait la lecture ? Et bien tout a commencé cet été lors de mon passage à la conférence Agile 2009 qui a eu lieu à Chicago, lorsque j’ai assisté à la présentation suivante :

Scaling Up by Scaling Down: A (re)Focus on Individual Skills

Dans cette présentation sur le comment faire progresser une équipe pour la rendre hyper-performante, on mentionnait le livre en référence. Intrigué, je me suis procuré le livre en question sur les 5 dysfonctions d’une équipe. En passant, la présentation a été filmée et vous pouvez donc l’entendre au complet sur le site d’infoQ:

http://www.infoq.com/presentations/scaling-up-by-scaling-down

Je vous la recommande fortement si vous voulez en savoir davantage sur le leadership d’équipe et le lien avec l’agilité. Le conférencier, Ashley Johnson,  parle avec un anglais qui est en général très facile à comprendre.

Pour revenir au livre, c’est un bon livre et j’ai l’est vraiment aimé. Il est d’ailleurs utile pour tout ceux qui sont intéressé par le travail d’équipe, peu importe leur rôle. C’est une lecture assez facile, cela m’a pris environ 1-2 semaine pour le terminer. De plus, son contenu est présenté ainsi, de manière peu conventionnelle:

  • Les 184 premières pages du livre racontent une "fable" sur le leadership.
  • C’est dans les 40 dernières pages que le modèle des 5 dysfonctions nous est décrit.

J’ai trouvé très instructif ce format. On nous fait découvrir graduellement la théorie des 5 dysfonctions d’une équipe à travers une histoire fictive, mais très réaliste. On devient rapidement accroché à l’histoire et on a hâte de voir la suite et comment l’équipe va réussir à corriger ces 5 dysfonctions. Ce format nous permet de comprendre la théorie à travers une histoire au lieu d’y aller directement avec la théorie sans trop de concret. Ah si les écoles fonctionneraient de cette manière…

Pour les 5 dysfonctions d’une équipe je les résume ainsi avec une traduction libre :

  • Manque de confiance envers les autres (Absence of trust)
  • Peur des conflits (Fear of conflicts)
  • Manque d’engagement (Lack of commitment)
  • Éviter la responsabilisation (Avoidance of accountability)
  • Inattention aux résultats (Inattention to results)

On doit commencer idéalement par résoudre la première dysfonction, ici le manque de confiance, et résoudre les autres en ordre par la suite pour finir avec le dernier, soit l’inattention aux résultats.

Vous trouverez le détail de ces dysfonctions dans les documents suivants disponibles:

Autre bon résumé si vous avez moins de 5 min, écouter l’auteur du livre, Patrick Lencioni, nous décrire brièvement les 5 dysfonctions:

 

Pour poursuivre mon habitude des points clefs, voici ce que je retiens de cette lecture :Darts 

  • Si on se retient de dire des choses de peur de confronter les autres, cela nuit grandement à rendre une équipe fonctionnel
  • Viser le consensus de toute l’équipe n’est pas toujours la bonne chose à faire. L’important c’est que tous les membres de l’équipe aient eu l’occasion de s’exprimer. Après, la décision passe beaucoup mieux au sein de l’équipe.
  • Je vois bien intégrer ce genre de modèle aux pratiques de rétrospective et d’amélioration continue d’une équipe Agile. À essayer donc lors d’un prochain projet.

Agile Tour 2009: Ressources post-événement

at2009_quebecPour faire suite à la conférence Agile Tour Quebec 2009, j’ai réuni dans ce blogue, des liens diverses qui parle de cet événement. S’il m’en manque, juste à m’en aviser et je vais mettre à jour cette page en les ajoutant.

Articles:

Présentations:

Blogues des présentateurs:

Acceptance Test Engineering Guide, volume 1 BETA2 release

image

Vous vous souvenez de Grigori Melnik ?

Il est venu l’an passé à la communauté Agile de Québec pour parler de l’approche Agile. Voir ici pour détail de cet événement passé : http://blogs.cunq.org/blogs/agileqc/archive/2008/04/28/201-v-233-nement-l-approche-agile-par-grigori-melnik.aspx

Et bien Grigori Melnik et son équipe viennent de compléter le beta 2 du volume 1de leur livre « Acceptance Test Engineering Guide ». Il demande à la communauté des volontaires pour faire la revue de ce volume 1.

Vous trouverez les détails à l’article suivant de son blogue :

http://blogs.msdn.com/agile/archive/2009/06/30/acceptance-test-engineering-guide-volume-1-beta2-release.aspx

Est-ce que le TDD augmente la vitesse de développement ?

Bon, retour à mon blogue après quelques mois de pause. Je me suis permis aussi un petit relooking à mon blogue.

image

Bon, revenons au sujet de ce blogue:

Est-ce que le TDD (Test-Driven Development) augmente la vitesse de développement ?

D’un point de vue d’un programmeur concentré sur sa tâche, la réponse est non. Les tests sont un surplus de travail pour lui.

Par contre, si ouvre un peu plus notre horizon et si on regarde pour voir quelle est la place de la tâche de programmation dans le processus global, on retrouve une nouvelle perspective:

L’activité de développement consiste à faire tout le travail pour amener un concept ou un besoin à se transformer en valeur ou si vous préférez turning concept into cash. Cela commence avec une idée et se poursuit avec la conception, l’implémentation et la livraison.

Alors oui, le TDD augmente la vitesse de développement car il permer de:

  • Écrire le code sans bogue ou défaut de conception au premier jet
  • Répondre avec précision au besoin du client
  • Diminuer la complexité
  • Rend le code "agile" et plus facile à modifier.
  • Et bien d’autres avantages…

Scott Bellware, toujours intéressant dans ses propos, parle de tout cela dans un récent article de son blogue. Je vous invite à aller lire l’article en question:

http://blog.scottbellware.com/2008/12/does-test-driven-development-speed-up.html

Outils pour l’agilité

j0431711 Kent Beck, l’un des fondateurs du XP Programming, a écrit récemment un article, "Tools for Agility", sur l’importance des outils avec les méthodologies agiles. Voici un petit résumé de ses propos:

Dans le manifeste agile on parle entre autre de miser davantage sur les individus et les interactions que sur les outils et les processus de développement lourds.

Mais cela ne veut pas dire qu’on n’a pas besoin d’outils. On ne parle pas ici de retourner à l’âge de pierre pour écrire nos plans de projet sur des murs de pierre !!!

La priorité des outils était dans une approche de type "Waterfall" est de supporter efficacement une activité donné. Maintenant, les outils doivent supporter efficacement le changement fréquent d’activité, comme c’est le cas avec l’agilité.

Comme on effectue des livraisons fréquentes de nouvelles fonctionnalités, il y a davantage de transitions entre ces activités. L’image suivante représente bien ce problème de transition dans un mode agile:

image

La plupart des pratiques agiles ont donc besoin d’outils qui sont ajustés à ce rythme de développement. On ne pourrait pas faire de l’intégration continue sans des outils comme CruiseControl, FinalBuilder ou VSTS. Même chose pour le TDD, le refactoring et la planification itérative.

Si vous voulez en savoir plus sur l’impact des outils dans un mode agile et aussi sur l’avenir de ces mêmes outils, je vous recommande de lire l’article en question:

Tools for Agility by Kent Beck