In many aspects of Software Development, there is no one size fits all. The same can be applicable to operating teams or how teams should work.
Teams have different contexts(culture, industry, maturity), some teams require lots of exploration, discovery and collaboration to ignite the creativity necessary for solving a given problem. Some other teams require a high level of focus in order to execute on a clear path of actions.
In reality a single team can go through different phases over a period of time. The successful ones are the ones that adopt the most suitable way of working at a given moment. They can go from a traditional approach of software building consisting of Specification, Design, Code, Test, Release, Maintain sort of cycle, to a more modern approach with rapid iterations and a short feedback loop. Both approaches are valid, it’s the context that matters the most.