05 630 05 430 Programming Usable Interfaces PUI
05 -630 / 05 -430: Programming Usable Interfaces (PUI) Brad Myers Human Computer Interaction Institute Spring, 2004 1
Lecture 1: Introduction and Why are UIs Important and Difficult to Design and Implement Brad Myers 2
Course: n Time: Tues&Thurs, 3: 00 -4: 20 pm Room: NSH 1305 n Course Web page: n http: //www. cs. cmu. edu/~bam/uicourse/630 spring 04/ n n Course schedule is very tentative Note required readings 3
Instructor n Brad Myers n n n n Human Computer Interaction Institute Office: Newell-Simon Hall (NSH) 3517 Phone: x 8 -5150 E-mail: bam@cs. cmu. edu http: //www. cs. cmu. edu/~bam Office hours: By appointment. Secretary: Sue O'Connor, n n NSH 3526 A x 8 -7099 4
Teaching Assistants n Andrew Ko, ajko@cmu. edu n n n web page office hours: Monday 2 -4 pm, in NSH 2502 (knock if locked), or by appointment Donna Malayeri, donna+@cs. cmu. edu n n web page office hour: Thursday, 4: 30 -5: 30 in Wean 4114, or by appointment 5
Assignments n 7 individual projects (homeworks) n n n n Will be using Visual Basic and Flash Get an appropriate texts or reference manual Visual Basic tutorials by TAs 1 st one handed out Thursday Midterm exam Final Exam In-class participation and pop-quizzes 6
Course Mailing lists n pui-staff@lists. andrew. cmu. edu n n Use to turn in hw pui-everyone@lists. andrew. cmu. edu n n n Sign up to be on this one! Use to ask questions about assignments See bboard of previous answers, at http: //my. cmu. edu web portal, etc. 7
Texts n n Jakob Nielsen. "Usability Engineering". Boston: Academic Press, Inc. 1993. Donald A. Norman, "The Design of Everyday Things". New edition: Basic Books, 2002, ISDN 0 -465 -06710 -7. Or original edition (paperback): New York: Doubleday, 1988. ISBN 0 -385 -26774 -6 Some readings listed on schedule See also resources page: http: //www. cs. cmu. edu/~bam/uicourse/630 spring 04/resources. html 8
What is this class about? n Implementing prototypes of user interfaces n n User testing the prototypes Lectures also cover: n n Principles of UI software for real implementations Focused on desktop applications (not web) n n n Why important How to do it Same for handhelds (PDAs) Web software is (often) implemented differently Other courses: n n 05 -631: Scott Hudson, every fall 05 -830: Advanced User Interface Software (me, next year) 9
Introduction to User Interfaces 10
Who are “Users”? n n People who will use a computer system or web site. As opposed to the “Designers” n n n People who create the system or web site Designers Users You are the designer 11
What is the “User Interface”? n Everything the user encounters n n n n Functionality Content Labels Presentation Layout Navigation Speed of response Documentation & Help 12
What is “Usability”? n n Learnability Efficiency n n Memorability n n n Productivity Little “re-learning” required Errors Satisfaction n Pleasurable 13
Why are Interfaces Important? n Sit-down-and-use computers and software n n Usability is critical to software sales: n n Don't read the manuals In magazine ratings "User friendly" Productivity paradox HCI-trained people build better interfaces n n Programmers don't think like end-users Exposure to different kinds of interfaces, problems User model, not system model Guidelines 14
Why Important? cont. n n n There are well-defined methods and techniques Not just opinions, luck, domain-experience Very expensive to not do usability engineering n Interfaces will be re-designed: before or after release n Studies show that usability engineering saves money n n $39, 000 $613, 000 $8, 200, 000 Up to 5000 times the cost 15
Why Important? cont. n n n Novices will be more effective quicker Make experts more efficient Reduce calls to the support center n n n Can cost $30 - $100 per call Reduce errors Can help identify what is really needed n What will be useful and what is not needed 16
Why Important? cont. n Recognized by industry, government, etc. n n n Plenty of jobs Money for research Significant time and code devoted to HCI now! 17
Bad UIs Can Cause Disasters n Therac-25 (1985 -87) http: //courses. cs. vt. edu/~cs 3604/lib/Therac_25/Therac_1. html n Repeated recently http: //archives. seattletimes. nwsource. com/cgi-bin/texis/web/vortex/display? slug =radiation 14&date=20010614 n Aegis n July 4, 1988; Iranian Airbus shootdown by the Vincennes http: //www. geocities. com/Capitol. Hill/5260/vince. html http: //washingtonpost. com/wp-srv/inatl/longterm/flight 801/stories/july 88 crash. htm http: //en 2. wikipedia. org/wiki/USS_Vincennes_(CG-49) n Florida ballots (2000) http: //cnews. tribune. com/news/story/0, 1162, oso-nation-82371, 00. html 18
Florida Ballots 19
Why are User Interfaces Difficult to Design? 20
Why Hard to Design UIs? “It is easy to make things hard. It is hard to make things easy. ” n No silver bullet n User Interface design is a creative process n Designers have difficulty thinking like users n n Often need to understand task domain Can’t “unlearn” something 21
Can’t Unlearn Something 22
Why Difficult, 2 n Specifications are always wrong: n "Only slightly more than 30% of the code developed in application software development ever gets used as intended by end-users. The reason for this statistic may be a result of developers not understanding what their users need. " -- Hugh Beyer and Karen Holtzblatt, "Contextual Design: A Customer-Centric Approach to Systems Design, “ ACM Interactions, Sep+Oct, 1997, iv. 5, p. 62. n Need for prototyping and iteration 23
Why Difficult, 3 n Tasks and domains are complex n n n Existing theories and guidelines are not sufficient n n n Mac. Draw 1 vs. Illustrator Word 1 vs. Office XP Too specific and/or too general Standard does not address all issues. Adding graphics can make worse n Pretty Easy to use 24
Why Difficult, 4 n All UI design involves tradeoffs: n n n n n Standards (style guides, related products) Graphic design (artistic) Technical writing (Documentation) Internationalization Performance Multiple platforms (hardware, browsers, etc. ) High-level and low-level details External factors (social issues) Legal issues Time to develop and test (“time to market”) 25
Why are User Interfaces Difficult to Implement? 26
Why Are User Interfaces Hard to Implement? n They are hard to design, requiring iterative implementation n n Not the waterfall model: specify, design, implement, test, deliver They are reactive and are programmed from the "inside-out" n n Event based programming More difficult to modularize 27
Why Hard to Implement? cont. n They generally require multi-processing n n n To deal with user typing; aborts Window refresh Window system as a different process Multiple input devices There are real-time requirements for handling input events n n n Output 60 times a second Keep up with mouse tracking Video, sound, multi-media 28
Why Hard to Implement? cont. n Need for robustness n n n No crashing, on any input Helpful error messages and recover gracefully Aborts Undo Lower testability n Few tools for regression testing 29
Why Hard to Implement? cont. n Little language support n n Complexity of the tools n n n Primitives in computer languages make bad user interfaces Enormous, complex libraries Features like object-oriented, constraints, multiprocessing Full bookshelf for Microsoft MFC and friends Luckily, Java is somewhat easier Difficulty of Modularization 30
Examples n n Difference between displaying “hello” and displaying a blue rectangle Difficulty to read a file name n n n Reading a text string Configuring and handling built-in file dialog Creating a new file dialog 31
Why UIs Particularly Important n Computers are exploding into society n n n Pervasive computing power Small, cheap, powerful Computers in watches, phones, homes 32
Parts cost is around $1 n If you can add $3 -$5 to the cost of something, you can add a processor n if there is something of value to be gained (doesn’t have to be much) 33
We haven’t seen anything yet n Pop quiz: what is this Good Stuff Time 34
Moore’s Law Good Stuff You are here Time 35
Moore’s law n At given price point, CPU speed doubles every 18 months n n Low end (<$1) chip will have today’s high-end performance in ~10 years Corollary: at a given performance point price drops fast 36
Hard to really understand exponential growth n There has been huge performance gains since (say) 1965 37
End result: big impact on the world n Large numbers use computers n n Report: 50% of Americans now have internet access All high school and college students All white collar workers No one in our society is not affected in some way by computers 38
Massive computational power available for next to nothing n n No longer “Can you build it? ” Now: “Can they use it? ” (“Will they use it” => “Can I sell it”) n This class is to teach fundamentals of building (usable) interactive systems through prototyping and user testing those prototypes 39
- Slides: 39