DEV Community

Ben Halpern
Ben Halpern

Posted on

How do you avoid rabbit holes?

It's nice to go deep on a problem sometimes, but we can be tempted to go too deep. How do you manage your time when examining intricate problems?

Oldest comments (21)

Collapse
 
andyrosenberg profile image
AndyRosenberg

Timebox yourself. At work I drudge through 10y/o legacy code, so I get into this situation from time to time. Typically I’ll give myself x amount of time to look at a problem from one angle before stepping back to think of any other solutions.

Collapse
 
andrewbrown profile image
Andrew Brown πŸ‡¨πŸ‡¦

Yep, timeboxing is the best

Collapse
 
itsjzt profile image
Saurabh Sharma

Actually this way is used to prevent systems from infinite loop, in many domain specific languages

Collapse
 
hamstu profile image
Hamish Macpherson

Came here to say this! Such a great technique.

Collapse
 
shroomlife profile image
shroomlife πŸ„ • Edited

Let's go down every rabbit hole you find as long as you learn or have fun! Stop feeling bad about times you may see as wasted. They are there for a reason. Accept, Analyze and Awake. Go further! If you ask me, you can never go deep enough. When you reach the bottom you can crack it up and a new rabbit hole rises. This is, I suppose, how knowledge is being created down here.

Collapse
 
xxkeith20xx profile image
Keith 20

I agree with the sentiment but say there are only so many hours in a week - at some point, I think you have to look at what you're focusing on critically and decide whether or not it's worth it to go into a topic further.

Collapse
 
skaterdad profile image
Mike

It's been about 11 years since I started writing code professionally, and I'm not sure I'm capable of avoiding rabbit holes.

Whether it's web, desktop apps, databases, or game dev, I just can't help but over analyze. The products always turn out great because of it, but often much later than planned.

Tasks at my real job still gets done on time, mostly, since my rabbit holing largely occurs on my side projects. That knowledge then gets applied to future iterations of the work at my job.

Maybe that's the key for me: do the boring thing first for jobs that are time sensitive and important. Then allow myself to deep dive topics since I enjoy it, and mix the new stuff in as appropriate?

Collapse
 
khrome83 profile image
Zane Milakovic

I don’t.... next thing I know several hours went by and I missed the whole point. 20 years into this industry and I fall into the same trap. Mostly because I enjoy the fall.

Collapse
 
aseeeem profile image
Asim Shamim

I fall into rabbit holes when I start a project, I begin to make problems for myself because I’m hesitant to move truly forward

The only way I pull myself out is asking: how relevant is this to solving my current problem?

It can be nerve wracking to progress so I think I distract myself but digging deep into irrelevance

Collapse
 
lasatadevi profile image
Navee
  1. Timebox.
  2. If you are stuck into a problem for more than 3/4 hrs, time to roll back your chair and go for a fresh air. OR, sleep.
  3. Explain the problem to other colleagues. This helps most of the time for self realisation of the solution.
Collapse
 
python_paul profile image
Paul

I haven't done anything to stop it, even though I usually seem to know when it's happening. But the last couple of months, every now and then, I notice and I've been able stop it and move on to something else.

I remember reading a while back someone suggested limiting your Google searches to only the first page. That may help, but I have infinite scroll enabled, so technically all of Google is my first page. /s

Others have suggested timeboxing, maybe I'll give that a try. I may need to Google it first though.....

Collapse
 
sebastiandg7 profile image
SebastiΓ‘n Duque G

"... But I have infinite scroll enabled". Man, you made my night.

Collapse
 
adam_cyclones profile image
Adam Crockett πŸŒ€

I did timebox a recent exploration of a thing, and by 12pm I decided that I had found a 3rd party lib that did exactly what I could have wrote. I called time and set to work integrating it. Unfortunately it came to home time and I could have used another hour, be careful what you plan!

Collapse
 
jonesey712 profile image
Jonesey712

I am currently dealing with this. Working on making a login piece work that I took from another project. It kinda works, but in adapting it to this project I'm running into many problems getting to work correctly. I finally just commented out that piece (it's a required login page) so I could move on to other parts.
I try to give a good amount of effort in finding a solution. Since it my person project I try to stick to a day or 2 before I move on.

Collapse
 
nestedsoftware profile image
Nested Software • Edited

Do you feel comfortable that you can proceed in your work without needing to understand further details? If so, then it’s probably okay to climb out of the rabbit hole for now!

When learning something new, I try to go more in-depth with basic/fundamental cases, and then I’m often willing to accept more sophisticated extensions as variations on a theme.

Collapse
 
ssimontis profile image
Scott Simontis

I watch the people around me. When several people in the room are playing with their phones or we have devolved into multiple conversations I will politely point out what is going on to everyone on the room and ask whoever our stakeholder is what they would like us to refocus on, optimally after a fifteen to thirty minute break for everyone to decompress and refocus.

Collapse
 
jwp profile image
John Peters

Stick to the work board. Create new tasks to track unexpected things. Pray that your due dates take the extras into account. If they don't stop the deep dive. Pick it up later.

Collapse
 
swarupkm profile image
Swarup Kumar Mahapatra

Seek for help. No shame in doing that

Collapse
 
weswedding profile image
Weston Wedding • Edited

I almost always grab a coworker and do a "sanity check" with them to see if I'm about to go too deep. I explain the issue, I explain what I'm about to potentially invest time in, and see what they think.

But this habit only developed after learning to recognize when maybe my dive was about to be too deep, or that my perfectionism was starting to get in the way of forward progress.

Collapse
 
simme profile image
Simme • Edited

At one of my previous assignments a colleague and I kept a list of things we wanted to rabbit-hole titled "rackare" (which is swedish for rascal), and every time we stumbled upon such a part of the application, we'd just add it tot he bottom of the list.

every week or two, we'd set aside a day where we just rabbit holed all day. Knowing that we'd eventually get to it really helped in resisting the temptation to go for it at once.