Earlier quoted context omitted.
I haven't seen a code base which hasn't fallen into degradation from that loop. From personal experience, any "correction" leads to an LLM writing more code, or stripping apart interfaces and mixing logic poorly, or adding some hidden control flow just to catch that edge case rather than the general case for that category of input.
same as in real life?
My experience with good developers has been:
- Create something a bit ugly which works
- As more use cases come in, refactor code and clean up old gnarly bits
LLMs tend to work architecture astronaut style mixed with a junior for implementation. Build theoretically good interfaces but then implement dependencies across all of them. And when changes happen, keep feeding that cycle.