Hacker News new | ask | show | jobs
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.

4 comments

+1 to notes and documentation.

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.

For a lot of these things, I've found that thirty minutes of looking at the problem from various angles is enough to get your subconscious mind engaged. After working on the problem for a bit, the solution just comes to you when you're in the shower or on a bike ride.
What I've found can be useful in these cases is to define success as a small amount of time spent working on the problem. For example, I have a daily goal of spending 5 minutes a day on language learning. Some days I really only have energy for the 5 minutes, but as time has gone on, more and more days end up with time spend far in excess of 5.
If you can’t do the thing, you usually can break it up into smaller constituent things. Keeping with the pull-ups. My wife can’t even do 1 pull-up, but she’s broken it down into a couple of foundational movements and she’s doing them, and getting stronger every day. Doing reverse pull ups, and miniature flexes at the base of the pull up motion, and a couple of others.

She’s probably got another 4-6 months until she can do the full pull up, but it’s coming.