Agenda : mon système de gestion des todos

Pour réduire la charge mentale liée à la prise de décision, j’utilise une liste de case à cocher pour déterminer ce que je dois faire chaque jour. J’appelle ça mon agenda, et avec mon calendrier, ce sont les deux outils principaux qui me permettent de m’organiser et d’améliorer ma productivité au quotidien. Le calendrier me permet de réserver du temps pour travailler sur un sujet donné, et l’ agenda me permet de savoir quoi faire précisément pendant ce temps. Avec l’expérience, j’ai adopté un workflow assez précis, et comme aujourd’hui j’ai décidé de programmer ma propre application pour gérer les todos, je me suis dit que c’était la bonne opportunité pour résumer comment je m’en sers.

Le but de l’agenda est double : (1) me souvenir de ce que je dois faire pendant la journée ; (2) garder une trace de ce que j’ai fais chaque jour pour pouvoir faire des graphes a posteriori.

Garder un historique de ce que l’on a fait permet d’analyser les motifs récurrents d’une semaine sur l’autre et de mettre en œuvre la méthode Seinfeld.

Habits tracking

J’utilise mon agenda pour gérer plusieurs types de tâche. En premier lieu, je m’en sers comme d’un habit tracker, c’est à dire que pour chaque habitude quotidienne, j’ai une ligne pour me rappeler de l’effectuer. Voilà un exemple de cases que j’ai chaque jour :

[x] Réveil à 7h
[ ] Quitter la maison à 7h50
[ ] M'étirer au moins 5mn

Ensuite, j’ai aussi des cases spécifiques à chacun des jours de la semaine, par exemple, chaque mardi je vais à la boxe et je dois me souvenir de prendre un repas supplémentaire pour manger avant l’entrainement :

Mardi
[x] Réveil à 7h
[ ] Mettre un repas pre-workout dans mon sac
[ ] Quitter la maison à 7h50
[ ] M'étirer au moins 5mn
...

Et plus généralement, des habitudes récurrentes à intervalles réguliers, comme par exemple recharger ma carte de cantine une fois par mois.

Mon application est programmée pour afficher les tâches appropriées chaque jour, et pour réagir intelligemment lorsqu’une tâche n’est pas exécutée. Par exemple, si je ne fais pas les lessives ou si j’oublie de prendre le repas dans mon sac, je dois changer le programme des jours à venir pour en tenir compte (faire les lessives un autre jour, et manger le repas à un autre moment pour qu’il ne se périme pas). Dans ces cas, mon script programme automatiquement une nouvelle tâche “reprogrammer les lessives” pour que je me souvienne de mettre mon calendrier à jour en fin de journée.

Autres tâches à exécuter

Quand une tâche est importante, je réserve du temps pour l’exécuter dans mon calendrier. Ça réduit considérablement la charge mentale puisque je n’ai pas besoin de décider si je veux l’exécuter maintenant, ou si j’ai assez de temps pour m’en charger. Je sais que c’est prévu et que j’ai le temps nécessaire à disposition.

Mais il m’arrive aussi d’avoir des petites choses à faire, qui ne prennent pas beaucoup de temps. Comme envoyer un message à quelqu’un, ou modifier une typo dans un document. Si ce n’est pas urgent et pas très important, je ne les programme pas dans mon calendrier. Je les mets dans mon agenda et je m’en charge dès que j’ai un moment de libre. Par exemple, si je finis mon travail à l’avance ; dans le métro ; ou pendant l’heure de rien que me je réserve chaque jour. Et si au bout d’un moment je me rends compte qu’une tâche n’est jamais exécutée, je réserve un créneau spécifique dans mon calendrier.

Ces tâches sont automatiquement reportées d’un jour sur l’autre par mon programme. Lorsqu’une tâche est reportée trop de fois, le programme signale qu’il faut lui réserver un créneau.

Quelques règles pour une checklist efficace

Il y a quelques principes clés pour utiliser une checklist à bon escient. Une checklist mal utilisée est source de stress et de frustration, alors qu’une checklist rédigée correctement est un outil formidable pour réduire la charge mentale et le stress.

Réduire la charge mentale. Le premier avantage d’une checklist c’est d’avoir un endroit où tout ce que l’on a à faire est écrit. On a pas besoin de garder les tâches en tête pour s’en souvenir, et on ne risque pas d’oublier. Ça libère l’esprit et la mémoire de travail pour penser à des choses à plus forte valeur ajoutée.

Éliminer le willpower. À chaque décision que l’on prend, nos réserves de willpower diminuent. Lorsqu’elles sont trop faibles, on prend des décisions sous-optimales et on finit par procrastiner. Pour éviter de fatiguer son willpower, les tâches sur l’agenda ne sont pas négociables. Si c’est écrit, il faut le faire. Aussi, avant d’ajouter une tâche dans l’agenda, il faut être bien certain que l’on veut s’engager à l’exécuter.

Finir l’agenda chaque jour. Une checklist n’est pas une liste de rappels pour les tâches que l’on aimerait exécuter “un jour”. C’est une liste de tâches à exécuter aujourd’hui. L’objectif est d’avoir coché toutes les cases avant de se coucher. Aussi, il ne faut pas y mettre des choses si l’on sait d’avance qu’on n’aura pas le temps de les faires, ou si l’on sait qu’on ne peut pas encore les faire. Sinon la liste devient source de stress. Si l’on est sans cesse confronté à une liste trop grande de tâches à exécuter, on a jamais l’impression d’avancer. Si l’on ne boucle pas sa checklist chaque soir, on n’a pas le plaisir de finir sa journée et de se dire qu’on a été productif. L’effet psychologique est subtil mais finit par mener à l’arrêt du système.

Pour arriver en haut des escaliers, il faut commencer par la première marche.

N’écrire que des tâches exécutables. Pour réduire les opportunités de procrastiner, il faut programmer des tâches atomiques et directement exécutables plutôt que des objectifs finaux. Il faut être très précis pour limiter le plus possible le besoin de réflexion avant d’agir. Par exemple, on écrit “mettre le repas dans mon sac” plutôt que “repas”. Et si la tâche à exécuter comporte plusieurs sous-tâches, il faut écrire les sous-tâches. Par exemple “modifier les couleurs de mon site” plutôt que “travailler sur mon site”. Une bonne astuce, c’est de commencer chaque élément de la liste par un verbe à l’impératif et de se demander si un robot pourrait comprendre l’ordre que l’on vient d’écrire.

Ne pas importer les détails des projets. Pour réduire la charge mentale nécessaire à la consultation de l’agenda, il vaut mieux ne pas écrire trop de détails concernant les projets à long terme. Le temps de travail sur un projet donné doit être programmé dans le calendrier, et si le projet est complexe, il vaut mieux avoir une checklist séparée, spécifique pour ce projet, que l’on consulte à chaque fois qu’on y travaille.

Une checklist n’est pas l’inbox. L’inbox c’est une liste dans laquelle on écrit au fur et à mesure de la journée. On y met ce dont on veut se souvenir, les tâches qu’il faudra planifier, etc. Chaque soir, on traite son inbox en faisant ce qu’il faut pour trier ou traiter chaque élément qui y figure, par exemple en programmant certaines tâches dans notre calendrier. Mais l’inbox, c’est une liste séparée et il ne faut pas utiliser sa checklist comme inbox. En revanche, on peut tout à fait mettre une case dans l’agenda pour se souvenir de:

[ ] vider l'inbox

Dans le reste de cet article, j’explique comment j’ai programmé mon propre système.

Un système basé sur du texte

En tant que programmeur, j’essaie de capitaliser sur mes capacités en automatisant le plus de tâches informatique possible. Mais programmer une vraie application prend du temps, et bien souvent il vaut mieux utiliser ce qui existe dans le commerce. Par exemple, c’est irréaliste de vouloir refaire Evernote en quelques heures dans son coin. En revanche, créer un petit script pour manipuler des fichiers textes, c’est très simple et suffisamment rapide. Alors, est-ce que je peux utiliser des fichiers textes pour faire ce dont j’ai besoin ?

Je peux avoir un script qui crée un fichier texte chaque jour sur mon bureau. Dans le fichier, j’ai un todo par ligne, et il me suffirait d’ajouter un x devant un todo pour le marquer comme fait. Quelques chose du genre :

[x] réveil à 7h
[x] partir de la maison à 7h45
[ ] écrire dans mon journal

Chaque soir, le script lit le fichier pour voir les tâches à reporter, archive le fichier dans un dossier et crée le fichier du lendemain. Ensuite, je peux utiliser un système de markup pour décider sur une tâche peut-être reportée ou pas. Par exemple ! pour dire que c’est à faire obligatoirement dans la journée ; une date pour spécifier une échéance.

[x] réveil à 7h !
[x] partir de la maison à 7h45 !
[ ] écrire dans mon journal
[ ] finir devoir de proba (01.02.2019 8h00)

Je peux même envisager que mon programme lise la liste de note à certaines heures dans la journée pour vérifier qu’une tâche est exécutée, et qu’il m’envoie une notification sinon. Bref, la seule limite c’est mon imagination.

Synchroniser sur mon smartphone

Devoir ouvrir mon ordinateur pour chaque tâche effectuée serait trop fastidieux donc j’ai besoin de synchroniser les todos sur mon iPhone. L’avantage d’utiliser du texte, c’est que je peux simplement créer une nouvelle note dans une application comme Evernote ou Google Keep et laisser l’application s’occuper de la synchronisation entre mon PC et mon smartphone.

Une bonne application pour faire ça doit :

Evernote est assez lent à l’ouverture, donc j’ai décidé d’utiliser Google Keep qui est réputé pour être très rapide. Il y a une API non officielle pour python. Et en plus, ils ont une interface graphique exprès pour les todo-listes que je vais pourvoir utiliser.