This semester, I am taking a course about Human Computer Interaction (HCI). I had no idea what to expect coming in to this class. I thought it would just be about how humans interact with computers. As the semester went along, I slowly realized that this course revolves more around the concept of design. The way we interact with everyday items depend on how good or bad it is designed. The main text that I'm reading for this course is called
The Design of Everyday Things by Donald A. Norman. I'm not much of a reader but this book is pretty interesting. The book is outdated but the examples that he provides while explaining the concepts are clear and that makes things easier to understand.
Each chapter begins with a real life situation. I really like this way of organizing the text because it's easier for me to understand the concepts. The main principles in terms of design that I got from the first chapter are visibility, mapping, and feedback.
Visibility basically is the labeling part of design. An everyday example of this is a computer keyboard. Each key is labeled appropriately so that it's visible for us users. For users that aren't too familiar with the keyboard layout, visibility enables them to use knowledge that's available in the outside world. So instead of them trying to remember what key corresponds to to what, the label on the keys will give this information thus reducing stress inflicted upon the user. In today's world, visibility is neglected in designing things to make way for "looks." Take mobile gadgets for example. Some buttons aren't marked at all so sometimes there's no way of telling what that button would do before pressing it.
We all know that pressing the power button turn on/off something, pressing the letter J on the keyboard inputs that same letter. We know this because those things are designed to map out with their respective outcome. Poor mapping occurs when a single thing is mapped out to do multiple things. Norman used the telephone as an example of bad mapping. One of the buttons on his telephone example is mapped out to hold, park, or transfer calls. His example wasn't labeled appropriately so bad visibility is shown. I believe that visibility and mapping goes hand in hand in the design process.
For a user to know if their action was taken, the designer needs to implement a feedback mechanism. Many smartphones in the market today are equipped with touch screens. Manufacturers enables haptic feedback so that the device vibrates when the user makes a selection. This example has a tradeoff in terms of battery life. Because UI navigation heavily relies on the user touching the screen, it means that the device is constantly vibrating which sucks a lot of battery life. I always turn this feature off because I rely more on visibility for feedback with my mobile device.
It clearly takes a lot of thought when designing not just software but anything in general. I think that catering the design according to the intended users are important rather than just doing whatever works for the designer. This is where research and studies come first to help with the design process. But no matter how well you design a product, users will always make an error. We are humans, no one is perfect. This is why the designer must also implement the appropriate responses when the user makes an error. A cool example of error detection/correction is the swype technology on android smartphones. This technology enables the user to swype around the software keyboard instead of the traditional tapping method. It's algorithm is smart enough to know the intended word that the user is trying to type. Basically you swype from letter to the next till the word is spelled. But what if the user uses shortcuts words that aren't in the dictionary? Swype is smart enough that it learns the user's custom words by typing it the normal way. Swype adds the new word to the library so that the user can just swype it next time. A lot of times, swyping a certain way can yield multiple result. Swype addresses this issue by having a pop up of words that matches that pattern. The user can quickly tap the intended word and continue swyping. This method makes user input much more efficient and even faster than using physical keyboard on mobile devices. I want to post example pictures of how this technology works but I can't find a way to take a snapshot while trying to swype at the same time. I'll update this post once I figure that out.