Back to Blog

Task Tracking for Developers: From Solo Projects to Team Workflows

· 5 min read
  • mentoring
  • freshers
  • git
  • github
  • productivity

Most freshers I work with code without any task tracking at all. For a two-hour assignment, that is fine. For anything longer — a project across sessions, a feature built over days, a bug you put aside and return to — the absence of tracking costs time and causes rework.

So, here is a practical starting point.

Why bother tracking tasks at all?

Three things happen when you do not track:

  • You forget what you decided and why
  • You redo work you already completed
  • You lose context when you switch sessions, days, or branches

None of these feel critical the first time. They compound.

Option 1: A tasks.md file in the repo

For solo projects, a simple tasks.md in the root works well. It travels with the code, it is version-controlled, and it requires no setup.

## In progress
- [ ] Add login form validation

## Done
- [x] Set up project structure
- [x] Add basic routing

Commit your tasks file alongside code changes. When you return after a break, it is the first thing you read.

A few habits that help:

  • One task per line, scoped to something completable in a session
  • Move finished items to a Done section rather than deleting them — history matters
  • Note blockers inline rather than in your head: - [ ] Fix auth bug (blocked: need to understand token refresh)

Option 2: GitHub Issues

GitHub Issues work well even on personal repos. They give you a lightweight project history, a place to record decisions, and a clean way to link commits to tasks.

Basic workflow:

  • Create an issue for each feature, bug, or improvement
  • Use labels to categorise: bug, feature, docs, chore
  • Reference issues in commits: fixes #12 or closes #12 — this auto-closes the issue on merge
  • Comment on issues to record decisions or blockers, even if you are the only person reading them

Issues also give you a place to write out your thinking before you start coding. This matters more than it sounds — writing forces clarity, and clarity reduces bad decisions.

Option 3: GitHub Projects (for small teams)

If you are working with two or three people, GitHub Projects adds a Kanban board over your issues with no extra tooling.

Columns: Backlog, In Progress, Review, Done.

Keep it simple. The overhead of managing a board needs to stay lower than the value it provides.

Practices that work regardless of tool

Break work down before starting. If a task takes more than a day, it is probably two or three tasks. Smaller chunks are easier to estimate, easier to review, and easier to roll back.

Write acceptance criteria. A one-sentence description of what done looks like. “User can log in with email and password and is redirected to the dashboard.” If you can write that, you know what to build.

Avoid phantom tasks. A task that never gets created does not exist. If you think of something while coding, add it immediately rather than keeping it in your head.

Review your task list at the start of each session, not the end. The end-of-session review always gets skipped. The start-of-session review sets direction.

Close tasks promptly. An issue or checklist item that is done but not closed creates noise and false signals about progress.

A note on tools

GitHub Issues, tasks.md, Notion, Linear, Jira — the tool matters less than the habit. Pick the simplest thing that matches your context and use it consistently.

For a fresher: start with tasks.md. Graduate to GitHub Issues when you start collaborating. Add more structure only when the absence of it is causing problems.

So, start tracking. Even badly. A rough list beats none at all.

About the Author

Navneet Karnaani

Navneet Karnaani is the founder of Mandrake Technology Consulting. With over 35 years of software engineering experience, he has built enterprise infrastructure at VMware and Symantec, scaled engineering teams from zero to twenty-plus engineers, and served as Chief Architect across a region at Globant. He has taught Distributed Systems to final-year Computer Science Honours students at Flame University. Today he consults for startups that need honest technology leadership and builds micro-SaaS products that solve real operational problems. He writes about architecture, engineering culture, and the craft of building software that lasts.

This article was originally published here on the MandrakeTech Blog