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?
Create templates to quickly answer FAQs or store snippets for re-use.
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.
Came here to say this! Such a great technique.
Actually this way is used to prevent systems from infinite loop, in many domain specific languages
Yep, timeboxing is the best
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.
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.
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.
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?
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
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.
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.....
"... But I have infinite scroll enabled". Man, you made my night.
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.
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.
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.
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!
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.
Seek for help. No shame in doing that
I try to busy myself in Cheap Essay Writing UK the irony of spending too much time reading content about how to avoid wasting time.
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.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.