Frontend, Backend, and the Reverse Conway Maneuver
Conway's Law states that,
Organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.
You have a giant single team working all on the same system with no groupings and hierarchy? You're bound to get a monolith (or, if you try to force microservices into the mix, a distributed monolith).
You have one small satellite office, in a different time zone, not included in regular meetings, and they're working on feature X? Guess which feature will be poorly integrated into the overall system.
By far, the biggest example of this law in action is the split of developers into front-end and back-end: those who work on the user interface and those who work on databases and APIs. By segregating them into entirely different career paths, we (the software industry) have inadvertently created a situation where the front- and back-end exist in this weird state of "technically separated but, by necessity, strongly coupled".
My own experience of writing full stack web apps tells me that this is an anti-pattern. It's a delight being able to deliver a single feature, end-to-end, and not have to worry about how it splits across front- and back-end.
Modularization is great to tame complexity. Divide and conquer! But that only works if the divided entities don't need to actually be coupled quite a bit.
That's how we end up with ad-hoc API endpoints that serve no general purpose other than "well this dashboard needs those three fields from the database", or with duplication of client- and server-side logic (because god forbid the two talk to each other).
And when developing with AI, the traditional approach to splitting responsibilities horizontally (frontend/backend/AI) instead of vertically (i.e. split along actual features) will make everything even messier, because now you have three layers that need to tightly coordinate.
Reverse!
Here's a cool trick, humorously dubbed the Reverse Conway Maneuver: Once you determine the correct structure for your system, you can set up your organization's structure to support that system! And if we agree that we want to have well-built cohesive end-to-end features rather than a disjointed mess, we'll arrive naturally at small, focused, product-oriented teams.
Just like Agile (way back in the day) was trying to tell us all along.