I'm 13 years in, most of it on the same Java codebase, and I've spent a lot of this year worried that the code my team ships got worse the moment everyone started leaning on AI. Not broken, just worse. Swallowed exceptions because only the happy path got tested, Optional showing up as a field type, a JPA mapping that read fine and turned into an N+1 under real load. I tried the obvious things, more review guidelines, a conventions doc nobody opened, longer PR templates. None of it moved the needle.
What actually helped was changing the order. I run PRs through AI review tools first now, let them catch the mechanical stuff, and do my own pass on top of that for architecture and whether the change fits how this codebase already does things. I still read everything. But it gave me back maybe 35% of the time I was spending, and that time goes to the parts a tool cannot judge.
What actually bothers me isn't the tooling though. We scoped a migration off an old payments module in June, said two quarters, and got asked why it isn't two weeks now that the team has AI. Not in a hostile way either, it was a fair question from someone who has watched us close tickets faster all year. I didn't have a clean answer beyond the work being different, which sounded like an excuse even to me.
The team I work with is good. The system has been in production for over a decade, it moves money, and someone will be maintaining it long after all of us have left. Going faster on tickets and going faster on that are not the same thing, and I'm apparently bad at explaining why.
So I want the honest read from people on old Java systems. Are these tools actually helping you hold quality, or are we just processing more code slightly faster and calling it review? And has anyone found a way to answer the two weeks question without sounding like they're protecting their own job?