Many web development teams have those "all-round" developers who pick up the responsibility of knowing enough about the back-end, front-end, and site-architecture to be able to integrate the different domains. Having more than one team work on the project becomes tricky, as the integration developers trip over each other, approaching problems in slightly different ways. By agreeing on and building a structured data schema (graph?), and making that schema queryable over GraphQL, you are able to get closer to teams of deep specialization. You can have a team of back-end developers who can focus on what they know. You can have a team of front-end developers who can get access to the data they need in a clear and consistent way across all projects. And because the structure of the data graph is already agreed, they can build their various components simultaneously, with the data consumers (often front-ends) using mock responses.