GTD (or Getting Things Done) is a famous productivity methodology. This node briefly describes how I implement it using org-mode.
In GTD, the entry point to all tasks is the inbox. Whenever I have a new task (either I want to do it, someone asked me to do it, I figured out I need to do it, etc), I invoke a simple capture template where I can simply type a one-line description of the task and have it filed to inbox.org. The idea is that this should be as simple as possible so that the cost of writing down tasks is close to none, and I can get it out of my head and focus on whatever is most important next.
The inbox quickly gets messy, since it has no priority or hierarchy structure at all, it is simply a dirty list of things to do. Once or twice a day, I will go through a process called organizing, whose goal is to empty the inbox - not by doing all tasks, but simply by estimating how long they'll take, thinking about the first step, assigning a priority and assigning them to a project.
This is implemented with two things. First, an ``agenda view'' lets me see only the tasks in the inbox. Then, an interactive command will ask about each of the things in sequence and end with the refiling of the task to a project. I keep projects in project.org, where each headline has a project (horizontally structured, no hierarchy of projects).
This typically takes 5 minutes at most with the typical amount of tasks I write down, so it also doesn't feel burdensome to do so.
Typically after organizing, I use an agenda view that shows all tasks in all projects that I can use to plan and prioritize tasks, taking into account both existing and newly arriving tasks.
By default, Org uses a simple 3-priority system, which I use to keep a very simple mental framework:
Usually, I'll try to have as many tasks with priority A as I can do in a single day. This agenda view shows things that are scheduled for the day, like meetings, so that I can see how much time I'll have to focus on longer tasks.
After the plan is set, I keep another more focused agenda view that only shows things that happen today and tasks with priority A, sorted by estimated effort. I'll typically work on these in sequence, using Org's clock system (or org-pomodoro) to track how much time I spend on each task.
Every day and every week, I'll review all I've done since the last review. This is implemented with an interactive command that reviews the last N days. It shows: