It is sometimes unfair to expect a user to read a manual before using our application. I agree with the author that not everything has to be completely intuitive, such as an airplane cockpit does not have to be designed to be easily usable by an untrained passenger. However, complexity should not be added to objects that simply do not require it. A door should be easy to figure out, and it should be designed from an average layperson’s POV. What would an average person do? Would they pull/push the door? If so, then the door should be designed with that in mind, unless there is an actual need for using a non-conventional approach to design like having to tap the door three times for it to open. Or if you’re designing an escape room, where the intention is inverted on it’s head — you try to design something that is difficult to use.
From the perspective of designing my p5.js sketches, I think this idea of intuitiveness and familiarity comes into play. Would a user know to press specific buttons on their keyboard if there is no instruction to do so, without reading the code ( in this case, why should they read the code before running our sketch? ). Yet we must not treat the users as completely incapable and instruct them every single step of the way. Personally, I think it should be safe to assume that users would move their mouse around a sketch, and maybe press the mouse buttons a few times, thus I personally think that instructions are not needed for mouse interactions , but should be there for keyboard interactions. In an ideal world, instructions should be there for what the user is ignorant of, and instructions should be left out for what users know as it just adds clutter.