Livre : Getting Real

Je vous ai déjà parlé de la société 37signals, au travers de ses outils Backpack et Basecamp. Je vais maintenant vous parler du livre qu’elle a publié en 2006 et qui contient toutes les règles de création et de gestion de projets web qu’elle applique en interne : Getting Real, The smarter, faster, easier way to build a successful web application.

Ce livre est disponible :

Le titre du livre est sûrement un gentil jeu de mots avec la très connue méthode Getting Things Done. Ce clin d’œil est une manière à peine déguisée de dire qu’il faut oublier toutes les méthodes existantes, faire table rase et suivre leur direction. Le livre décrit leur propre méthode agile, qui est censée s’appliquer à la réalisation d’applications web, mais peut être utilisée – au moins partiellement – pour d’autres types de projets ou d’organisations.

37signals

37signals a été fondée en 1999, exerçant une activité de web agency. Au cours des années, elle s’est fait connaître en publiant tout d’abord Basecamp, l’outil de gestion de projet utilisé en interne, puis le framework Ruby on Rails sur lequel Basecamp est basé. Depuis, 37signals a sorti plusieurs services en ligne, allant de la gestion de données jusqu’à la relation client, en passant par la messagerie de groupe. Leur blog d’entreprise, Signal vs Noise, qui parle aussi bien des outils édités par la société que de design et de développement web, est très connu et visité.

Basecamp

Je vais vous présenter aujourd’hui le logiciel Basecamp, qui est développé par 37Signals. C’est un peu le grand frère de Backpack dont je vous parlais la semaine dernière.

Là où Backpack visait à faciliter le stockage et l’échange d’information autour de projets, Bascamp va plus loin et propose des outils pour gérer plus finement le travail de groupe. On peut distinguer 5 fonctionnalités principales :

  • Les todo-lists.
  • La messagerie partagée.
  • Le partage de fichiers.
  • Les objectifs calendaires.
  • « Reporting » du temps passé sur chaque projet.

Auxquelles s’ajoutent des panneaux de vues globales sur un projet ou sur tous les projets.

Les todo-lists

(image © 37signals.com)

Je vous ai déjà expliqué pourquoi les listes sont à la base de toute organisation. Basecamp permet de créer facilement des listes et de les organiser comme on le souhaite. Très similaires à celles de Backpack, on peut éditer leurs titres en utilisant la syntaxe Textile (syntaxe wiki-like simplifiée), et leur affecter un état fait/à faire simplement en cochant ou décochant une case. Par contre, elles offrent la possibilité d’affecter une tâche à un utilisateur, ce qui était un des manques que je pointais du doigt sur Backpack.

Il est aussi possible de créer des listes privées, qu’on est le seul à pouvoir voir. C’est une bonne idée, qui permet d’avoir au même endroit les todo-lists générales et celles qui nous concernent ; cela évite d’avoir à gérer plusieurs systèmes de listes en parallèle.

La messagerie partagée

(image © 37signals.com)

On a beau classer nos emails dans des dossiers, il est toujours pénible d’y rechercher une information intéressante. On est souvent obligé d’ouvrir une demi-douzaine de messages – de quelques lignes chacun – avant de retrouver ce qu’on veut.

L’effet tunnel

Toutes les personnes qui ont géré une équipe connaissent l’effet tunnel. C’est lorsqu’il vous est impossible de connaître l’état d’avancement d’une tâche ou d’un projet et que vous n’avez pas d’autre solution que d’attendre que le travail soit terminé pour pouvoir l’évaluer.
Avant d’étudier les origines de ce mal et comment le prévenir, voyons pourquoi l’effet tunnel est très mauvais :

  • Vous n’avez aucune visibilité sur le planning. Comme il est impossible de savoir si la tâche sera terminée demain ou dans 2 semaines, il est tout aussi impossible de prévoir les retards sur l’ensemble du projet. Comment répartir les tâches et affecter les ressources lorsque vous ne maîtrisez pas la réalisation du travail ?
  • Vous ne pouvez pas redresser le tir si le projet part dans une mauvaise direction. Vous pourrez évaluer les dégâts qu’une fois que tout sera terminé. Et bien souvent, vous aurez alors le choix entre vous satisfaire d’une réalisation bancale (travail incomplet, qui ne répond pas aux spécifications, insensé à maintenir) ou tout recommencer à zéro.

