Designers have a bias in favor of form (brand identity), developers a bias in favor of function (usefulness, productivity). That's why you have those conflicts between devs and designers over the amount of whitespace and functionality within the viewport, and possible results that can be either based on feature overload and bad UX, or that miss crucial functionality.
A way to get both on the same page is information architecture that is informed by generative UX research and positioning. You come up with a content, data model and schema that informs representational and functional parts of your app. Basically a parent discipline for designers and coders within an organization, roles/teams that are made up of designers and coders. This helps to limit the functionality to what you really need, and gives the designers a frame of reference for their prototypes.