It works where there is a shared mission. But when team A wants help with project 1 and team B’s priority is project 2, and they need approval from team C because it touches their code, well, you get the bureaucracy and constant escalation that you see in big software companies.