Developers often need to be challenged to find a solution to a problem that on first glance seems infeasible. The first instinct of developers is not always correct, what appears to be difficult may turn out to be easy. Of course some things do turn out to be legitimately hard but when developers design things they put too much trust in their instincts.
Developers sometimes also need to be forced to accept complexity that they don’t personally see the point of. For example animations and transitions may appear pointless to developers as they don’t have any function: no APIs are called. However for users, especially non-technical users, animations can be very useful to show the flow of how various UI modes are connected, and to communicate subliminally as many users don’t read text prompts.
If you let developers call the shots then they will choose whatever UI makes the code as simple as possible, because they spend more time looking at code than the actual product, in contrast to users who never see the code at all.