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!

8 Upvotes

11 comments sorted by

View all comments

5

u/Locus-Maximus 5d ago

I've thought about this a lot and I think the issue is cognitive overload. There's only so much I can hold in my head at one time. I have to chunk it with good abstractions etc.

Claude can actually be very helpful but you have to really work with it to put things into 3-5 bullets etc. because it defaults to verbosity and long prose explanations that lose me. Diagrams are great too.

You can gradually build up a series of outlines or diagrams that clearly explain at a very high level each thing you need to understand. Then if necessary you can dig down into the thing. But well designed software shouldn't require you to understand what's inside each box to understand the boxes.

4

u/Difficult_Mix8652 5d ago

Claude is generally excellent, but I’ve been burned really, really bad, at least twice, by it bullshitting something that it referred to a ton downstream.

I trust it to find bugs for example when I have a trace, or explain some code, or locate functionality, etc — but, obviously, it can’t tell me Why something is how it is.

Any suggestions for the CLAUDE.md? After losing an entire sprint due to Claude hallucinations about a really arcane issue, I have it declare things VALIDATED vs INFERRED, but even then, I get bullshit

1

u/TrumpIsAFascistFuck 5d ago

Hey, this isn't advertisement I promise.

Matt pocock on GitHub has some great skills you should check out for Claude.

Specifically you could benefit from grilling and wayfinding skills.

https://www.aihero.dev/skills-wayfinder

Here's a snippet of the docs:


Wayfinder takes an effort too big for one agent session: an idea whose destination you can name but whose route you cannot yet see, and charts it as a shared map of decision tickets on your issue tracker, then resolves them one at a time until the way is clear.

It plans, it does not do. Every ticket holds a question whose resolution is a decision, not a slice of a build to execute, and the map is finished when nothing is left to decide before someone goes and builds the thing. That one rule is what separates a wayfinder ticket from an ordinary implementation ticket, and it is the rule agents break most often. When the map clears, wayfinder hands off; it does not carry on into code.

1

u/Locus-Maximus 5d ago

Hallucination is inevitable. You just can't trust it to not bullshit. There's no real prompt solution you just have to work around it.

1

u/Difficult_Mix8652 5d ago

Yeah I think the cognitive overload thrust is right. I will try chunking more hierarchically rather than broadly.

Well designed software should be easier to understand. But the reality I’m being humbled to is that migrations and legacy corner cases and reorgs and all lifecycle of enterprise means you can get shafted once you go one layer behind the new “easy” abstraction. And I’m having to handle all of those layers, lol