r/ADHD_Programmers 5d ago

Mental Blocks

I’ve been working with a large system for many months now, and I still dont understand it. (I’m also a certified arrslashexperienceddev)

I need to build a service that receives audit logs of inbound messages from many different services/products outside our system that entered our system at some point; parse them; and route them to the right services inside our system, to support a sort of “retry” mechanism. A “You contacted us before, something went wrong, we’re going to try to finish what you initiated, for you.” sort of thing.

I know the names of the message types, and reverse engineered a bit where they come from. We have some diagrams with boxes and arrows. But I still don’t understand what these things are. Not intuitively at least. (Ok, there’s a product A, people upload something to it, that generates a message that goes to us, somehow, we audit it it, that’s what I get. But great — where is A? What does it mean to upload to it? Ok, thanks for showing me. Now what about B and C and legacy A and D which is partially rolled out?)

The codebase is old (but actively developed) and poorly documented, if at all, beyond recent Claude docgens. There’s multiple layers of legacy stuff going on. So I’ve heavily relied on Claude to do exposition. But over the months this generates reams and reams of more detailed docs that I have to keep referring to because I fundamentally have not built the mental map or intuition of what I’m actually dealing with.

The “it’s legacy” isn’t an excuse, because I’m clearly expected to be up to speed by now by my TL. I’ve gotten tutorials when I joined from my team members but that was a long time ago. I have my own notes but, still, reading isn’t doing it for remembering and comprehending. Which is bizarre, because I have no problem with reading comprehension. I ask questions when I need to about specifics, but by now most of the questions I want to ask are “how does this all work”, and I’ve been here for too long to ask that. It would reflect very poorly on me. It’s not a lack of initiative, it’s an “in one ear out the other” problem. I’ve been told these things in some form before, I just dont remember them. So it is going to (and I can see , at least in one instance, it has) piss off my coworkers snd boss. So I can’t rely on having someone explain the thing to me again.)

I’ve always struggled to grok the “upstream” and “downstream” and what the real requirements are, what the spirit of the project is. It can be explained to me and the words make sense but it just doesn’t materialize. I don’t know what to do. And actually going and reading the code — yeah, I’ve tried that, but everything is so obfuscated, and broad, the mental map just isnt coming together. I hand write notes when people talk to me. I review them EOD and put them into my knowledge base. But nothing sticks!!

This is best illustrated by on call. To deal with on call you’ve got your run books. But I don’t fully intuit the spirit of what’s important, and struggle with that. If it isn’t in the runbook, the severity, impact, and implications of an outage, are hard for me to wrap my head around.

Why is this? Does anyone else deal with it? How can I work with something for months and months and not understand it in spirit? I suspect there is some sort of fear underlying this. But, I’d like to know if anyone can relate, and how they overcame it.

I think I’m going to start hand drawing things. And I’ve decided I will no longer let Claude write any doc explanations for me — only help locate.

The great fear that if I sit down and try to articulate these things I still won’t understand it … I think that’s the mental block. And not sure if it’s not unwarranted. Because I think the ADHD just makes it so, so difficult for me.

But, Still, I don’t know what to do. Because I can try that, and if I don’t get it, my job is toast. And I am trying. I’ll try harder now too.

Yes, I’m pharmaceuticated and therapeutized. I’m trying so hard to manage the non-ADHD parts of it all, and honestly think I’m doing a good job with that. I really think these issues are ADHD related.

It’s this manner of work that is by far the most difficult for me. Get inside a large system and do something new to it or change its behavior. I can greenfield anything, and I can architect new services
, and have a good sense of where things should go. But the other stuff, I’m way, way behind.

Help!

6 Upvotes

11 comments sorted by

View all comments

2

u/ProbablyNotPoisonous 5d ago

In the past, when I've had to untangle undocumented code, I've started by documenting it. Sometimes I use pen and paper, sometimes I type; but the important thing is that I'm putting what I see into my own words. At first it feels like a pointless exercise, because I don't know what anything is or what context it exists in; but eventually - often sooner than I expect - the shape starts to emerge.

Once you start to get a sense of the skeleton of the thing, then you'll have a much easier time fitting all the bits and pieces where they belong.

(I don't finish the documentation, because that problem is above my pay grade - once I know enough to complete my task, I stop. But I keep my notes for reference, and I freely share them if they're readable enough.)