I think this is true if you define "the work" as building on top of the infrastructure we have today. I believe we're capable of building conceptually clean, non-ball-of-mud architectures, but the need to interoperate with piles and piles of legacy systems forces compromises into the design. Just look at a typical web application stack; you've got layers and layers of cruft, and nobody is able to pull off a bold move that tears layers off; the best we can do is add more layers on the top.
Software is a complex subject, but is it so much different than chemistry, physics, mathematics? Each of which took hundreds of years to progress through multiple stages of advancement. Is functional flavored OOP with bolted on TDD the grand unified theory of programming? That seems unlikely to me. I suspect there are further conceptual breakthroughs on the horizon. And there is still a tremendous amount of improvement available just in getting everyone up to the level of adhering to known best-practices.
Every other programmer and scientist in the entire fucking world should be working on AI.
Or we can work on techniques to improve our ability. Our collective IQ improved a lot when we dropped roman numerals in favor of arabic/hindi numerals.
In programming we have know of better techniques for a long time[1]. Sadly, as a community we just haven't put understanding as a priority. We follow "Move fast and break things." instead of "Elegance is not a dispensable luxury but a factor that decides between success and failure.".