Keeping track of active task
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.
Introduction
Keeping track of active tasks sounds simple until work starts moving between "planned", "in progress", and "done" faster than people can remember it. Whether you are building an internal tool or organizing a personal workflow, the important part is defining a clear state model and making it easy to query what is active right now.
This article shows a lightweight way to model tasks, mark them active, and list only the work that still needs attention. The same ideas apply to a spreadsheet, a web app, or a command-line utility.
Model the Task Lifecycle First
Most bad task trackers fail because they skip the state model. If every task is just a title in a list, you cannot answer simple questions such as "what is active?" or "what got stuck this morning?"
A practical model usually includes:
- '
todofor work that has been captured but not started' - '
activefor work currently being executed' - '
blockedfor work that cannot continue yet' - '
donefor completed work'
You can extend the model later, but starting with explicit states gives you something measurable. Once the state is explicit, "active tasks" becomes a query instead of a guess.
Build a Minimal Tracker
The Python example below keeps tasks in memory, records who owns them, and exposes a method that returns only active tasks. It is intentionally small, but the design is already useful: state changes happen through methods, timestamps are stored, and every active item can be listed at any time.
Run this program and it prints only the tasks whose status is active. That one idea is the foundation for dashboards, stand-up reports, and work-in-progress limits.
Make Active Work Easy to Inspect
Tracking activity is not only about a status field. The supporting metadata matters because active work has to be understandable to someone other than the person doing it.
At minimum, capture:
- who owns the task
- when the status last changed
- whether the task is blocked
- enough description to know what "done" means
If you later store tasks in a database, the query stays simple. For example, in SQL you would ask for rows where status = 'active' and sort by the most recent update:
That query becomes far more useful if your application enforces valid status transitions. A task should not jump from todo to done without being started unless your workflow explicitly allows it.
Another practical improvement is to separate active from blocked. Teams often lump both together, which makes the active list look healthy even when nothing is actually moving.
Common Pitfalls
The first pitfall is using vague states. Labels such as "ongoing" or "working on it" are hard to query consistently and easy to interpret differently across a team. Choose a small set of states and define them clearly.
Another problem is allowing status to change without recording time. If you cannot tell when a task became active, you cannot identify stale work. Even a simple updated_at field is enough to flag tasks that have not moved in days.
Many trackers also fail by mixing task priority with task status. A high-priority task can still be todo, active, or blocked. Keep those concepts separate so your filtering stays predictable.
A more subtle mistake is treating the active list as a parking lot. If everything is marked active, the label has no value. Good task tracking limits active work to the things that are genuinely being worked on now.
Finally, avoid manual synchronization across too many tools. If one system says a task is active and another says it is done, trust in the tracker disappears quickly. Pick one source of truth and make other views read from it.
Summary
- Active task tracking starts with a clear lifecycle, not with a UI choice.
- A small set of states such as
todo,active,blocked, anddoneis enough for most workflows. - Store owner and timestamp data so active work is easy to inspect.
- Keep status separate from priority and from general notes.
- Treat the active list as current work, not as a backlog of everything important.
- Once the data model is sound, dashboards and reports become straightforward queries.
.png&w=3840&q=75)
Tackling System Design Interview Problems
A short course that equips you with the skills to approach system design interviews methodically.
Start the free courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.