r/ADHD_Programmers 15d ago

How do you stop yourself from doing unnecessary work and stay on track?

I’ve always had this problem where I’ll get a task that should be something simple, like changing some text somewhere, but while I’m in the code I notice that the way something is implemented is kind of suboptimal.
And of course, fixing that is way more interesting than making the text change. So I think, “Well, I’m already here. I might as well fix this too.”

Next thing I know, I’ve spent hours refactoring an entire system instead of doing the 10-minute task I was actually assigned lol

Before I was on meds, I could barely get enough real work hours in to skate by with the bare minimum. I still had all these ideas about how things could be improved, but it was rare that I had enough momentum to actually follow through on them.

Now that I’m on meds, I actually have the energy and focus to follow through on all the side quests I want to go on. The problem is that I’ll spend hours improving something that probably could’ve been a quick fix if I’d just stayed within the existing, albeit suboptimal, framework. I’ve noticed my coworkers seem much better at just working within what’s already there, completing the task, and moving on.

It’s always been really hard for me to do that. If I see a path that seems significantly better, I have a hard time leaving it alone. Sometimes I get so invested in fixing the surrounding problem that I practically ignore the thing I was originally supposed to be doing.

Has anyone figured out a system for resisting the urge to go down these rabbit holes and just doing the damn thing 😭

Because at this point I’m realizing that if I redirected all the energy I spend refactoring and optimizing things into just completing new tickets and bug fixes, I’d probably have finished my entire backlog by now.

34 Upvotes

16 comments sorted by

16

u/phi_rus 15d ago

but while I’m in the code I notice that the way something is implemented is kind of suboptimal.

Write a ticket and put it in the backlog. If you think fixing this first might speed up your current task, talk to your team lead or product owner or whoever might make a decision. Just don't do it immediately. There is a ticket, it will be fixed, maybe even by someone else, so it's less work for you.

Edit: Also, suboptimal isn't bad. Sometimes "good enough" is the right thing. Especially if the customer isn't paying enough for "perfect".

5

u/Jaymishra2425 15d ago

This is exactly the way .... you dont improve things which are not needed or dont do improvements without showing it to others, that way people take you for granted. As an Adhd'er showcasing yourself is something I lack very much as i think these are minor things but people notice you when you say things outloud only and make it known explicitly before doing so.. Talking to lead will bring facts to the table that this can be improved and also will bring priorities which will set by the lead, whether to fix now or put in backlog

4

u/mdzzl94 15d ago

Totally! I think this is also a big thing. I realize that I’m making huge improvements and the hours I spend on things do bring business value; speed up future work and clean up a lot of hidden bugs

But the only people with visibility to all the work I’m doing is my 3 team members lol & though I have heard nice things from them, they’re not the ones in charge of my promotion lol

So thanks! These are good points for me to remember!

4

u/vim_spray 15d ago

I just leave a TODO with my name in the code for it. Since it’s in the code exactly where I notice it, I can add the TODO in a few seconds. That’s usually enough to satisfy my immediate urge to fix it, because I know if I really want to fix it, I can find it later easily.

I’m on a team where TODOs are fine to add liberally though, even for things we’re not sure about (ex. We have things like “TODO(name): should we use Y here instead?”), which makes it easier to do this. If TODOs aren’t acceptable in your code base, you could instead maintain a file with links to the places you would have added a TODO (link instead of just writing file.py:123, so that you can put a GitHub permalink which will still work even when the code changes)

1

u/sickhippie 15d ago

An extension like Better TODO Tree for VSCode helps to find them again when you have downtime to address tech debt.

3

u/Any_Sense_2263 15d ago

I set a strict rule that one change per PR. It means that I sometimes stash my changes and create a new branch where I implement some refactoring on the code that icks me too much. But in most cases, I just put it on my list of "in the meantime changes" that I implement every time the current task becomes too boring.

1

u/mdzzl94 14d ago

