Problem: user interfaces often don't have a 1-to-1 correspondence to the domain model:
- There are communication problems
because programmers talk about the
hidden domain model while users talk
about the GUI.
- There are maintenance problems
because users are constrained by the
task-based user interface. They regularly need
to ask for "a new screen to do this" even
if the domain model may already
support it.
Solution: the naked objects architectural design pattern. To take this to the extreme you might even generate the GUI automatically from the domain model.