DEV Community

Captio-Style Simple Memo
Captio-Style Simple Memo

Posted on

Todo debt: 32 field notes from a solo dev's notebook

  1. The capture friction matters more than the schema. Most of my "todo system overhauls" turned out to be schema redesigns, when the real bug was that adding a new task took eleven seconds instead of one.

  2. Todo debt compounds the same way tech debt does, but I cannot see it in a profiler. Nobody writes a postmortem about a thing they did not do. There is no flame graph for items 311 through 480.

  3. A todo from fourteen months ago is no longer a todo. It is a small piece of evidence that I once had different priorities. I have learned to treat it as data instead of as a guilty obligation.

  4. The first 50 items in any list are mine. After 50, the list starts to belong to a former version of me, and the act of "processing" it is really an act of negotiating with a stranger.

  5. I tried tagging todos by energy level — low_energy, deep_work, meeting_brain. I picked the wrong tag about seven times out of ten, and the act of picking ate the energy I was trying to budget.

  6. A friend told me her trick: every Friday she archives any todo older than 90 days, unread. She has not regretted one archive in three years. I have copied this and the regret rate is the same for me.

  7. The cost of a todo is not the time it takes to do it. The cost is the number of times I have to read it before I either do it or delete it. The "read tax" is the thing nobody charges for.

  8. I once tracked re-reads with a counter. The top item in my list was read 41 times before I finally killed it. It said figure out RevenueCat. I never figured out RevenueCat, and the app shipped anyway.

  9. There is a class of todo that exists only to make me feel like I am still planning to do the thing. Naming this class — I call them "alibi todos" — was the first thing that helped me kill any of them.

  10. Most "Inbox Zero" advice does not survive contact with a backlog of 600+ items. The advice assumes you started clean. I never have. The bigger lie is that I will reach the starting line by next Sunday.

  11. Things I will never todo-app again: birthday gifts, replying to friends, reading specific books. They go on a calendar, or they go in a person, or they go nowhere. A todo app turns out to be the wrong substrate for any of them.

  12. The half-life of an "urgent" tag in my system is about eleven days. After eleven days, the tag means nothing. I have stopped using it and the number of actually-urgent items I miss has not measurably changed.

  13. I rewrote my todo system four times before noticing that the cost of each rewrite, in lost todos, exceeded everything the new system was supposed to save. Migrations are the most expensive form of procrastination I have ever found.

  14. A todo that lives across two devices and one syncing service is a todo that will eventually die alone in a conflict resolution dialog. The number of items I have lost to "newer version exists" prompts is, conservatively, in the dozens.

  15. The most useful field I ever added to my todo schema was created_at. Not due_date. created_at, so I could see how long I had been lying to myself about an item. Most of my schemas before that quietly hid this fact.

  16. Tech debt eventually crashes the build. Todo debt does not crash anything. That is the whole problem with it. There is no red light. There is only the slow, invisible compounding of attention you owe to your past self.

  17. When I cleared 280 items in one session I felt nothing. When I cleared three items I had been postponing for months I felt lighter for a week. The relief is not linear in count; it is linear in shame.

  18. A todo without a verb is a fragment of an idea. Most of mine are nouns: RevenueCat. Kani 2 update. bench taxes. These never get done because they were never decisions in the first place. They are categories pretending to be tasks.

  19. The phrase quick win in a todo is a lie I tell myself to feel productive. I checked once: the median time-to-complete of items I had labeled quick win was 27 days. The label predicts the opposite of what it claims.

  20. I once moved my entire backlog into a single .txt file and grep-searched it for verbs. About 60% of items contained no verb at all. The 40% that did contain a verb completed at roughly four times the rate of the 60% that did not.

  21. The single trick that did the most for my real backlog was forwarding the task to my own email with a date in the subject line. Mail clients surface time better than todo apps do. A todo without a date next to it is invisible after seven days.

  22. A reasonable answer to "should this be a todo" is "no, this should be a calendar event with a hard end". The hard end is what makes me say "good enough" and stop. Open-ended todos invite open-ended polish.

  23. The number of open todos at the start of any month predicts the number of features I will not ship that month. It does not predict the number I will ship. The two metrics are uncoupled, which surprised me when I first plotted them.

  24. Every time I added a child-task feature to my homegrown todo app, the average nesting depth of my tasks grew by half a level. Features train me as much as I configure them. A flat list is partly flat because the tool refuses to nest.

  25. I keep two lists. One is for things I am doing this week. The other is for things I once told myself I should care about. The second list is where ideas go to be quietly disagreed with later.

  26. The shortest-lived todo I have ever logged was open for four seconds. I typed it, captured it, and immediately remembered the answer was no. I keep a counter of these because they are the only honest thing in the system.

  27. The longest-lived todo in my system right now is 893 days old. It reads: simpler. I have never had the heart to delete it and I have never been able to act on it. It exists as a kind of weather.

  28. The number of distinct tools I have used to track todos in the last decade is twenty-one. The number of those tools that survived more than one calendar quarter in my workflow is two. The other nineteen each took a weekend to set up.

  29. I keep a small done.txt. Every line is a thing I finished. The file is open in a tab I never close. The most reliable productivity intervention I have is rereading the last ten lines when I am about to call the day a loss.

  30. Project todos are different from house todos are different from life todos, and putting them in the same list is the same category error as putting unit tests and dentist next to each other. I learned this slowly and at the cost of several dental appointments.

  31. The verbs that actually pull items out of my backlog are these, in order of frequency: send, reply, delete, decide, cancel. decide is doing the most work and is in the smallest number of todos.

  32. The honest end state for most todo lists is not "completed". It is "no longer relevant". I have stopped treating that ending as a failure. It is just how a list of things you considered doing eventually ends.


I write at @simple_memo. I ship Captio-style Simple Memo, an iOS note-to-email app I built for myself first.

Top comments (0)