I absolutely agree. I think we need to try to innovate how large scale complex software can be written.
One of the approaches I'm currently investigating and have high hopes for composition, pure functions, and explicit two-way dependency tracking. I'm trying to put this to the test in my work. The idea is that I hope even huge software can be decomposed into smaller independent (meaning all the dependencies are explicit) chunks with pre- and post-conditions. So fixing many bugs could boil down to navigating to the code responsible and fixing it there. It's too early for me to say how it'll work in reality, but I will find out with time.