La todo-list pour geeks : todo.txt

Le premier outil que je vais passer en revue sur ce blog ne pouvait être qu’un outil pour gros geeks. Je vais donc vous parler d’un logiciel qui permet de gérer vos todo-list en mode texte, juste en utilisant la ligne de commande sous Unix (testé sous Linux, Mac OS X et Windows/Cygwin, mais ça doit marcher sur n’importe quel système Unix-like possédant l’interpréteur Bash) : Todo.txt

Présentation

Le parti-pris de ce logiciel repose sur deux choses :

  • Pour les gens qui se sentent confortables avec l’utilisation de la ligne de commande, rien n’est plus rapide que de taper quelques commandes dans un terminal.
  • Pour le stockage de données, vous ne trouverez jamais rien de plus universel, de plus simple à échanger, à interpréter et même à lire directement que les simples fichiers texte.

Hé, on ne peut pas leur donner tort. Fondamentalement, ces deux points sont vrais.

L’ensemble des fonctionnalités est accessible via un script shell. Voici une petite vidéo de démonstration qui explique plutôt bien comment il s’utilise :

Les réunions

Ah, les réunions… Suivant l’entreprise dans laquelle vous êtes, vous avez l’impression de ne pas en faire suffisamment ou au contraire d’en faire trop. J’ai connu les deux.

La recette

Voici les éléments-clés d’une réunion :

  • Un ordre du jour. Tous les participants à une réunion doivent savoir quel va en être le sujet. Cela peut être formalisé dans un email, ou être implicite si c’est une réunion qui se répète régulièrement. Mais si quelqu’un ne sait pas quel est le thème de la réunion à laquelle il se rend, pour pouvez vous attendre à une belle perte de temps.
  • Des participants. Oui, ça semble un peu bête. Mais pensez bien que toutes les personnes nécessaires aux prises de décisions doivent être présentes, sinon vous serez bon pour refaire une autre réunion par la suite. Évitez aussi les réunions où est conviée la moitié de l’entreprise « au cas où on aurait besoin d’eux » ; vous risquez surtout d’avoir des discussions sans fin qui s’éloignent du sujet, et des personnes qui perdent leur temps à se demander ce qu’elles font là. Si à un moment donné vous vous rendez compte que vous avez besoin de la présence d’une personne qui n’a pas été conviée, interrompez immédiatement la réunion pour aller chercher cette personne.
  • Des décisions claires. Trop souvent, les gens quittent une réunion parce qu’ils ont l’impression d’avoir fait le tour d’un sujet, ou par épuisement personnel. Il faut que les décisions prises à la fin de la réunion soient claires pour tous les participants. Si certains avis n’ont pas été tranchés, soyez clairs aussi sur cet état de fait, en notant éventuellement les impacts que cela peu avoir, et surtout en vous accordant sur les éléments qui empêchent de prendre la décision. S’il manque une analyse, notez à quelle date elle doit être terminée, et qui en est le responsable ; si la personne qui peut prendre la décision n’était pas présente ou n’a pas pu se décider, prévoyez immédiatement une prochaine réunion.
  • Un compte-rendu. Les décisions peuvent sembler claires en sortant de réunion, il n’en reste pas moins que chacun en gardera les souvenirs qu’il aura bien voulu mémoriser (ou qu’il aura daigné noter sur son cahier). Le seul moyen de s’assurer que la réunion sera suivie des effets prévus, c’est d’en rédiger un bilan qui sera envoyé à tous les participants. Impossible alors de se rétracter derrière le « Ah ? Je ne me souviens pas qu’on ait dit ça en réunion… ».

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.

De la modélisation à la réalité

La gestion de projet – et l’organisation en général – est une discipline très intéressante. On rencontre rarement deux fois la même situation. Entre les clients, les demandes fonctionnelles, les ressources disponibles, le facteur humain… les variables sont trop nombreuses. Et pourtant, on continue à chercher à modéliser les flux d’information en entreprise, on tente d’améliorer sans cesse la manière dont les projets naissent et vivent, on espère secrètement trouver la formule miracle qui fonctionnera à tous les coups et qui nous permettra de gérer les choses de manière optimale dans toutes les conditions.

Mais entre nous, franchement, on sait que ce n’est pas possible, hein ? Eh bien… c’est ce qu’on va voir.

