Summary
- There are team task management and personal task management; this article focuses on the latter.
- As a method of personal task management, HQRST is introduced.
- HQRST stands for the following, optimizing which structure to manage according to task type:
- Hash
- Queue
- Random
- Stack
- Tree
Introduction
First, task management can be categorized into two types. There is team task management, which is the management of tasks at the team level, and personal task management, where you manage your own tasks. This article discusses personal task management. From this point forward, consider task management = personal task management.
Background
Task Management is Difficult
Task management requires some form of "organized framework" and the determination to strictly adhere to it. It's very difficult. This is not something that 95% of working adults, not just engineers, can achieve.
Think of GTD® (Getting Things Done) for example. In essence, GTD is a framework that involves using a combination of "9 boxes" and "6 perspectives." If used well, you can manage everything from daily tasks to long-term life goals, and even your personal philosophy and "to-do lists" with impeccable consistency. However, the reference books span hundreds of pages, and it's not even open as it's ® (trademarked). Mastering such a system is nearly impossible and even if you do manage it, executing it daily requires significant effort and mental fortitude.
Task management is difficult. That's why, in practical terms, we embed ourselves in busy environments and let the flow of the environment carry us. Even in today's world, where technology and methodology are well-established, there's still a push towards returning to the office, precisely for this reason. As an aside, this is referred to as Atmosphere Remind, where the atmosphere provided by the surroundings reminds you of what to do next.
Enter Lightweight Task Management
Hence, we consider simplifying it to the lightest possible extent to make it easier to practice. That is Light-weight Task Management.
Lightweight task management offers a simple framework and guidelines. It leaves the actual operation to the user.
The Pomodoro Technique is the clearest example. It's quite an intensive method but can also be taken lightly. Get a kitchen timer, set it to 25 minutes to work, then 5 minutes to rest, and just repeat this cycle. You can adjust finer operations yourself. Personally, I take longer breaks every 2-3 cycles.
Lightweight Task Management "HQRST"
In this article, we introduce HQRST, a form of lightweight task management.
I developed this as a Knowledge Architect, and it uses basic data structures. Engineers should find it easy to understand.
Overview of HQRST
In HQRST, five structures are utilized according to the task:
| Structure | Usage | |
|---|---|---|
| Hash | Prepare containers for each perspective; containers are arranged flatly | Organize frequently used information |
| Queue | First in, first out | Handle tasks you must do eventually, though not urgent |
| Random | Pack information into one box; always retrieve one randomly | Find leads when there's no correct answer |
| Stack | First in, last out | Handle interrupt tasks |
| Tree | Hierarchy | Preserve information used occasionally or rarely (archive) |
For Storage: Hash and Tree
Frequently used items should be stored flatly as Hash. Anything else should be treated as an archive in a Tree.
A common anti-pattern is to manage frequently used items hierarchically as a Tree, but this is completely inefficient. It often becomes an end in itself or later becomes noise. A Hash is sufficient. Prepare containers for each perspective and lay them out flatly. This is enough. If you can't handle this, it's a limit of your processing ability, and you should control the amount of work itself.
For Tasks: Stack and Queue
Must-do tasks are common. Tasks include Must-do, Want-to-do, and Should-do, but in work, often only what is "decided to do" is considered a task, meaning only Must-do tasks are treated as tasks.
Well, since Must-do tasks have to be done one way or another, it's best to manage them simply and prioritize to ensure nothing is missed. Stack and Queue are enough.
Let's look at specific operations.
Fundamentally, FIFO (first in, first out) is desirable, i.e., manage with Queue. However, since interruptions occur, manage with Stack. Stack is LIFO (last in, first out), meaning interruptions are dealt with first.
Here's where it gets tricky. How to combine Queue and Stack is the key skill. Those engaged in system design do this routinely.
Here's a relatively simple example:
--> Stack1 --+--> Stack2 (High-prio)
|
+--> Queue1
|
+--> Queue2
- Stack1 is the entry point
- Put every task here first, be it interruptions or otherwise
- Endeavor to default it to empty. In other words, process everything quickly to keep it empty
- Processing means transferring to subsequent data structures
- Stack2 is a high-priority stack
- If tasks exist here, address them until the stack is empty
- 🐰 Manage high-priority tasks here
- 🐰 "What if multiple high-priority tasks arrive...?" I don't want to think about it, but if it happens, LIFO dictates the last one entered is addressed first
- Use Queue1 and Queue2 as you like
- Being FIFO, you process from what was entered first
- 🐰 Decide how to differentiate queues. For example, "mental tasks" vs. "others," "fun" vs. "not fun," "bullshit jobs" vs. "others," etc.
In principle, simpler than you think is often better. Since the system is run by humans like us, complexity leads to obsolescence.
If You Want to Leave it to a Draw: Random
The last one is Random. It's like drawing lots. In Japan, the concept of gacha (capsule toys) exists, producing significant wealth with the experience of randomly getting one thing, as seen in social games (soshage).
Random is simply a Set structure, but you always retrieve one at a time, randomly.
It seems unhelpful in task management, but it's useful when there's no deadline or answer, yet a multitude of "wants" or "ideas." Simply put your ideas into Random and draw one. Like drawing lots.
Implementation of HQRST
There is no product equivalent to HQRST.
Create it yourself. Since this article discusses personal task management, there's no need to develop as extensively as a web or mobile app. A command line tool is enough, or primitive management using VSCode + Markdown files if you permit manual operations. Of course, for Tree and Queue, a default file manager for the OS or cloud storage is enough.
As task management is a "unsolved problem" for mankind, creating an HQRST app with commercial intent might be an option. I'm open, so I do not assert rights over HQRST (though I'd appreciate credit). Feel free to use it as you please!
Conclusion
We discussed HQRST as lightweight task management.
To put it simply, it was just a brief explanation on how to use familiar data structures like Stack, Queue, Tree, and Hash for engineers.
As a Knowledge Architect, I develop practical concepts (called knowledge) like these. I've created various other concepts, so feel free to check them out if you're interested.
Top comments (0)