Agile Scrum has its issues...
I've worked in Waterfall, Spiral, and Agile methodologies (SCRUM, Kanban). All three have issues, but to me I've very rarely seen success when using Agile SCRUM. Why? It's not due to communication issues between team members, it's due to the inflexibility of SCRUM, which is an antithesis to Agile. Where I've seen it fail is preventing technical discussions. For example, I've encountered countless Sprint Grooming and Sprint Planning sessions at multiple companies where the Scrum Master prevents technical discussions. Essentially, this attitude that engineers can't speak technical during ceremonies prevents understanding of the story and prevents accurate story pointing. I hate the fact we cannot understand a story, then have this idea we are committed to finishing story in a sprint. Then, when the story isn't finished during the sprint, there's a retrospective to determine what went wrong to improve and the team experiences, "you didn't meet your commitments." Well, what went wrong is the process prevents committing to an understandable story. So how is this combatted? According to scrum.org create a Part 2 planning meeting or more meetings just between the development team. This is a foundational issue with Scrum and it needs changed. Sprint Grooming and Sprint Planning are for the pigs, not the chickens. Why have them without an understanding and an accurate depiction of the Acceptance Criteria? The story will most likely fail. Granted it fails fast, but it's still a failure.
I also find that Scrum doesn't provide the time necessary to properly decompose and design a solution. Vertical slices are great but they can create more integration points, creating more points of failure. If the whole picture of what is being sliced is not understood, you're going to encounter decomposition and design flaws, even using SOLID principles. I've yet to see code written in an Agile SDLC that consistently displayed high cohesion with low coupling. Why? When in SCRUM is there time to design? You typically design during the sprint. I know some successful companies run with separate boards for system design, ux design, and implementation. But, this is the lesser case.
The fact is, there is no silver bullet. Brooks is very correct with this. I have no problem with Lean Principles and Agile on a high level. But, I think when you follow SCRUM and avoid flexibility, it will create a ton of headaches that can be avoided simply by being Agile.