Un modèle ?

D’après le dictionnaire, un modèle est une « représentation théorique d’un système d’éléments et de relations plus ou moins complexes ». Si la définition vous intéresse, vous pouvez toujours aller lire l’article consacré à la théorie des modèles sur Wikipédia. Un exemple : En électronique, on utilise des modèles mathématiques pour simuler le comportement de composants ; ces modèles ne sont pas « vrais » dans la mesure où ces composants ont une réponse différente de celle du modèle, mais cela permet à la fois de simplifier les simulations et de savoir vers quoi doit tendre le fonctionnement des composants réels.

Choisir ou être choisi

Quand on a un poste de manager, que l’on doit gérer des personnes, il y a une notion qui peut parfois faire une grande différence : avoir été choisi pour occuper ce poste, ou choisir les personnes que l’on aura à gérer.

Choisir

C’est l’option la plus confortable. Vous arrivez au tout début d’un projet, à la création d’un service ou d’une entreprise. Saisissez cette grande opportunité ! Vous allez pouvoir faire les choses à votre manière.

Recrutement

Votre équipe est vide, il va falloir la constituer. Vous allez pouvoir choisir les personnes qui vont vous rejoindre. Même si je ne vais pas m’étendre sur le sujet pour le moment (il est trop vaste), il n’en reste pas moins que c’est le meilleur moyen d’entamer une collaboration. Vous allez choisir ces personnes ; dès l’embauche vous aurez commencé à tisser des liens privilégiés. Cela ne garantit pas le succès d’une collaboration, mais ça peut grandement la faciliter.

Méthodes de travail

Vous pouvez mettre en place les méthodes que vous voulez, soit parce que vous les avez déjà rodées, soit parce qu’elles vous semblent pertinentes. N’ayez pas peur ! Ce ne sont pas vos supérieurs qui s’y opposeront : ils seront très heureux de s’en remettre à vous, et plus vous montrerez votre dynamisme à ce niveau, plus ils vous feront confiance.

CV, entretien… embauche ?

Reprenons depuis le début. Vous cherchez votre premier emploi, une meilleure place que celle que vous avez actuellement, ou bien vous ambitionnez un changement de poste plus radical. Vous avez choisi le type d’entreprise qui vous intéresse. À partir de là, les étapes sont assez évidentes.

  • Refaites votre CV.
  • Cherchez les entreprises qui correspondent à vos critères, par leur taille, leur secteur d’activité, les technologies employées, les postes disponibles. Sélectionnez les 2 ou 3 entreprises qui vous intéressent réellement, ainsi que 2 ou 3 autres seconds choix.
  • Envoyez vos CV à ces entreprises, en commençant par les seconds choix. L’idée est d’obtenir d’abord des entretiens dans une ou deux de ces entreprises, pour pouvoir s’entraîner avant de passer les entretiens qui vous intéressent réellement.

Concernant votre CV, je vous incite à lire mon billet consacré à ce sujet.

Les entretiens

Comme je le disais précédemment, essayez de passer au moins un ou deux entretiens dans des entreprises de second choix, avant de passer devant les recruteurs qui vous intéressent réellement. Passer des entretiens, c’est un peu comme une compétition sportive, il vaut mieux s’entraîner avant.

Votre curriculum

Qu’est-ce qui fait la différence entre un CV qui va finir directement à la poubelle, et un autre qui retiendra suffisamment l’attention pour conduire à un entretien ? Cela tient en 2 choses très simples :

  • Est-ce que les compétences nécessaires pour le poste sont présentées dans ce CV ? Évidemment, on ne va pas perdre de temps à lire le CV d’un développeur si le poste à pourvoir concerne l’administration de base de données.
  • Est-ce que les informations sont rapidement accessibles ? Un CV se lit en plusieurs passes, chacune plus longue et détaillée. La première passe prend moins de 10 secondes. Si en survolant votre CV en diagonale on n’en comprend pas les éléments-clés, vous avez tout faux.

Voici à mes yeux les caractéristiques que doit posséder un CV :

On apprend toujours

La première chose dont il faut être absolument persuadé, c’est qu’on a toujours des choses à apprendre en entreprise.

