|
|
|
|
|
by jeremycw
2222 days ago
|
|
This is good advice. However, I've seen this advice before and the example is usually something where it's easy to imagine what an incremental step is. The advice is when you want to do n just do < n. This is great for some things but I find it doesn't work for everything. So I'd like to just expand on this for tasks where doing < n doesn't really make sense. For example, if you're trying to solve a difficult bug it can be overwhelming and you feel like you're not making progress and you procrastinate because you don't have the time to dive in for five hours and you feel like spending thirty minutes isn't enough to accomplish anything. My advice, if you're struggling with tasks like these is to make excessive notes. Save the link to the Stack Overflow question you looked at. Write down file names and line numbers with your thoughts. Copy bits of relevant documentation right into your notes. The basic idea is that if you can ramp up from your notes in less time than it took you to make them then you have made progress. |
|
30 minutes won't be enough to solve many nasty bugs, but it can be enough time to rule out a possible cause, or rule out a possible technique as not being helpful for tracking the bug down.
One of my nastier crashes took two weeks to root cause - I eventually ruled out every smart technique I could think of, and resorted to dumb ones. 15 or so build + test cycles later (taking maybe 10 minutes of work each and another 2 hours of waiting for builds to complete) I'd bisected VCS history and found the cause. Turned out to be a change to use some third party code that looked completely unrelated. So unrelated that I spent another 10 minutes creating a completely isolated standalone repro case to verify I'd actually found the culprit (I had) instead of something that would hide the symptoms.