The 1-3-5 Rule
Oct 9, 2021 18:58 · 796 words · 4 minutes read
The 1-3-5 Rule is something I picked up from a dear one. It aims to provide “consistency” in executing list-oriented tasks. My work-flow nowadays can be basically summarised in a list(maintained in one org file) that I version, hence it’s useful utility.
The underlying idea of the 1-3-5 heuristic is to make you “active” in “deciding” what to work on. From a list of tasks you choose 1 important task; 3 intermediate tasks; and 5 trivial tasks; and most importantly, limit your day to just those. How you assign the importance of tasks is up to you. One possible metric is using “time”; whereby longer tasks are assigned a higher priority. Personally, I try to have my important tasks to be work(as in day-job work) during the weekdays; and on the weekends school work. Here’s an example of tasks I have:
TODO [#A] Use UUIDs to identify groups :genenetwork: TODO [#B] Set-up ledger :personal: TODO [#B] Fix broken tests in gn2 :genenetwork: TODO [#B] "resource-management" endpoints :genenetwork: TODO [#C] Daily Programmer :Code: TODO [#C] Fix python-funcparserlib :genenetwork:guix: TODO [#C] Rework CSVdiff tool from Arun's review :genenetwork:guix: TODO [#C] Document authwork :genenetwork: TODO [#C] Go through Principle of DataScienc videos :strathmore:
A few pointers:
I mix work, guix, personal, and school work on the 1-3-5 list. I always prioritise work. This makes things balanced, so I don’t fall back on school work.
I don’t tackle things in order. Whenever I feel exhausted, or just not like doing anything productive, I’d look at the #C tasks, since those tend to be easy to do.
Some tasks go unfinished for a while. From the above: “Document authwork” seems to be one of those. If it goes for long enough, I’d escalate it to a “#B” so that I force myself to look at it.
It’s nice to aim to finish all 9 things in a day, though at times that’s not practical. It’s okay to not finish everything. Aiming to do the #A task, and most of #B tasks keeps you moving at a nice pace.
Knowing what to work on the #A tasks become clear, more-so because we have our stand-ups. This system plays nicely with what to speak about on “what you worked on” during stand-ups.
Sometimes you have to break down tasks further; or clarify them better.
I tend to assign what to work on at the end of my day(most of the time), or occasionally at the very beginning of the day. That choice is up to you.
I don’t consider some things like: “checking and responding” to e-mails; looking up matrix/ IRC; or stand-ups as “tasks”. Those are labelled as “chores” that need to be done in a time-box.
With time you realise how much small things scream for your attention, and if you can’t rank it, best to avoid doing it for your sanity.
How I weave this in org-mode(for Emacs-en users)
I have a couple of templates for my org work:
(cl-defun my/make/org-capture-template (shortcut heading &optional (no-todo nil) (description heading) (category heading)) "Quickly produce an org-capture-template. After adding the result of this function to ‘org-capture-templates’, we will be able perform a capture with “C-c c ‘shortcut’” which will have description ‘description’. It will be added to the tasks file under heading ‘heading’ and be marked with category ‘category’. ‘no-todo’ omits the ‘TODO’ tag from the resulting item; e.g., when it's merely an interesting note that needn't be acted upon. ─Probably a bad idea─ Defaults for ‘description’ and ‘category’ are set to the same as the ‘heading’. Default for ‘no-todo’ is ‘nil’. " `(,shortcut ,description entry (file+headline org-default-notes-file ,(concat heading "") ;; ,(concat heading "\n#+CATEGORY: " category) ) , (concat "*" (unless no-todo " TODO") " %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n") :empty-lines 1)) (setq org-todo-keywords (quote ((sequence "TODO(t)" "STARTED(s@/!)" "|" "DONE(d/!)") (sequence "WAITING(w@/!)" "ON_HOLD(h@/!)" "|" "CANCELLED(c@/!)") (sequence "MEETING(m)" "IN_PROGRESS(i@/!)" "FINISHED(f/!)" "|" "DROPPED(d@/!)")))) (setq org-todo-keyword-faces (quote (("TODO" :foreground "green" :weight bold) ("STARTED" :foreground "yellow" :weight bold) ("DONE" :foreground "orange" :weight bold) ("WAITING" :foreground "brown" :weight bold) ("ON_HOLD" :foreground "grey" :weight bold) ("CANCELLED" :foreground "red" :weight bold)))) (setq org-capture-templates `( ,(my/make/org-capture-template "g" "Tasks, Genenetwork") ,(my/make/org-capture-template "s" "Tasks, Strathmore") ,(my/make/org-capture-template "d" "Daily Programmer(Algorithms)") ,(my/make/org-capture-template "x" "Tasks, Guix") ,(my/make/org-capture-template "r" "Research") ,(my/make/org-capture-template "m" "Email") ,(my/make/org-capture-template "e" "Emacs (•̀ᴗ•́)و") ,(my/make/org-capture-template "b" "Blog") ,(my/make/org-capture-template "a" "Arbitrary Reading and Learning") ,(my/make/org-capture-template "p" "Personal Matters") ,(my/make/org-capture-template "i" "Meetings, Interviews or Zoom Calls") ,(my/make/org-capture-template "c" "Chores, Repetitive tasks") ("n" "Note" entry (file "~/Self/org/notes.org") "* %? :NOTE:\n%U\n%a\n" :clock-in t :clock-resume t)))
I then just use my agenda-file. I schedule all my tasks using: this. Also, I maintain notes using org-roam. As an example, for e-mail links that Rob usually sends: I’d log that into a daily journal. And link it using “org-store-link” on my TODO list file and look at it later. More on org-roam here