Quel que soit votre poste, quelles que soient vos responsabilités, quel que soit votre intérêt pour ce que vous faites, il y a de l’expérience à acquérir. Cela peut prendre des formes très variées :

  • Un collègue plus expérimenté vous transmettra son savoir technique.
  • Travailler sur un projet difficile vous forcera à revoir vos méthodes de travail.
  • Côtoyer d’autres personnes, qui oeuvrent parfois dans des domaines différents du vôtre, vous apprend les multiples facettes des relations humaines au travail.

Il est important de se lever chaque matin avec la ferme détermination d’apprendre quelque chose.

Une start-up ou une multinationale ?

Voilà une question que l’on me pose souvent : Vaut-il mieux rejoindre une petite entreprise ou un grand groupe ?

Le choix n’est pas évident de prime abord. Les deux ont des avantages et des inconvénients. Pour simplifier :

  • Petite entreprise
    • Vous participez pleinement à un projet. Vous êtes en contact direct avec les créateurs de l’entreprise. C’est motivant.
    • Vous n’êtes pas un simple numéro, des choses importantes dépendent de vous. On vous confie rapidement des responsabilités.
    • Votre progression professionnelle se fait au rythme de l’évolution de l’entreprise. Si l’entreprise fonctionne bien et grossit vite, vous progressez de même.
    • Vous avez du poids sur l’organisation et les méthodes. Si vous n’êtes pas content de l’organisation, vous pouvez en proposer une autre ; dans le pire des cas, on vous écoutera de toute manière ; dans le meilleur des cas, vos propositions seront utilisées.

Échelle différente, problèmes similaires

Une des choses que j’ai apprises au fil des années et des expériences professionnelles, c’est que les problèmes rencontrés sont globalement les mêmes quel que soit le niveau où l’on se situe. Ce n’est qu’une question d’échelle.

Prenons l’exemple qui nous intéresse particulièrement : la gestion de projet.

  • Un développeur éprouve souvent des difficultés à faire son travail dans de bonnes conditions. Ce qu’on lui demande de faire est très imprécis. Il a beau essayer de faire du mieux qu’il peut, ses supérieurs trouvent toujours quelque chose à lui reprocher (ce n’est pas fait assez vite, ce n’est pas fait assez bien, ce n’est pas fait dans le bon ordre…).
  • Un chef de projet s’arrache régulièrement les cheveux. Il a plusieurs projets à gérer simultanément, chacun étant classé « haute priorité ». Les demandes des clients sont systématiquement incomplètes. Les développeurs ne sont pas disciplinés et font ce qu’ils veulent quand ils le veulent.
  • Un directeur technique doit réussir à trier les différents projets, les affecter aux chefs de projets, suivre de près leur évolution. Il enrage souvent de ne pas avoir les remontées d’informations nécessaires pour anticiper les problèmes, de devoir pallier à la non-organisation de l’ensemble de ses collaborateurs et de passer plus de temps à « résoudre » et « corriger » qu’à « préparer » et « produire ».

Je ne vais pas expliquer maintenant comment il faut s’organiser pour gérer les projets (il y aura plusieurs autres billets sur ce blog à ce sujet). Mais ne voyez-vous pas qu’il y a des tendances qui sont les mêmes ?

Je vois 3 choses fondamentales :

  • L’information entrante : Elle n’est jamais satisfaisante. Si ce sont des spécifications, fonctionnelles ou techniques, elles sont incomplètes. Si c’est une liste de tâches à réaliser ou un ordre de mission, il n’est pas suffisamment clair. La question reste « Qu’est-ce que je dois faire ??? » (et par ricochet quand on doit gérer une équipe : « Qu’est-ce que je dois déléguer ? »).
  • L’organisation : Principalement, cela consiste à savoir qui fait quoi, et dans quel ordre. Et parce qu’elle est – à tort – considérée comme uniquement personnelle, l’organisation est souvent laissée à l’écart des processus globaux de gestion des projets. C’est une erreur, car c’est là que se joue la productivité des collaborateurs d’une entreprise.
  • L’information sortante : Il n’y a jamais de situation réellement insoluble en entreprise. Mais c’est par la qualité de nos remontées d’information que les problèmes pourront être anticipés, que les projets vivront correctement dans la durée, que nous devenons acteurs au lieu de spectateurs.

Ces trois points restent immuables, quels que soient votre poste et vos responsabilités.