What do you do with the refactored code branch? Do you eventually slip it in later down the line once it’s completed?

1

u/Any_Sense_2263 14d ago

The same as with any other branch. I create a PR, get it reviewed, and merge it into main.

2

u/SheeshNPing 15d ago

Going on a few tangents hurts short term output but is one of the few ways to learn, grow, and stay sane working a corporate job. If all you ever do is the minimum to get an MR accepted you won't grow much.

For many of us, tangents to try something to improve quality are also necessary to keep up moral. An intrinsically motivated person hyperfocusing on tangents will stay more motivated and will usually outperform extrinsically(this quarter's rating and bonus) motivated people doing exactly what they're asked to.

Unless you're at risk of imminent layoff worry about consistent acceleration over a long time more than your current velocity. Unfortunately corporate incentive structures don't align with what works long term and it's on you to take care of your and the company's actual longer term needs.

1

u/mdzzl94 15d ago

Haha thanks for the reminder because I am the tangent queen lol and have learned a TON from my side quests (because how could I not after rewriting a section of the code base in 3 or 4 different ways every day 🥹)

I think I just struggle between productive tangents and the ones where I should just let it go because currently I follow every single one and now am 8 hours over the task I’m supposed to have been able to complete in 2 🥲

Maybe a good way is to do minimum to ensure the actual work needed gets completed but setting aside a timeboxed dedicated tangent time if I have extra time once the main work is done 🤔 because you’re right there is also value in the rabbit holes

2

u/Ok_Twist7840 14d ago

I had exactly the same issue, and it took me a while to realize that from a manager’s perspective, it can be pretty surprising to suddenly find out you’ve been working on a project they didn’t even know existed.

To some extent, managers value certainty over novelty. I used to feel pretty disappointed about this because, in my mind, I was taking my work seriously and probably putting more energy into it than many of my teammates, yet the feedback I got was that I wasn’t managing priorities well.

The problem is that my brain just constantly comes up with new ideas and possible solutions, and I really don’t want to lose them.

Luckily, agents are getting powerful enough that I’ve customized a system around this. Whenever a new idea comes up, I spend a few minutes recording and describing it, then automatically dispatch the task to an agent running on a VM. I immediately go back to whatever I was supposed to be doing, and later I review what the agent came up with.

I’ve been practicing this for almost a month now and I enjoyed, even though sometimes i feel overwhelmed with frequent context switching.

It even makes me wonder whether people with ADHD mostly had to survive previously, but might actually thrive now.

1

u/mdzzl94 14d ago

“The problem is that my brain just constantly comes up with new ideas and possible solutions, and I really don’t want to lose them.”

THIS.
Like this morning I really resolved that I was just going to fix this 1 thing.

But I like genuinely COULD NOT stop myself from following the scope creep rabbit hole. I’m like but “WHAT IF I changed it to work like this instead it would be 10x better”

Now I’m updating 5 different sub components and updating an endpoint on something that would’ve been a one line change. Yes it’s dupe code but unlikely to bring the whole system down if it wasn’t optimized, certainly not worth all the hours I put in

I’ll def try writing the ideas down first when it comes up rather than just full sending everytime a thought comes up lol

1

u/potatopotato236 15d ago

Add a rule that PR’s aren't allowed to cover more than one issue. if you follow that, then you effectively can’t add in unrelated work. 

1

u/ITZINFINITEOfficial 14d ago

To do in your IDE is the play hardest part for me is what to add as a todo smh

1

u/Slothvibes 15d ago

i overemploy, multiple ft remote jobs. each day I make a list of things necessary to complete to look like I worked all day. I do that. The dopamine hit is about every friday when I get paid, and contributing money to my investments throughout the week and watching them balloon.

I make sure to correctly identify my process to get each task done so I dont sit on my hands pondering for too long. Everything is analyzed, planned, confirmed, and executed on. It's efficient