Design is Hard

Another post based on my notes from the book The Design of Everyday Things by Donald Norman. This one is from section explaining why design is so hard and what could be done to improve situation.

Designers pretty often can't design think correctly, because:
  1. they don't know the end user of the product
  2. they need to complain many rules to satisfy their direct clients, not the users of product
  3. they are limitted by a business rules: make it beautiful, and not always usable
  4. they know too much about the product, so can't look at it as a new user. Designers are not typical users, like programmers are not typical users of their programs.
  5. not always designer is responsible for desing, it could be done by other non-professional, like programmer.
  6. there is always a set of "special people", who have differences, like left-handed, deaf or blind users etc.
One of the issues of many modern products is their creaping featurism. Creators tries to put too much of features into the product. Each feature brings more complexity than it should. Because it usually comes with another control, another window, a couple of use cases and a some options. Instead, the product should come with minimal viable set of features.
Funny, but there is also a list of rules how to make things wrong:
  • make things invisible: increase gulf of execution and establish gulf of evaluation, so user won't know what is happening and where they are
  • be arbitrary: use non-obvious commands and names
  • be inconsistent: change the rules, user different rules in different modes, have multiple different modes
  • make operations unintelligible: use unknown abbreviations, unclear messages and errors.
  • be impolite: insult users
  • make operations dangerous: allow a single erroneous action to destroy invaluable work, make it easy for distatrous things to happen.
In opossite to all this "bad" rules, the system or product should invite user to explore it, play with it, learn it without a need to study huge boring manuals. System should be safe for user to use, it should give user hints, suggestions and advices so user can explore it even more. Visibility and mapping should plan an important role.
Design should:
  • make it easy to determine what actions are available and possible at any moment of time
  • make things visible
  • make it easy to evaluate the current state of the system
  • follow natural mappings between intentions and actions, between actions and results, between that available information about the system and actual system state.
Seven principles for transforming difficult tasks into simple:
  1. use both knowledge in the head and in the world: this is where manuals could help, however one should not rely on the fact that user would study manual before he/she starts working with product, usually user get to the manual when has issues.
  2. simplify the structure of tasks
  3. make things visible
  4. get the mappings right
  5. exploit the power of constraints, both natural and artificial
  6. design for error
  7. standardize

Google Glasses, AI and shadow copy

Last week I had some roadtrip and was passing a few interesting points. I wanted to add a note to visit that places in the future, but couldn't as was driving a car. And I started dreaming on how it would be awesome if you just could add a note using your voice. But I'm lazy. Would be even better if it could be added to the backlog of places to visit just by making thought command. But I'm too lazy. Thinking about visiting some place is good, but need to make a specific command in my thoughts - go and visit this place later. Not ideal yet. Would be better if there would be some invisible assistant that could do that for me. That would know me as good as I do. Who would know what I might be thinking about, who would understand my desires even when it's not clear enough for me yet. Some AI assistant, that would know that I might be thinking how nice it would be to visit that shop with a fresh seafood, because I love seafood so much.

But how can any AI be smart enough? How could any AI understand me so well? Reading thoughts? Yes, but that is such hard thing now (well, yet possible someday). But if there would be a device that could see what I see, hear what I say and what others say, then it would be able to learn and understand me someday. And then I realized that I just described Google Glasses.

The more I thought about this AI assistant the more I understood that it won't be an assistant anymore. It would be my digital shadow copy. Able to think like me. That knows what I know, because has vision and can hear - more than 90% of information sources the human uses. And there would be a company that would own my mental copy. The company that could ask my copy if I would prefer to buy product A or B, or what am I going to search in nearest future. You know, the company like Google could even already have search results for me ready way before I decide to do a search.

And what about ads? Are you kidding me? There is no ads anymore! No one needs ads. Company knows what I want to buy already. It just shows me what I want and need to buy already.

How good it could be? Well, you don't know but I eat 1 banana every day. But my digital copy would know that for sure. I have only 2 bananas left in my fridge. So, my shadow copy knows that I need to buy another bunch of bananas soon. And it buys it for me. My bananas are delivered in a day. No shortage, no rush, no efforts from me. I don't even need to think or worry about that anymore.

This is something that changes basically everything in our lives. And changes are good.

Err is human...

This is my second post based on notes from the book The Design of Everyday Things by Donald Norman. As I mentioned in last post, I loved the chapter about human errors and mistakes and how to design things to avoid this mistakes. So, here are my notes...

There are different types of errors:
  1. data-driven errors
  2. capture errors
  3. description errors
  4. associative activate errors
  5. lost-of-activate error (forgot what wanted to do)
  6. mode errors (forgot in which mode)
It's not always easy to detect errors because:
  1. feedback is not always available (lack of visibility)
  2. different level of seeing error (you're looking error at more low-level while it's a level or a few above)

Human Memory

I've read an awesome book recently - The Design of Everyday Things by Donald Norman. I must say that didn't expect much of this book. My thought was "just another book for designers on how to create usable things". There was however something pushing me to read this book, maybe because  I've read about it in the In the Plex; book was references as the one that influenced Google's founders. Well, now I can understand why. Even thought the book is mostly about trivial things that everyone should understand and know. In fact, it's not true. Not everyone understand and know. I didn't. So many openings about regular things, views from different perspectives, inspirational rules etc.

There are many topics that I liked in this book. But the chapter named "To Err is Human" maybe the most favorite for me. Not only because I make so many mistakes and errors all over the time by myself, and it's nice to understand how this works (and how I work). But because author gives very good explanation on how human memory and brains work.

I made some notes during reading this book, and decided to share some of the them that are related to how human memory works. I also was thinking how this apply to the AI. And made some interesting openings for myself too.

So here are my notes...