Given the conditions, I believe we are doing a stellar job at keeping the whole codebase somehow manageable. Linting and conventions are in place and respected.
But of course it is not "clean code".
Developer velocity is low, testing is difficult and cumbersome.
Dependencies between our components are very tight, and everything depends on everything else.
My team and I have a clear mandate to make the situation better.
A lot of tooling to manage the overall complexity have been build but I believe we have reached a plateau where extra tooling will not make the situation any better. If anything it will increase cognitive load on developers.
I start to think that handling the overall complexity of the codebase is the way forward.
Dependencies are needed, but we are not doing a stellar job at isolation and at keeping dependencies at a minimum.
This comes out as huge files with multiple critical and busy classes. Creating dependencies that are there for syntaxical reasons but not semantical reason.
I don't think it is feasible to manually address those problems. Also my team doesn't have the right business context.
Moreover none of the changes we should do are justificable from a business perspective.
The solution that we see somehow feasible are 2:
1. Somehow force/convince the other teams to handle their complexity. We already tried this and it failed. 2. Figure out a way to do it ourselves.
Only 2. is an acceptable solution given that 1. already failed and the social capital we can deploy.
Approaching this manually is unfeasible, and naturally I am leaning toward using LLM for this kinda of refactoring.
The idea is to avoid updating the architecture and simply put as in a better position to eventually make architectural improvements.
I would like some sort of pipeline where we feed the codebase and the problem on one side (this file is too big, move this class), and get a PR on the other side.
I did try a quite challenging refactoring, and the AI failed. Not terribly, but not something that I can sell just yet.
I am here asking the community if you have tried something similar.
mustaphah•52m ago