A 3‑item 'Ready‑to‑Start' Checklist That Stopped My Procrastination

I stopped staring at a ticket and actually started shipping by requiring three things before I click 'start' — reproducible case, one‑line acceptance, and a first safe action.

Written by: Rohan Deshpande

A laptop, notebook, and coffee cup on a wooden table with a person writing in the notebook
Photo by Christin Hume on Unsplash

It was 3pm, my Wi‑Fi had decided to take a siesta, the CI queue was an hour long, and I was looking at a bug that had sat in my board for three days. I could see the fix in my head — mostly — but every time I opened the issue I’d close the tab and do something that felt useful: answer Slack, tidy an old branch, open 12 tabs. I wasn’t blocked so much as paralyzed. Small steps looked riskier than fiddling with my inbox.

That cycle—stare, stall, fake‑busy—used to be my default. I tried Pomodoro, task lists, pairing. Each helped for a while, then the same thing happened: friction before starting. The trick that finally stuck was ridiculously small and precise: before I “start” any ticket, it must pass my 3‑item ready‑to‑start checklist. No exceptions, unless it’s a declared hotfix.

Why the checklist exists

Most procrastination on engineering tasks isn’t laziness. It’s uncertainty bleeding into friction.

When you make those uncertainties explicit and turn them into a short gate, you eliminate the huge, vague decision (“should I start now?”) and replace it with three small, answerable checks.

The three items (exactly how I use them)

I kept this list intentionally tiny. Each item takes at most ten minutes to verify.

  1. Repro within 10 minutes (or a clear repro strategy)
  1. One‑line acceptance: user impact + done criteria
  1. The first safe action (timeboxed)

How I actually use this in a chaotic Indian startup context

Our CI queues in Bengaluru sometimes mean a 40‑minute wait. Mobile network testing chews data. Office Wi‑Fi dies for ten minutes at random. The checklist is particularly helpful here: by nailing a repro and a first local action, I can keep momentum without relying on CI or perfect connectivity. If CI is slow, I run the quick local checks first. I also stick the one‑line acceptance in the Jira title so reviewers read it in the first glance on their cheap phone over a flaky network.

When it failed (and the rule I added afterwards)

It wasn’t perfect. Two honest failures:

The tradeoffs I accepted

This habit slowed down my initial “blunder in and try” style. Sometimes a quick, naive patch would have worked and I over‑engineered the repro. But the tradeoff is deliberate: I trade a few minutes upfront for far fewer mid‑task stalls and review churn. On average I ship one more meaningful change per day because each start is real.

A small habit, but it changed my mornings

The checklist is boring. It forces me to do slightly awkward things: write a one‑liner, run a local script, plan a tiny first commit. But removing the question “do I start?” matters. If you stare at tickets, try this for a week. Make exceptions for hotfixes and exploratory work. If it still feels like bureaucracy, tighten the time limits — make the repro a 5‑minute smoke test.

Takeaway: If starting is your bottleneck, shrink the decisions you have to make before the first keystroke. My three items turned “maybe later” into “started now” more reliably than any timer or motivational note ever did.