The difference between projects and actions
I've been tinkering with my to-do list system for ages but I keep coming back to the approach I read about in Getting Things Done by David Allen.
In my system, I separate between "Projects" and "Actions". In my projects file, I write down things I want to get done. So that's e.g. "Revised for AI exam". In my actions file, I write down all the tasks I can do right now to move my projects forward, e.g. "Read Chatper 11 of Russel & Norvig". The idea is that projects are things I'm trying to get done and actions are how I get there.
There's no real link between the projects and actions; I just have two lists. That's because there's a many-to-many relationship between the two, so I can have multiple actions for the same project but also multiple projects that have the same action.
I keep my actions file to only things I can do right now. That lets me rely on it when I'm doing work: when I'm on the clock, I open up this file and pick anything. I know I can do it right away; there's no thinking involved in this process which makes it easier for me to get work started.
I think this process helps me work effectively. Thinking back, I feel my most productive times were when I stuck to it. I can open up this file and bash through tasks whenever I have the time.
I notice that there isn't a program that goes with this way of work. It doesn't quite fit on Todoist or Things or whatever. I think it's because these programs don't treat projects the same way I do. They see projects as "here's a bunch of related tasks" rather than "this is a goal I'm trying to get to". Also, they define tasks as belonging to one project when I feel they can sometimes belong to many. That's why I stick with a plain text editor.
The main drawbacks to this approach mostly come from when I don't stick with it. It's easy for me to make massive projects like "Finish Version 2" or big tasks like "Refactor X". This is when the system falls apart and I get none of its benefits. There are some drawbacks from the system itself too, like I can't conveniently set reminders or due dates.