I organize my work using an adaptation of several methods, among which Getting Things Done (GTD) and Deep Work. Mostly there are two aspects to it:
- Maintain a list of “projects” that I am working on, with relevant documentation and notes. Archive those projects once they’re done
- Maintain a list of tasks tightly. The key to tightness is to have a process to go through all the tasks regularly, and select those to be worked on. If you don’t have this process, you can’t trust the system. Tasks are categorized following an organization on which I’ve been going back and forth1, which I’m using to pick what’s next.
Maintaining the projects is dead easy, they’re files and folders, so any synchronization mechanism is ok. I used OneDrive at Microsoft, and WorkDocs at Amazon. For tasks, I have been using a variety of tools, including Trello, Any.do, Wunderlist, and Microsoft Todo. I’ve settled on that last one for a few years, but there are a few issues.
First, it is non-trivial to organize tasks in a way that makes them easy for retrieval: there’s a folder hierarchy, a vague notion of tags (#something) that really is just a search shortcut, and search. That makes me really uneasy because short of browsing all tasks every time, I feel like I’m missing something. And trust in the system is paramount. This makes the system ok for personal tasks, but a bit cumbersome for projects.
Second, I am taking notes of every discussion and meeting I attend using markdown. Most of the things I need to do are identified in these notes. Transferring those tasks from the notes to another tool is not only cumbersome and risky, I lose a lot of the context in the process. I came to realize that in practice, the divide between notes and tasks is not clear.
I discovered Org-Mode a few months and grew jealous of it. I used to be a vi person, and like vscode too much to switch to emacs in my late 30s. But the concept of being fully text-based, having everything in one place, and making the distinction between notes and tasks less strict was very seducing. For a while I used todo-plus, which made a light implementation for what I wanted to do, albeit not greatly. This extension, however good it is, is mostly built to instrument its own files (
*.todo), and is pretty feature poor when it comes to “embedded” todos, which is what I want to use. Convinced that this organization would work for me, I started building myself an extension over my vacations, thus came to life proletarian wizard2.
what is PW?
Proletarian Wizard is a VS Code extension that helps you organize your notes within a GTD-like organized set of folders. It provides two main sets of features:
- Organized file management, helping to quickly create projects, notes from templates, and archive these projects neatly. It also helps the navigation using keyboard only.
- To-do management, collecting todos from project notes, extend them with attributes, and summarizing these into flexible groups and sortings
Proletarian Wizard instruments an opinionated workflow, which central aspect is that of a project. Most of your life revolves around loosely defined projects that you need to lead to completion. Projects can be small (e.g. 2021-01-02 - Insurance renewal) or large (e.g. 2020-09-02 - Build a catapult to the moon). They can be administrative (e.g. 2021-01-12 - Employee review, 2021-03-01 - FY 20 taxes). Anything that can be completed is a project.
A project is the sum of its contents (notes, documents) and actions (todos). The workflow usually begins with creating a project and adding notes to it. This could be the notes for the first meeting about a topic, documents from an email you received, or ideas around a new initiative. They can also start with an un-categorized note in the inbox, to be categorized into a project later. Once a project is completed OR abandoned, it is archived. Pulling everything you have regarding a certain project in a single folder makes it very convenient for retrieval.
PW also instruments the notion of recurrences: those meetings and cadences that happen regularly and don’t really categorize as project, and which are more convenient to keep together (say, 1:1 meetings, planning sessions, monthly business reviews, etc.).
Another type of special recurrence is the daily note. I have a special command called “Open daily note” that either creates or open a daily note. This one serves multiple purposes:
- Instrument the daily planning process: find what’s expected of me, what I want to achieve myself, keep track of what people in my team are working on, take notes of the meetings that I’ll be in.
- Gather random todos that are not really worthy of a project
- Create a place for random notes, ideas, etc.
I sometimes find it a slippery slope as occasionally I would use the daily note for something that really should be a project, but it’s a fast access to a place where I can dump.
PW also instruments somewhat the management of reference folders. References are any documents and notes that you might want to retrieve in the future. Typically, these would be things such as procedures, training notes, reference documentation, certificates and software secrets, etc.
PW looks only at files in markdown. A lot of todos are defined while taking notes. When you accept that the distinction between notes and todos is fuzzy, merging both together makes a lot of sense. However collecting these from notes is complex. Proletarian Wizard offers a robust way to organize these, using projects as the background organization layer, adding to that: statuses, attributes, and a process to select the tasks you want to address on a given day.
Todos are identified with the
[ ] symbol at the beginning of the line (or after a list marker), which seems to be widely converted across Markdown renderers as checkboxes. A completed todo is marked
[x]. If you decide to delegate a todo, mark it
[d]. When you are in progress, mark a
[-]3. A todo is rarely done in one day, and often requires information found in various places: emails, IM, websites. When receiving new information about a todo, rather than scattering in different tools, add sub-items to keep track of what’s happening. PW offers a command to add the date to the beginning of the line by pressing
alt+.. This helps remembering what is happening. For example:
- [x] Gather date for monthly report @project(report) - [d] Write monthly report @assignee(Geraldine) @project(report) @due(2020-09-10) @selected - 2020-08-01: Lorraine asked to fill the new features section by Sept 1st - 2020-08-04: Asked Geraldine to do it - 2020-08-10: Checked with Geraldine, she needs more time - [ ] Send monthly report to Bernie @project(report)
To select todos you want to address today, add a
@selected attribute on their lines. This conveniently places those todos in a folder on top of the “Todos” window. On the topic of attributes, PW implements completion for both attribute names and attribute values.
Todos show thusly:
where to find it
extensions that work great with PW
I use a bunch of other addons to VS-code to make the project management as good as it gets.
Highlight is an extension that uses regexes to modify the text aspect. I’m using this to highlight todos within the notes themselves
Markdown notes adds some features to markdown, among which wiki-links, which makes it much easier to link notes together.
Markdown table prettifier to make markdown table line-up when displayed as text.
Paste image which allows to paste a picture within a markdown file using
At first I was hesitant about moving to a file based workflow because of portability. Most or all of the alternatives have a corresponding mobile app that lets you edit stuff “on the go”. I find this to be a feature, that helps me with creating a divide between work and life. That being said, sometimes I have brilliant ideas when I’m walking, or I don’t want to forget about something. For this I created a one-way sync mechanism: I create a task in a specific folder of Todo, then a logic app grabs it, adds it as a task to an “inbox” file in my workflow folder, and marks it complete in todo.
The only exception to the rule is for the personal stuff that I want to have “on the go” (mostly reading notes or random notes), I use notion - but mostly as a staging space.
GTD recommends categorizing by context, i.e. creating lists which you can pull from depending on where you are, and how much time and energy you have. I’ve never found the contexts that work for me, and I’m going back and forth between a priority based system, a context based system, a date-based system, or combination of all of these. ↩
I think there’s more to be done around status management, but I want to use this for a while before committing. ↩