As someone with 45+ years of software experience I can personally verify that software development has not improved significantly over the last 25 years or so. The two most important changes are that there is much less assembly programming (outside of imbedded systems) and each hardware vendor does not have their own completely incompatible operating system. Most of the rest of the "improvements" are pretty much moot beyond that.
OOP has never lived up to it's hype. No matter how "object oriented" a system is, it is still just as likely to be late and/or broken as in pre-OOP days. Development, maintenance and modification is not automatically better with OOP.
I can't be certain, but I strongly believe that one of the reason for the lack of progress is that there are not a lot of old programmers still in the profession. Unlike other engineering fields, say civil engineering, chemical engineering, etc careers tend to be short. There are not enough people around to say "we tried a version of that 15 year ago, and it had these pitfalls." The result is that the same mistakes keep getting made over and over again. This fits in with the observation that as a profession we have not improved much on estimating project requirements and being on time and on budget.
That's one of the reasons I hate the term "Software Engineering". We are not real engineers because we can't deliver on time with predictable results and a predefined cost. It's not that this happens all the time in other engineering areas, it's just that it rarely happens with software.