Part of designing large systems is to make research easier. Any question regarding the code base should be easy to find the answer to. No one can keep track of all 100,000 constantly changing lines of code, so make it easy to use the code as reference.
The problem is when the system is built by Rube Goldberg fanatics.
This is why modularity in software is so good. You separate parts of the software and only interact with the abstraction. This way you don’t have to fully understand the inner workings of every component.
The worst is when people don’t know how the system works, and then won’t listen to answers
Like I was at a job and product was going on about “our system has no concept of project owner. We have all these projects but there’s nothing unifying them under a single owner. We need to build this!”
I was like “… what? That’s just not true. There’s a “company” object that does that. It’s got a foreign key with project in the database. I guess it’s a weird name but it’s there”
It took several back and forths over multiple meetings. They eventually got on the same page and I saved us doing a whole useless project, but they did insist I rename it to “account” in the database and code. I would’ve rather left it because that could’ve been dicey, but alas. (The rename did go out fine, but I had to go looking for every reference.)
Just wait until you need to rename account because they want to be able to grant access to multiple projects to different accounts.
Just ask ai to read the code base and tell you.
Oh it will definitely tell you something. It will be complete bullshit, but it’s something.
Of all the things AI does well, this is one of them
Spouting bullshit? If so, I agree.
Codebases in the 100k+ to 1m+ sloc can be very difficult for a LLM (or human) to answer detailed questions about. A LLM might be able to point you in the right direction, but they don’t have enough context size to fit the code, let enough the capability to actually analyze it. Summarize? Sure, but it can only summarize what it has in context.



