I've been doing this kind of thing for over 15 years and not just at the end of the day. At first I intended only to keep track of my consulting hours and what I did during that time, using a small database program I wrote. But I soon started adding design decisions, ideas, and todo lists. Nowadays I use a text editor, and every project folder has a Notes folder where I create a text file with the date encoded in it (like "N2012-09-06.txt" for Sep. 6, 2012) for each day I work on that project. I continuously add decisions, thoughts, ideas, unit-test results (when it makes sense), todo lists, errors, fixes, etc. It's a running log of what I've done on any given day. Being searchable, it's also a knowledgebase that has saved me hours upon hours of repeated effort and research. And of course it helps me recover more quickly from disruptions, no matter when they occur in the work day.

Design
Leave Breadcrumbs For Yourself
By Andrew Binstock, September 04, 2012
By noting where you were when you stopped and what you were planning to do next, you greatly facilitate resuming coding work. Knowing what to do with your notes enhances the benefits even more.Related Reading
More Insights
White Papers
- Gone Phishing: How to Defend Against Persistent Phishing Attempts Targeting Your Organization
- The Evolving Ransomware Threat: What Business Leaders Should Know About Data Leakage
Reports
- Increased Cooperation Between Access Brokers, Ransomware Operators Reviewed
- Why You're Wrong About Operationalizing AI
Webcasts
- PAM for the Extended Enterprise: Enforcing privileged access in hybrid cloud environments
- Rethinking Asset Management to Improve Enterprise Security

Currently we allow the following HTML tags in comments:
Single tags
These tags can be used alone and don't need an ending tag.
<br>
Defines a single line break
<hr>
Defines a horizontal line
Matching tags
These require an ending tag - e.g. <i>italic text</i>
<a>
Defines an anchor
<b>
Defines bold text
<big>
Defines big text
<blockquote>
Defines a long quotation
<caption>
Defines a table caption
<cite>
Defines a citation
<code>
Defines computer code text
<em>
Defines emphasized text
<fieldset>
Defines a border around elements in a form
<h1>
This is heading 1
<h2>
This is heading 2
<h3>
This is heading 3
<h4>
This is heading 4
<h5>
This is heading 5
<h6>
This is heading 6
<i>
Defines italic text
<p>
Defines a paragraph
<pre>
Defines preformatted text
<q>
Defines a short quotation
<samp>
Defines sample computer code text
<small>
Defines small text
<span>
Defines a section in a document
<s>
Defines strikethrough text
<strike>
Defines strikethrough text
<strong>
Defines strong text
<sub>
Defines subscripted text
<sup>
Defines superscripted text
<u>
Defines underlined text
Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.
![]() |
To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy. |
I do the same thing in two different ways: 1. Send a "where to start" email to myself when I have a number of loose ends to deal with the next morning, or 2) maintain a to-do list in a note program such as OneNote or EverNote when I am working through a particular new feature.
@dleppik: Good point. I'd completely overlooked the last aspect you mentioned. By having a system of prepping for the next day, you give yourself a mechanism for bringing your current day to a close. Thanks for adding that!
I use (for many years!) a modified approach. I embed the notes in the code or document, preceded by a series of question marks (???????). I do this for unfinished sections and the last bit I worked on. When I resume the work, I search for multiple question marks and pick up after reading my notes.
I agree. I end each day by writing my next steps on the back of an obsolete business card and stick it in my keyboard, so I have to pull it out the next day.
Similar to Kent Beck's suggestion of ending the day with a failed test, my motto is: "end every day with a stack trace." (I don't usually live up to it.) This provides two advantages.
First, a stack trace is enough context for me to get back into work in the morning-- and like an unfinished Sudoku puzzle, it's much less intimidating and more engaging (taunting?) than starting completely fresh.
Second, it encourages me to drop what I'm doing at the end of the day and get home on time, even if I'm in the middle of something. (I don't usually live up to that either; but at least my wife is also a programmer who can empathize.) And it reminds me not to avoid starting a new task, just because I'll inevitably have to quit just as I'm getting into it.
@LilShieste:Thanks for your comment. I probably should have mentioned Beck's suggestion explicitly in the editorial. It's one of Beck's few suggestions I disagree with. On two counts: 1) whenever I stop, I want all my unit tests to be passing; 2) a failing unit test in itself is too little information about context. At least for me, that is, it's too little information to reconstruct where I was, what I was doing, and especially, what I was planning to do. This last aspect is even more problematic in TDD, b/c the failing test is supposed to represent the smallest possible increment of functionality.
Your "breadcrumb approach" reminded me of one of Kent Beck's suggestions in his TDD By Example book:
"Finish a solo session by writing a test case and running it to be sure it doesn't pass. When you come back to the code, you then have an obvious place to start."