If you're ever stuck on a bug for more than ~15 minutes, type out a precise explanation of the problem as if you're sending it to a team member for help.

Include everything you've thought of and/or tried as well as any additional context you think might be related.

You'll find the issue before you're done typing it all up. In the rare cases you don't find it, make one editing pass and send the email.

Alternatively, describe the problem out loud to nearby pets or plants. It works. Guaranteed.

@garrettdimon so many new slack messages that were never sent because of this phenomenon
@jimniels @garrettdimon "The chat with myself has more messages than the chats with all my team members combined. Just today, me, myself and I solved another problem together"

@garrettdimon This is The Way.

Distributed teams benefit greatly from this, but so do ye olde static teams sharing the same stale air.

In office situations, you’re no longer interrupting someone else to drag them over to your desk to explain something. And if they don’t know the solution but know someone who might, they can forward the email (sensitivity permitting).

@garrettdimon This is a powerful technique for way more than bugs. I recommend people do this for #UX design problems as well.
@scottjenson Have come to believe that this is basically what therapy is. Guided debugging of our brains.
@garrettdimon ha, interesting point. I see it as more a different modality. I'm stealing from "Thinking, Fast and Slow" but the act of writing just uses a different part of our brain. It's a super power that I've only recently started to appreciate.
@scottjenson Yeah. Not exactly the same, but totally agree on modality. Writing (or drawing) vs. Thinking vs. Verbal all expose different layers of nuance.
@garrettdimon Rubber-ducking is the best. For the optimal use of time, *record yourself* describing the problem and what you’ve tried. Then, if it doesn’t click, you can send the recording to your team.
@garrettdimon Possibly related: When I was giving private math lessons during my college years, I would sometimes think that I fully understood something, but then when I tried to explain it, I couldn’t do it well. Over time I realized what the rule is: If I can’t explain something properly so that the other person understands it, that means that I myself don’t fully understand it yet.
@simevidas Can't remember where I heard it, but I've always bought into the idea that the burden of communication/understanding should always be with the sender not the recipient.
@garrettdimon if that was true all the time wouldn’t people get a solution to their problem in the process of posting a question to stack overflow? for that matter, how does effectiveness compare to going for a walk?
@garrettdimon 100% agree. Before remote working I learned that if you explain the bug / issue to anyone regardless whether they have a clue about what you are talking about, the answer just comes to you. Another thing is just stop thinking about it, leave it alone and do something else, go for a walk, make a sandwich. The mind works in strange ways.
@garrettdimon @dekkzz76 I can agree to that. Another thing that I have started, is to keep a journal of what I am. Trying and the lessons I am learning g, this combines the writing part plus it helps when getting back to the bug later where you then do not have to recreate the commands etc you used in the previous session. If one is into #emacs, then #orgmode is very handy for this.
@garrettdimon "This is my last day, but I gift you my home office plant. It's a botanical knowledge silo. It's hard to part from it but given the amount of times it saved my from a bug and you from a message by me, it's only fair, to pass on this benefit to you."