Keeping a debugging journal
steverydz.com
steverydz.com
The list is at http://texdoc.net/texmf-dist/doc/generic/knuth/errata/errorl...; the fairly long and very interesting paper he wrote about it ("The Errors of TeX") unfortunately doesn't seem to be freely available, but there's a very short informal article (also by Knuth) about it at http://www.tug.org/TUGboat/tb10-4/tb26knut.pdf.
He classifies all the errors he's ever found (or had found by others) into 15 categories. (Here "errors" includes "enhancements found to be a good idea", just as in many issue-tracking systems.) In the full "Errors" paper he has much to say about each category, including concrete examples and more philosophical ruminations.
http://texdoc.net/texmf-dist/doc/generic/knuth/errata/errorl...
* Time sharing is very slow today, so I'm mostly reading technical reports while
waiting three hours for compiler, editor, and loading routine.
* I'm not counting this as debugging time!
* (Came back in the evening.)
For reference, you can compile the Linux kernel in as few as eight minutes [1].https://en.wikipedia.org/wiki/Time-sharing
esr also has a good article: http://catb.org/jargon/html/T/timesharing.html
I had some ideas about how to write software to automate some of the tedium and how great it would be if there were a large scale system that many developers used for tracking their work. If this system existed it could compare and contrast techniques and approaches used by more productive developers and help guide less productive developers down the path to improved productivity.
It seems like it would also provide a pretty good automatic Stack Overflow like experience in terms of being able to search for error messages and find the steps others had taken to solve the same problems.
My friend does the same thing, here's what he wrote about it recently:
For more complicated tasks I create check lists before hand (to make sure I cover the edge cases), and sometimes create "Testing:" check lists to make sure I also test all the edge cases. I also have free form text when I'm thinking about a problem, or when I get feedback about different things.
It's organized by day and is invaluable, with a simple search I can find out what I worked on any day -- really good for reflection and marking progress.
Logbook<Year>.txt gets a date stamp every day, and collects the notes I take/leave myself as I go along, including any interesting command lines I won't remember later. I throw in any interesting error messages and other things I know I won't remember in detail.
Periodically, I'll garbage collect CurrentTasks and move the good intentions and other things I won't likely do over to the Logbook.
This is a corruption of David Allen's 'Getting Things Done' system, but it's worked well for me for years. I can't count the number of times the Logbook has acted as a ready reference for solving some obscure, occasional challenge.
I find this suggestion more valuable within a medium-large company. An old employer of mine had a "Trouble Call" reporting system where you submit a problem/solution and can search the DB later to help with repeat issues.
(ba dum tss)
For actual bugs. A lot of times they are one off, but if it is say an issue with a configuration or deployment that could come up again I definetly see the value there.
If you want a public debugging journal for a private or self-hosted project, I think Evernote combined with http://postach.io would work beautifully.
I usually try to capture anything that I spend a significant amount of time figuring out.
The fact that it's a wiki makes it great for organizing other ideas too.
Great way to help others, and keep the "Just Google It!" mantra alive.