Why it's awesome
I've tried to find some task-tracking system that works for me personally for years now. Despite all the high tech solutions available, I've always used pen and paper and then transcribed my information into different tools when needed.
With Org-mode, I've finally found something computer-based that I can adapt to my needs.
Most PIM systems require you to make a decision upfront about what you're creating. Is it a todo item? A checklist? Is it a random side-note? An appointment?
Even with the best UI, being asked to categorize the task is enough to take you away from the mental context you're in. For a brainstorming session, which usually takes place in a creative setting, you can permanently lose some ideas in the context-switch.
Conventional wisdom solves this by having you take free-form creative notes first, and then structure them afterwards. At best, this would be during the planning session's downtime. Even then, though, you need to have mastered your tools enough to take advantage of built-in calendars, reminders, and trackers without losing your train of thought.
Org-mode keeps you in the flow.
Fundamentally, in Org-mode, you're just adding supplemental annotations to your unstructured, free-form notes.
Single points of reference
This simple non-structure lets you keep all information associated with a task or event in one spot.
Linking between and within files is also done in a dynamic and natural way, so you can keep a single point of reference without having to copy/paste arbitrary reference strings.
For instance, typing in
[[foo]] will create a link to the first occurrence of 'foo' in the document, done internally as a search, so the anchor point won't ever be out of sync with the anchor content.
All annotations are human-readable and editable as plain text.
TODO in front of a bullet point is enough to mark it as a task, or
DEADLINE followed by a date in angle brackets to mark a deadline.
All such annotations have faster ways of entering them, but the end result is always something that can be edited and that makes sense as plain text.
Because emacs cas the capacities of an IDE, you get everything you're used to in an IDE.
This comes in handy for easily viewing different task states
Folding Code Blocks
In this case, the 'code blocks' are bullet points for an outline, but it lets you hide away long chunks of text that might not be relevant.
Actually, quite a few features center around giving you a folded/unfolded configuration that surfaces the most relevant information.
Though this requires an additional component, you can get outlines of multiple files on a side pane, so you can see where specific tasks and events are defined.
There are quite a few per-file directives that can be included depending on what IDE behavior you want while handling that given file. Though this wouldn't make sense with normal source files, it's very convenient here when the content of every file can vary so greatly.
Support from the Emacs universe
Emacs lends itself to heavy tweaking and customization, and this particular extension has been used for over a decade, so there are plenty of user plugins available to create whatever behavior you might need.
Why it's not so awesome
Of course, there are pain points as well. These are some of the biggest ones I've encountered.
Confined to the Emacs universe
A bit of a double-edged sword 😀
For instance, I've set up a sync with Google Calendar, but the code is very brittle, uses some hacks to make these two formats compatible and will most likely take hours of tweaking to fix if/when anything changes with Google API.
Requires an IDE
Though it's great while using a computer or laptop, it comes from an era without cloud storage and mobile dominance, and it shows.
There is MobileOrg, which allows you to read and write org files (syncing via WebDAV), but the use cases with mobile just don't as easily lend themselves to unstructured annotated text, meaning without an IDE and a keyboard, there's no clear advantage anymore.
You need to be a programmer
This isn't strictly true, of course, but it definitely helps.
I like having desktop notifications about calendar activities, and it only took me a few hours to find out how to get Emacs to produce them in OSX. For a non-technical person, making this small tweak might be impossible.
There's lots of documentation available, but you need to come in with a heavy amount of programming experience to really make it work for you.
No reasonable defaults
This is also subjective, but the default settings and appearance make it feel unusable. As mentioned above, you can change this, but not without significant time and effort.
I'll write a future blog post about the changes I made, along with why.
All that being said, I really like it; I've been using it to organize tasks for the last few months and I keep finding new, useful, 'hidden' features in it every day.
So, use it if:
- You are an efficiency nerd
- You want a heavily customized task/note-taking/scheduling system
- You are comfortable with programming
- You're ok with picking up a new programming language (elisp)
- You want to design your perfect workflow system
Do not use if:
- You don't know your own workflow well enough describe your ideal system
- Building a system like the above doesn't sound fun for you
- You do task/note-taking/scheduling more on mobile devices than desktop