L’effet tunnel a toujours pour origine les choix des individus à qui vous confiez les tâches, et la manière dont ils les abordent. Dans tous les cas, vous pouvez l’éviter avec de la diplomatie et de la méthode.

Le glandeur naturel

La plupart du temps, l’effet tunnel est le fait d’une personne à qui vous avez laissé la possibilité de glandouiller tranquillement. Laissez 5 jours à un développeur pour créer un nouveau module, et vous pouvez être certain qu’il va passer 3 jours à faire autre chose, puis 1 journée à se demander ce qu’il va faire et à se motiver pour le faire, puis passer 3 jours à coder comme un fou. Résultat, il sera en retard et aura oublié qu’il devait faire une documentation succincte.

Lorsque vous demandez à un glandeur naturel ce qu’il est en train de faire, il ne va pas vous répondre « Je surfe sur des sites de foot parce que le nouveau championnat commence bientôt », même si c’est ce qu’il a fait pendant les 3 dernières heures. Il va plutôt prendre un air très affairé, peut-être même semblera-t-il agacé que vous lui fassiez perdre son temps, pour vous faire comprendre qu’il est vraiment plongé dans le boulot jusqu’au cou. Vous repartirez avec pour seule information « Je suis en plein dedans, c’est bientôt fini, je te préviendrai quand ce sera bon« , et une indéfinissable impression de vous être fait bananer.

Livre : Managing Humans

Je vais vous parler un peu d’un très bon livre, nommé Managing Humans, écrit par Michael Lopp et publié par Apress en 2007. Depuis 2002, il tient sous le pseudonyme de Rands le blog Rands in repose, dans lequel il parle de ses expériences en tant que manager d’équipes techniques. Et il en a des choses à dire, le bougre, après avoir travaillé pour Symantec et Netscape, entre autres.

Managing Humans - couverture

Le sous-titre du livre est assez explicite : « Biting and humorous tales of a software engineering manager ». Le livre est truffé d’anecdotes amusantes, de mises en situation réelles ou imaginaires, qui en font un ouvrage à part dans l’univers très fourni des livres dédiés à la gestion de projet et au management.
Personnellement, j’ai une affection particulière pour ce livre. Je l’ai acheté à sa sortie en 2007, alors que j’étais en train de créer mon entreprise. Je n’y ai pas trouvé de recette miracle, mais plein d’exemples de choses à faire ou ne pas faire ; je pense avoir évité plusieurs pièges dans la création de mon équipe grâce à ce livre.

Ne pas être un con

Le premier chapitre du livre se nomme « Don’t be a prick ». L’ensemble des 209 pages pourrait être résumé dans cette simple phrase. Ça paraît débile tellement c’est simple. Mais au cours de ma carrière, j’ai franchement rencontré tellement de personnes qui agissaient comme des gros cons, que ça mérite d’être souligné. Que ce soit par bêtise, inexpérience, indélicatesse, fainéantise, vanité ou parce qu’ils n’avaient rien à faire à ce poste, il est sidérant de voir combien de dirigeants sont inaptes à gérer les hommes et les femmes qui composent leurs équipes.

Le carquois du management

Rands utilise une métaphore assez intéressante. Il dit que nos compétences en management sont comme des flèches dans un carquois. Quand on rencontre un problème, on peut prendre la flèche appropriée, prendre un peu de recul, viser et tirer. C’est le titre qu’il a donné à la première partie du livre.

Les méthodes agiles

Cet article fait suite à ceux consacrés au cycle en V et au cycle itératif. Dans l’histoire des méthodes de gestion de projets informatiques, les méthodes agiles sont une évolution relativement récente qui tente de résoudre certains défauts des pratiques qui étaient en usage jusque-là.

Le manifeste agile

La définition de toutes les méthodes agiles est synthétisée par le Manifeste agile, qui a été rédigé en 2001 par plusieurs acteurs de ce domaine. Il distingue 4 valeurs fondamentales et 12 principes.

Les 4 valeurs

(traduction © Wikipedia et al)

  • L’interaction avec les personnes plutôt que les processus et les outils.
  • Un produit opérationnel plutôt qu’une documentation pléthorique.
  • La collaboration avec le client plutôt que la négociation de contrat.
  • La réactivité face au changement plutôt que le suivi d’un plan.
Les 12 principes

(traduction © Wikipedia et al)

  • Notre première priorité est de satisfaire le client en livrant tôt et régulièrement des logiciels utiles.
  • Le changement est accepté, même tardivement dans le développement. Les processus agiles exploitent le changement comme avantage compétitif pour le client.
  • Livrer fréquemment une application fonctionnelle, toutes les deux semaines à deux mois, avec une tendance pour la période la plus courte.
  • Les gens de l’art et les développeurs doivent collaborer quotidiennement au projet.
  • Bâtissez le projet autour de personnes motivées. Donnez leur l’environnement et le soutien dont elles ont besoin, et croyez en leur capacité à faire le travail.
  • La méthode la plus efficace de transmettre l’information est une conversation en face à face.
  • Un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet.
  • Les processus agiles promeuvent un rythme de développement soutenable. Commanditaires, développeurs et utilisateurs devraient pouvoir maintenir le rythme indéfiniment.
  • Une attention continue à l’excellence technique et à la qualité de la conception améliore l’agilité.
  • La simplicité – l’art de maximiser la quantité de travail à ne pas faire – est essentielle.
  • Les meilleures architectures, spécifications et conceptions sont issues d’équipes qui s’auto-organisent.
  • À intervalle régulier, l’équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son comportement dans ce sens.

Application concrète

Il existe plusieurs méthodes qui suivent l’esprit du manifeste. Elles ont chacune leurs spécificités, mais de manière globale elles œuvrent toutes dans les mêmes voies.

Backpack

Je vais vous parler de Backpack, un outil réalisé par 37Signals, une entreprise dont nous aurons l’occasion de parler de nouveau.

Backpack se définit comme un outil d’organisation et de partage d’information. Voici des images qui vous feront comprendre rapidement de quoi il retourne :

(image © 37signals.com)

(image © 37signals.com)

Fonctionnalités

Ce logiciel est d’une grande simplicité d’utilisation. Sa fonctionnalité principale est la création de « pages ». Une page est, comme le montrent les exemples ci-dessus, la combinaison de plusieurs éléments :

  • Des listes minimales, qui comprennent juste un titre et un état fait/à faire.
  • Des notes, composées d’un titre et d’un texte.
  • Des « writeboards », qu’on peut assimiler à des pages de wiki simplifiées.
  • Des pièces-jointes (uniquement disponibles dans la version payante).

Livre : Getting Things Done – Présentation

La méthode Getting Things Done (ou GTD en abrégé) a été inventée par David Allen et publiée en 2001 dans un livre nommé « Getting Things Done – The art of stress-free productivity ». L’ouvrage a été traduit en français sous le nom « S’organiser pour réussir – La méthode GTD ou l’art de l’efficacité sans le stress ».

Getting Things Done - David Allen - couverture

Malgré son nom un peu ronflant (sans parler du « sous-titre » qui est une perle marketing), cette méthode bénéficie d’une très grande notoriété. On ne compte plus le nombre de sites qui y sont consacrés ni le nombre d’outils qui s’adaptent à ses recommandations.

Le principe

La première chose à savoir est que GTD est une méthode d’organisation personnelle. Vous pouvez l’utiliser pour être plus efficace dans votre travail et dans vos occupations personnelles, mais vous ne pourrez pas vous baser dessus pour définir l’organisation de votre équipe ou de votre entreprise.

Contrairement à la plupart des méthodes qui tentaient d’organiser la gestion du temps, la méthode GTD se concentre sur la réalisation des tâches qui nous incombent. Pour cela, il faut se reposer sur un système unique pour recenser l’ensemble des tâches, identifier leur ordre de priorité, et passer en revue cette liste très fréquemment pour en cataloguer les éléments.

Je vais vous donner les grandes lignes de ce qui fait la force de cette méthode d’organisation. Je reviendrai sûrement sur le sujet dans le futur, tant il est vaste. Mais nul besoin de lire les 287 pages du livre pour en comprendre les concepts les plus importants.
Un schéma récapitule l’ensemble du processus (il est d’ailleurs répété 4 fois dans le livre !).

Getting Things Done - déroulement

Le cycle itératif

Si vous avez lu mon billet sur le Cycle en V, vous savez pourquoi ce type de méthode de travail n’est pas adapté à la plupart des projets informatiques, qui réclament une plus grande souplesse. En l’appliquant de manière rigide, on finit par obtenir des logiciels mal adaptés (fonctionnalités sans priorités), livrés en retard (chaque étape bloque les suivantes) et souvent buggués (la technique se plie au fonctionnel).
C’est ainsi qu’est née la méthode du cycle itératif (ou incrémental), qui tente de formaliser une approche plus pragmatique et maniable.

Cycle itératif

Définition

Cette méthode se décompose en 6 étapes, dont 4 qui en constituent le « coeur » :

  • L’expression de besoin : Le client explique ce qu’il veut obtenir. On peut faire un parallèle avec l’étape de faisabilité du cycle en V, et dans une moindre mesure avec les spécifications fonctionnelles. L’idée reste que les informations en entrée peuvent être modifiées par la suite du processus.
  • Le coeur du processus itératif :
    • Spécification : C’est la traduction en langage technique des besoins fournis en entrée. C’est la réponse aux questions « qu’est-ce qu’on fait ? » et « comment on va le faire ? ».
    • Développement : Il s’agit de la réalisation concrète de ce qui a été défini.
    • Validation : C’est l’ensemble des tests qui permettent de s’assurer que le développement effectué correspond bien à ce qui était attendu.
    • Évaluation : Cette étape sert à effectuer un retour sur les écueils rencontrés et les fonctionnalités abandonnées pendant les 3 étapes précédentes, et l’utiliser comme informations d’entrée pour un nouveau cycle.
  • Déploiement : Les livrables qui ont été validés sont déployés pour que le client y ait accès.

Le cycle en V

Le cycle en V est une méthode d’organisation très connue dont l’origine remonte à l’industrie et qui a été adaptée à l’informatique dans les années 80. C’est l’une des premières méthodes qu’on apprend à l’école, et elle reste toujours d’actualité.

La grande force du cycle en V, c’est qu’il définit assez précisément la manière dont les choses devraient se passer.

Cycle en V - théorie

On peut y distinguer 3 grandes parties : La phase de conception, la phase de réalisation (codage) et la phase de validation. Les phases de conception et de validation se découpent en plusieurs parties. Chaque étape ne peut être réalisée qu’une fois que l’étape précédente est terminée, ce qui diminue les prises de risque sur le projet.
Ce qui est bien visible sur le diagramme, c’est que chaque étape de conception possède son alter ego de validation. Il devient alors assez aisé de valider un projet, car le référentiel de test est connu très précisément.

Les différentes étapes

Le cycle en V est constitué de 9 étapes qui ont toutes leur importance.

Les listes

Les listes constituent le « niveau zéro » de l’organisation. Quand j’utilise cette expression, ce n’est pas pour dire que les listes ne servent à rien, mais bien qu’elles sont la base de toute organisation, qu’elle soit personnelle ou collective. Vous ne pouvez pas espérer mettre en place une méthode de travail complète si vous n’êtes pas capable de gérer une simple liste de chose à faire.

Je vais détailler 3 types de listes : les listes de choses à faire (todo-list), les listes de bugs (buglist) et les listes de choses à vérifier (checklist).

Todo-list

Il s’agit du plus évident. Tout le monde, un jour ou l’autre, a noté quelque part une liste de choses à ne pas oublier ou de courses à acheter. Le premier pas en direction d’une organisation personnelle efficace est la tenue d’une liste de tâches. À chacun de faire de la manière qui lui semble la plus confortable, et en la matière il existe une quasi-infinité de recettes : utiliser un cahier ou un bloc-notes qu’on peut emmener partout avec soi, tout noter sur des post-it qu’on collera dans une pochette ou un classeur, utiliser la todo-list intégrée à notre logiciel de messagerie électronique, éditer des fichiers bureautiques (traitement de texte ou tableur), utiliser un wiki ou un système dédié à la tenue de todo-list.

Dans le cadre professionnel, il faut dissocier 2 types de todo-list :

  • Les listes de tâches que chaque employé doit tenir, et qui lui permettent de ne pas perdre le fil du travail qu’il a à réaliser. On est alors complètement dans le cas d’une liste que chacun est libre de tenir de la manière qui lui convient le mieux.
  • Les listes de tâches relatives à chaque projet. Celles-ci doivent être visibles par toutes les personnes ayant un rapport avec le projet. Il est important de savoir où le projet en est de manière globale ; c’est motivant pour tous les intervenants, mais c’est aussi nécessaire aux managers pour effectuer un suivi de l’avancement du projet. Il faut que les managers puissent modifier la liste de tâches, et que les personnes à qui elles sont assignées puissent indiquer la progression du travail.