User interfaces are the points of the highest variability in usage. Therefore, the most prudent approach to design is to exhaustively explore the user space and thereby present as natural and simple as possible a set of interfaces which mediate the intended use. This may even involve inventing new types of interactions all towards allowing the users to traverse familar mental models. Furthermore, I would hope that the designers understanding of the user space is so good as to enforce the right mental models so that a beginner in the domain may learn from the design.
In effect, good design proceeeds by adapting to the user space volatility. Once this volatility has been contained we can be confident that we will encounter few surprises in the course of producing the design. Unfortunately, the agile approach sacrifices this for velocity but subsequently suffers repeated shocks due to unanticipated requirements. It is no wonder that physical engineering disciplines would never consider an agile approach because the consequences are hard to ignore. Software, on the other hand, always has the underlying source code invisible from the user interface allowing it to drag itself along until the actual cost of implementing incremental improvements far exceeds the incremental value to be gained.