"An interface is basically a layered structure with layers of code where the top layers are progressively oriented towards the human while the bottom layers address the machine. At each layer, and between the layers, the interface translates and negotiates between the machine and the human. This translation leaves traces that are perhaps most visible when the machine breaks down or when a breakdown of communication occurs. Such traces are of course not desirable when designing a user-friendly interface. Still, the translation should not always strive to be automatic, smooth, and seamless. We need critical interfaces that give the user insight into to the workings of the machine and software, which would also give the user better possibilities to develop unforeseen and 'un-designed' uses."
(Olav W. Bertelsen & Søren Pold)