{"id":674,"date":"2023-03-02T15:44:02","date_gmt":"2023-03-02T23:44:02","guid":{"rendered":"https:\/\/oregonapples.org\/?p=674"},"modified":"2023-03-02T15:44:02","modified_gmt":"2023-03-02T23:44:02","slug":"jono-xia-these-things-i-believe","status":"publish","type":"post","link":"https:\/\/oregonapples.org\/?p=674","title":{"rendered":"Jono Xia &#8211; These Things I Believe"},"content":{"rendered":"<div class=\"page-info\">\n<blockquote>\n<h5 style=\"text-align: center;\"><em>Re-posted from Jono Xia&#8217;s blog: <a href=\"https:\/\/jonoscript.wordpress.com\/these-things-i-believe\/\">Not the User&#8217;s Fault<\/a><\/em><\/h5>\n<\/blockquote>\n<p class=\"page-title\">These things I believe about software development and user-interface design.<\/p>\n<\/div>\n<div class=\"page-content\">\n<h5>1. Why write code?<\/h5>\n<p>Software is for humans, not for computers.<\/p>\n<p>Software is only as good as the improvement it makes to a human being\u2019s life.<\/p>\n<p>Are we making someone\u2019s job easier? Letting them have more fun? Helping them learn? Helping them keep in touch with friends and family?<\/p>\n<p>Are we making the world a better place?<\/p>\n<hr \/>\n<h5>2. What do people want?<\/h5>\n<p>Most people do not want a computer.<\/p>\n<p>They don\u2019t even want software.<\/p>\n<p>For us software developers, this is a painful truth.<\/p>\n<p>If people don\u2019t want a computer, why do they use one?<\/p>\n<ul>\n<li>Email \u2014 for writing to other people.<\/li>\n<li>Instant messaging \u2014 for talking to other people.<\/li>\n<li>The web browser \u2014 for reading what other people have written.<\/li>\n<li>Word processing \u2014 for writing something you\u2019re going to print out and show to other people.<\/li>\n<li>Graphics \u2014 for creating artwork. To show to other people.<\/li>\n<li>Presentation \u2014 for communicating your brilliant plan. To other people.<\/li>\n<li>Games \u2014 especially games that you can play online. With other people.<\/li>\n<li>Social networking websites \u2014 Enough said.<\/li>\n<\/ul>\n<p>The computer is merely an intermediary. A poor and frustrating one. It is a necessary evil that people put up with in order to get what they want.<\/p>\n<p>What they want is a better way to talk to each other.<\/p>\n<hr \/>\n<h5>3. Why does software succeed or fail?<\/h5>\n<p>We software developers, being not exactly social creatures by nature, must work extra hard to understand the social impact our software will have. If the social effect is not what people want, the software goes unused.<\/p>\n<p>We software developers, being not exactly average users, must work extra hard to understand how average users will relate to our software. We see the trees, they see the forest.<\/p>\n<p>We software developers have often been confused and frustrated when a clearly superior technology fails, while a clearly inferior technology spreads like wildfire and takes over the world.<\/p>\n<p>We were surprised because we want each technology to be judged only by its cleverness, its raw power, the cleanliness of its architecture, the purity of its ideas. We were blind to the user experience, to what each technology meant in the bigger picture of a person\u2019s life.<\/p>\n<p>To the people buying and using the \u201cclearly inferior\u201d technology, exactly the opposite was true.<\/p>\n<p>To the user, the interface is the product.<\/p>\n<hr \/>\n<h5>4. Why is there not more Linux on the desktop?<\/h5>\n<p>For open source software to take over the world, we\u2019re going to have to do a lot better at user interfaces than we have been doing.<\/p>\n<p>How do I know?<\/p>\n<p>Open source has already taken over the invisible parts of the world: the servers, the infrastructure, the things users need not touch directly.<\/p>\n<p>Mozilla, the most user-experience-focused of open-source companies, has the most adoption by end-users.<\/p>\n<p>People say things to me like, \u201cLinux is only free if the value of my time is zero.\u201d<\/p>\n<p>These are not coincidences.<\/p>\n<p>At one time, the way of open-source software development was thought impossible. But the techniques were invented. The way became possible; then it became successful. Now the techniques are becoming widely known.<\/p>\n<p>The way to make open-source UI design successful is still unclear. We must invent the techniques.<\/p>\n<hr \/>\n<h5>5. Are users dumb?<\/h5>\n<p>User interface design is not about dumbing things down for the poor stupid user.<\/p>\n<p>We software developers, understanding the software as we do, find it easy to look down upon those who lack our understanding.<\/p>\n<p>This is wrong.<\/p>\n<p>Users aren\u2019t dumb. They just have better things to do with their lives than memorizing the internal data model of our screwy software.<\/p>\n<p>When software is hard to use, don\u2019t make excuses for it. Improve it.<\/p>\n<p>When a user makes a mistake, don\u2019t blame the user. Ask how the software misled them. Then fix it.<\/p>\n<p>The user\u2019s time is more valuable than ours. Respect it.<\/p>\n<p>Good UI design is humble.<\/p>\n<hr \/>\n<h5>6. Is UI design marketing?<\/h5>\n<p>User interface design is not marketing.<\/p>\n<p>Software developers loathe marketing, so if they think that UI design is marketing, then they will loathe UI design.<\/p>\n<p>The qualities of software that make for a good advertisement or computer-store demo are not the same qualities that make software usable and pleasant to work with long-term, day-in day-out. Often these qualities are opposites.<\/p>\n<p>A shopper may choose the microwave with more buttons, because it seems \u201cmore powerful\u201d. However, the shopper will soon find out that it does the same thing as any other microwave, you just have to spend longer figuring out which button to push.<\/p>\n<p>It is easy to fool people into buying something that is against their own best interest.<\/p>\n<p>Don\u2019t do that.<\/p>\n<hr \/>\n<h5>7. What is the task of the UI designer?<\/h5>\n<p>Let us talk about that microwave some more.<\/p>\n<p>The microwave with the most buttons may be most popular, but it is not the best microwave.<\/p>\n<p>The best microwave has no buttons at all.<\/p>\n<p>It doesn\u2019t need any buttons because it already knows how long you want your food cooked and how hot. You never need to set the clock, either: it\u2019s just always right.<\/p>\n<p>The no-button microwave may not be reachable, but like a guiding star it shows us the direction we should travel.<\/p>\n<p>Users do not know what interface they want. Users do not know what features they want.<\/p>\n<p>Users know the tasks they want to do, and the problems they have.<\/p>\n<p>We learn more by watching the user work than by asking the user.<\/p>\n<p>The job of the UI designer is to provide what the users need, not what the users say they need.<\/p>\n<p>It is to make tasks easier, not to provide features.<\/p>\n<hr \/>\n<h5>8. Where is the science?<\/h5>\n<p>User interface design can be approached scientifically. But usually isn\u2019t.<\/p>\n<p>Until we observe people using our software for real, our design is guesswork and superstition.<\/p>\n<p>These things can be measured and given numbers:<\/p>\n<ul>\n<li>What program features are being used most frequently, and least.<\/li>\n<li>The number of mouse\/keyboard interactions required to perform a task.<\/li>\n<li>The time it takes a user to figure out how to do a task.<\/li>\n<li>Rates of error.<\/li>\n<li>How quickly task-completion-time and error-frequency decrease as a user gains experience.<\/li>\n<\/ul>\n<p>An interface\u2019s efficiency and learnability are empirically determinable quantities.<\/p>\n<p>They are not matters of opinion.<\/p>\n<p>Every user is different, but that\u2019s why we have statistical methods.<\/p>\n<p>The science of design can tell us that interface foo is X% more efficient than interface bar, but bar is Y% more learnable than foo.<\/p>\n<p>Choosing between foo and bar \u2014 that\u2019s where the science ends and the art begins.<\/p>\n<hr \/>\n<h5>9. Is change good or bad?<\/h5>\n<p>Change has a cost. Change disrupts the user\u2019s habits. Change forces the user to learn something new.<\/p>\n<p>Sometimes the new UI is so much better than the old one that the change is worth the cost.<\/p>\n<p>Sometimes it isn\u2019t.<\/p>\n<p>The trick is knowing when change is worth it.<\/p>\n<hr \/>\n<h5>10. What is the evil of the bad interface?<\/h5>\n<p>It is a sin to waste the user\u2019s time, break the user\u2019s train of thought, or lose the user\u2019s work.<\/p>\n<p>Bad user interfaces do all three. Frequently.<\/p>\n<p>Most interfaces are bad.<\/p>\n<p>I do not use the word \u201csin\u201d lightly.<\/p>\n<p>Because of bad user interfaces, an action taken based on a reasonable assumption or out of habit often results in broken trains of thought, wasted time, and lost work. This is called \u201cuser error\u201d, but it isn\u2019t. It is programmer or designer error.<\/p>\n<p>When we blame the user, we teach them that technology is perfect and that the errors are their own. Because technology is hard to use, we are teaching a generation to be afraid of technology. We are teaching a generation to believe in their own stupidity. This is a sin, too.<\/p>\n<p><strong>It\u2019s not the user\u2019s fault.<\/strong><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Re-posted from Jono Xia&#8217;s blog: Not the User&#8217;s Fault These things I believe about software development and user-interface design. 1. Why write code? Software is for humans, not for computers. Software is only as good as the improvement it makes to a human being\u2019s life. Are we making someone\u2019s job easier? Letting them have more &hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[32],"tags":[],"class_list":["post-674","post","type-post","status-publish","format-standard","hentry","category-blog"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/oregonapples.org\/index.php?rest_route=\/wp\/v2\/posts\/674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oregonapples.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oregonapples.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oregonapples.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/oregonapples.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=674"}],"version-history":[{"count":1,"href":"https:\/\/oregonapples.org\/index.php?rest_route=\/wp\/v2\/posts\/674\/revisions"}],"predecessor-version":[{"id":675,"href":"https:\/\/oregonapples.org\/index.php?rest_route=\/wp\/v2\/posts\/674\/revisions\/675"}],"wp:attachment":[{"href":"https:\/\/oregonapples.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=674"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oregonapples.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=674"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oregonapples.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}