The obviousness of a system is something other than simply "easy to use".
This property is also heavily linked with breakdown and blindness - the interface must be designed not only to be useful, but also to avoid misleading expectations and with an intention to communicate a consistent representational model.
All systems have some kind of interface. From a lamp switch, to the plug that provides the supply to the lamp.
In computer systems, objects, libraries, modules, functions and any component provides some kind of interface. It is important that the same attention to detail is applied to designing these functional interfaces as should be applied to "end-user" systems.