All processes have a core of complexity that cannot be designed away and therefore must be assumed by either the system or the user.
Ensure as much as possible of the burden is lifted from users by dealing with inherent complexity during design and development.
Take care not to simplify interfaces to the point of abstraction. [ more ]