I wonder if someone keeps such a thing, and how would it be.
How could the concept of lab journal apply to computer science and/or software engineering ?
I wonder if someone keeps such a thing, and how would it be.
How could the concept of lab journal apply to computer science and/or software engineering ?
- Symptoms (how is the bug manifesting) - Initial Observations (This is where you dig into the code/debugger and write down all the weird things that are happening) - Guess (A statement of what you think is causing this based on your observations) - Fix (what change you made) - Result (Did it fix the bug? Did some new bug pop up as a result?) - Repeat till bug resolved
Obviously, it's hard to keep writing so meticulously about bugs, but it sure does help when something similar pops up again.
The notebook is useful in quite a few ways. Often in a project you investigate many different ideas (should I implement the algorithm this way? a different way?) and discard those that don't work, and the notebook is a record of the reasons I threw away each idea. When the idea pops up six months later, or I need to mention it in a paper, I can remember what the results were and why it failed.
When I'm investigating a weird bug or exploring some possible improvement, the notebook records my progress. I might be profiling a slow chunk of code to find potential improvements, pasting each profile into the journal, and then refer back to them to see if my changes have helped.
I also record various ideas I have but don't have time to explore, papers I've read with potentially useful information, research progress, and all sorts of useful stuff. I find I don't actually have to refer back to old entries very often -- mostly just to the last couple days as I'm working through a problem -- but it's very reassuring to have around.
I suspect the role of the lab notebook is subsumed by public bug trackers and mailing lists for collaborative developers -- if you're tracking down a bug, you might post your progress in the GitHub or Bugzilla issue so your collaborators can follow along. I know Mozilla carefully links commits to bugs so they have a permanent record of every change that went into their code.
So for me it applies in exactly the same way.