logging in or signing up ResponsivenessSlides Rainero Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 16 Category: Education License: All Rights Reserved Like it (0) Dislike it (0) Added: March 20, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Designing Responsive Interactive Systems DespitePerformance Limits: Jeff Johnson www.uiwizards.com Designing Responsive Interactive Systems Despite Performance LimitsMost Software is Not Responsive Enough: Most Software is Not Responsive Enough Doesn’t provide prompt feedback Doesn’t inform users of progress Doesn’t allow users to cancel long operations Forces users to waitExamples of Poor Responsiveness: Examples of Poor Responsiveness Depicted as dysfunctional human-human interactionParties Locked inSingle, Foreground Process: Parties Locked in Single, Foreground Process “Hello. I’d like to fly from San Francisco to New York next Thursday, returning Sunday evening, as cheaply as possible.” “OK, I’ll check flights & fares. I don’t know how long it will take, but you must stay on the line, not doing anything else, until I find the answer. If you hang up, I’ll forget about your request.” Poor ResponsivenessTime-ConstraintsNot Communicated: Time-Constraints Not Communicated “I’d like to have this camera repaired.” [Doesn’t say that he needs it in 2 weeks for a wedding.] “Sure. Once I get your information and a $25 deposit, I’ll put the job on our repair technician’s queue.” [Doesn’t say that the technician is on vacation in Botswana & won’t be back for 6 weeks.] Poor ResponsivenessNot RespondingWhile Busy: Not Responding While Busy “Fred, what are our plans this weekend?” [busy writing; no reply] “Hey! Do we have any plans for this weekend?” [still no reply] “Earth to Fred! Do you read me?” [finishes writing] “OK, done.” [looks up] “Did you say something?” Poor ResponsivenessNot RespondingWhile Busy: Not Responding While Busy Poor ResponsivenessMore Examples: More Examples Screen pointer doesn’t keep up Delayed response to button-clicks Sliders, scrollbars that lag Apps that go “dead” during disk ops Multiple (unneeded) screen-repaints Poor ResponsivenessDefinition of Responsiveness: Definition of Responsiveness A highly responsive system provides feedback that allows users to see what they are doing, & does not hamper their work-rate Feedback is a user-detectable system response to a user-action User action is any action by the user that causes a computationVery Important forUser Satisfaction: Very Important for User Satisfaction Supported by many studies (see bib.) Can improve productivity (Brady, 1986) Productivity System Response Time (seconds) expert users average users .1 .2 .3 .4 .5 .6 .7 .8 .9 1.0 1.1 1.2 1.3Reasons for Poor Responsiveness: Reasons for Poor Responsiveness Importance not widely known UI designers rarely specify Programmers equate with performance Programmers treat human input like machine input Simple, naïve implementations Limitations of the WebIgnoring Its Impacton Design: Ignoring Its Impact on Design Alternative scrollbar operation UI Designers Rarely SpecifyInput Events HandledIn Order & Weighted Equally: Input Events Handled In Order & Weighted Equally “OK, back ‘er up juuust a tad. A little more... more... more... more... more... a little more... OK, stop. Stop! STOP!” [CRRRUNNNNCH!!!!] “Aww, man! Why didn’t you stop when I said ‘stop’?” “Because I got behind on the ‘mores’ and still had a couple more to deal with before I got to your command to stop.” Human Treated Like MachineSynchronous Dialog, Independent Requests: Synchronous Dialog, Independent Requests “Hello. I need shock absorbers for my ‘83 Toyota. Do you carry Acme shocks? “I’ll check the warehouse. Please wait.” [caller waits; salesman returns] “Yes.” “How much are they?” “Hang on, I’ll check.” [caller waits; salesman returns] “$50 each.” “What about Monroe shocks?” “I’ll check the warehouse. Please wait.” Naïve Implementation“Heavyweight” Operation Impedes Req’d Iteration: “Heavyweight” Operation Impedes Req’d Iteration “Let’s try putting the piano here.” [mover slowly moves piano to indicated location] “No, that doesn’t work. How about over by the window?” [mover slowly moves piano again] “That’s even worse. Let’s try here.” Naïve Impl.Event Queue isStraight FIFO: Event Queue is Straight FIFO [A building custodian starts his day] “Let’s see. What’s on my list for today? Sweep hallways floors. OK, let’s do it!” [sweep floors] “OK, that’s done. What’s next? Sand baseboards in hallway. OK, let’s do it!” Naïve ImplementationAssumingQueued Goals Remain Valid: Assuming Queued Goals Remain Valid “Here it is! I postponed my family’s vacation & worked overtime all week to make sure I got the Smith proposal done on time.” “Oh? Didn’t someone tell you? We decided not to go after the Smith contract.” Naïve ImplementationMore Reasons forPoor Responsiveness: More Reasons for Poor Responsiveness GUI software tools, components, & platforms are inadequate Managers hire GUI programmers who lack the required skillPhony Progress Bars: Phony Progress Bars Netscape Installer GUI Tools Are InadequatePhony Progress Bars: Phony Progress Bars MacOSX: CD burner utility GUI Tools Are InadequateResponsivenessDesign Principles: Responsiveness Design Principles Responsiveness != performance Processing resources are limited UI is real-time, with deadlines Based on human time-requirements S/W needn’t do everything instantly Or in given order, or even at all Users are not computer programsUI Deadline:0.1 Second: UI Deadline: 0.1 Second Upper Limit for: Perception of cause-effect Perceptual fusion Relevance to UI design: Feedback for hand-eye coordination Feedback for button click Displaying “busy” indicators Min. frame rate for smooth animation Responsiveness PrinciplesUI Deadline:1 Second: UI Deadline: 1 Second Average Time for: Turn-taking in conversation Min. reaction time for unexpected events Relevance to UI Design: Displaying progress indicators Opening window Finishing unrequested operations Responsiveness PrinciplesUI Deadline:10 Seconds: UI Deadline: 10 Seconds Average Time for: Unbroken attention to a task “Unit task” Relevance to UI Design: Completing one “step” of task Finishing input to operation Finishing one step in a wizard Responsiveness PrinciplesAchieving Responsiveness: Achieving Responsiveness Used with permission: Randy GlasbergenResponsivenessDesign Principles: Responsiveness Design Principles Responsiveness != performance Processing resources are limited UI is real-time, with deadlines Based on human time-requirements S/W needn’t do everything instantly Or in given order, or even at all Users are not computer programsSome Requests areCost-Sensitive: Some Requests are Cost-Sensitive “Can you reformat this document in two columns?” “Yes, but it will take an hour.” (or cost $300) “Ack! Forget it! I don’t want it that much.” Software Needn’t Do EverythingAchieving Responsiveness: Achieving Responsiveness Timely feedback Parallel work Queue optimization Dynamic time-management Test under realistic conditionsTimely Feedback: Timely Feedback Meet human time-deadlines Acknowledge user input immediately Display “busy” & progress indicators Display important information first Fake “heavyweight” computations Achieving ResponsivenessAcknowledgeUser-Input Immediately: Acknowledge User-Input Immediately “Fred, what are our plans this weekend?” “Just a minute. I’m trying to get this idea down on paper.” “OK” [finishes writing] “OK, done. Our plans for this weekend? Let’s see…” Timely FeedbackReal Progress Bars: Real Progress Bars MacOSX: File copy utilityDisplayImportant Information First: Display Important Information First Clock display on a computer screen Timely FeedbackDisplayImportant Information First: Display Important Information First Timely FeedbackDisplayImportant Information First: Display Important Information First Timely FeedbackFake“Heavyweight” Operations: Fake “Heavyweight” Operations “Let’s try putting the piano here.” “OK, but to save strain on my back, I brought a cardboard piano that we can move around until you know where you want it, then I’ll bring in the real piano and put it there.” Timely FeedbackWork in Parallel: Work in Parallel Delegate non-time-critical work to background processes But don’t overdo it Work ahead Smart: Prepare likely requests Dumb: Start before order complete Achieving ResponsivenessDelegate Workto Background Processes: Delegate Work to Background Processes “Hello. I’d like to fly from San Francisco to New York next Thursday, returning Sunday evening, as cheaply as possible.” “OK, I’ll check flights & fares and call you back.” Work in ParallelSmart Work-Ahead:Prepare Likely Requests: Smart Work-Ahead: Prepare Likely Requests “Here are the overheads for your talk. Also, I figured you’d want paper copies to hand out to the audience, so I made 20.” “Thanks, Fred, you’re a godsend!” Work in ParallelDumb Work-Ahead:Start Before Order Complete: Dumb Work-Ahead: Start Before Order Complete “And what would you like for the main course?” “Hmmm. We haven’t decided yet. It all looks good!” “Well, while you decide, I’ll get your appetizer started and fetch your wine. When I return, you can tell me your choice for the entree.” Work in ParallelQueue Optimization: Queue Optimization Re-order queued events Flush tasks that have become moot Merge compatible tasks Achieving ResponsivenessOptimizeOrder of Queued Events : Optimize Order of Queued Events [A building custodian starts his day] “Let’s see. What’s on my list for today? Sweep hallways floors. Sand baseboards in hallway. Repaint stairway banisters.” “Well, let’s see… I won’t sweep until after I sand because sanding will leave dust and grit everywhere. If I paint the banisters first, I’ll have to wait a day or two before I can sand the baseboards. So I’d better sand, then sweep, then paint.” Queue OptimizationFlush Queued Tasksthat Have Become Moot: Flush Queued Tasks that Have Become Moot “Before I postpone my family’s vacation & work overtime all week to get the Smith proposal done on time, are we still hoping to land that contract?” “Nope. We decided not to go after the Smith contract.” “Whew! Glad I checked.” Queue OptimizationDynamic Time Management: Dynamic Time Management Adjust strategy if not keeping up Decrease quality or quantity to keep up Predict time; decide how to do task Predict time-compliance; negotiate quality or whether to do task at all Achieving ResponsivenessAdjust StrategyBased on Queue Length: Adjust Strategy Based on Queue Length WordStar (CP/M, 1 mhz computer) If lagging, last typed character visible Stops updating other areas of screen Most Word Processors Display reflects input-queue position Last typed character lags Even today! Dynamic Time ManagementAdjust Strategy Basedon Deadline-Compliance: Adjust Strategy Based on Deadline-Compliance InXight Cone Tree Dynamic Time ManagementAdjust StrategyBased on Time-Estimates: Adjust Strategy Based on Time-Estimates “Are you ready to order?” “Almost. Maybe N more minutes. It all looks good!” “OK, I’ll…” SWITCH N: { N < 1 min: “… wait here.” 1 <= N < 3 min: “… take these other folks’ order & come right back.” N >= 3 min: “… go away, & come back when I see you’re ready.” } Dynamic Time ManagementTest UnderRealistic Conditions: Test Under Realistic Conditions Test under heavy loads Test on slower systems Slower computers Slower net connections Have programmers use slower systems? Achieving ResponsivenessThe End: The End For details, see GUI Bloopers Responsiveness Bloopers chapter Website: www.GUI-Bloopers.com More recent book: Web Bloopers Website: www.Web-Bloopers.com You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
ResponsivenessSlides Rainero Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 16 Category: Education License: All Rights Reserved Like it (0) Dislike it (0) Added: March 20, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Designing Responsive Interactive Systems DespitePerformance Limits: Jeff Johnson www.uiwizards.com Designing Responsive Interactive Systems Despite Performance LimitsMost Software is Not Responsive Enough: Most Software is Not Responsive Enough Doesn’t provide prompt feedback Doesn’t inform users of progress Doesn’t allow users to cancel long operations Forces users to waitExamples of Poor Responsiveness: Examples of Poor Responsiveness Depicted as dysfunctional human-human interactionParties Locked inSingle, Foreground Process: Parties Locked in Single, Foreground Process “Hello. I’d like to fly from San Francisco to New York next Thursday, returning Sunday evening, as cheaply as possible.” “OK, I’ll check flights & fares. I don’t know how long it will take, but you must stay on the line, not doing anything else, until I find the answer. If you hang up, I’ll forget about your request.” Poor ResponsivenessTime-ConstraintsNot Communicated: Time-Constraints Not Communicated “I’d like to have this camera repaired.” [Doesn’t say that he needs it in 2 weeks for a wedding.] “Sure. Once I get your information and a $25 deposit, I’ll put the job on our repair technician’s queue.” [Doesn’t say that the technician is on vacation in Botswana & won’t be back for 6 weeks.] Poor ResponsivenessNot RespondingWhile Busy: Not Responding While Busy “Fred, what are our plans this weekend?” [busy writing; no reply] “Hey! Do we have any plans for this weekend?” [still no reply] “Earth to Fred! Do you read me?” [finishes writing] “OK, done.” [looks up] “Did you say something?” Poor ResponsivenessNot RespondingWhile Busy: Not Responding While Busy Poor ResponsivenessMore Examples: More Examples Screen pointer doesn’t keep up Delayed response to button-clicks Sliders, scrollbars that lag Apps that go “dead” during disk ops Multiple (unneeded) screen-repaints Poor ResponsivenessDefinition of Responsiveness: Definition of Responsiveness A highly responsive system provides feedback that allows users to see what they are doing, & does not hamper their work-rate Feedback is a user-detectable system response to a user-action User action is any action by the user that causes a computationVery Important forUser Satisfaction: Very Important for User Satisfaction Supported by many studies (see bib.) Can improve productivity (Brady, 1986) Productivity System Response Time (seconds) expert users average users .1 .2 .3 .4 .5 .6 .7 .8 .9 1.0 1.1 1.2 1.3Reasons for Poor Responsiveness: Reasons for Poor Responsiveness Importance not widely known UI designers rarely specify Programmers equate with performance Programmers treat human input like machine input Simple, naïve implementations Limitations of the WebIgnoring Its Impacton Design: Ignoring Its Impact on Design Alternative scrollbar operation UI Designers Rarely SpecifyInput Events HandledIn Order & Weighted Equally: Input Events Handled In Order & Weighted Equally “OK, back ‘er up juuust a tad. A little more... more... more... more... more... a little more... OK, stop. Stop! STOP!” [CRRRUNNNNCH!!!!] “Aww, man! Why didn’t you stop when I said ‘stop’?” “Because I got behind on the ‘mores’ and still had a couple more to deal with before I got to your command to stop.” Human Treated Like MachineSynchronous Dialog, Independent Requests: Synchronous Dialog, Independent Requests “Hello. I need shock absorbers for my ‘83 Toyota. Do you carry Acme shocks? “I’ll check the warehouse. Please wait.” [caller waits; salesman returns] “Yes.” “How much are they?” “Hang on, I’ll check.” [caller waits; salesman returns] “$50 each.” “What about Monroe shocks?” “I’ll check the warehouse. Please wait.” Naïve Implementation“Heavyweight” Operation Impedes Req’d Iteration: “Heavyweight” Operation Impedes Req’d Iteration “Let’s try putting the piano here.” [mover slowly moves piano to indicated location] “No, that doesn’t work. How about over by the window?” [mover slowly moves piano again] “That’s even worse. Let’s try here.” Naïve Impl.Event Queue isStraight FIFO: Event Queue is Straight FIFO [A building custodian starts his day] “Let’s see. What’s on my list for today? Sweep hallways floors. OK, let’s do it!” [sweep floors] “OK, that’s done. What’s next? Sand baseboards in hallway. OK, let’s do it!” Naïve ImplementationAssumingQueued Goals Remain Valid: Assuming Queued Goals Remain Valid “Here it is! I postponed my family’s vacation & worked overtime all week to make sure I got the Smith proposal done on time.” “Oh? Didn’t someone tell you? We decided not to go after the Smith contract.” Naïve ImplementationMore Reasons forPoor Responsiveness: More Reasons for Poor Responsiveness GUI software tools, components, & platforms are inadequate Managers hire GUI programmers who lack the required skillPhony Progress Bars: Phony Progress Bars Netscape Installer GUI Tools Are InadequatePhony Progress Bars: Phony Progress Bars MacOSX: CD burner utility GUI Tools Are InadequateResponsivenessDesign Principles: Responsiveness Design Principles Responsiveness != performance Processing resources are limited UI is real-time, with deadlines Based on human time-requirements S/W needn’t do everything instantly Or in given order, or even at all Users are not computer programsUI Deadline:0.1 Second: UI Deadline: 0.1 Second Upper Limit for: Perception of cause-effect Perceptual fusion Relevance to UI design: Feedback for hand-eye coordination Feedback for button click Displaying “busy” indicators Min. frame rate for smooth animation Responsiveness PrinciplesUI Deadline:1 Second: UI Deadline: 1 Second Average Time for: Turn-taking in conversation Min. reaction time for unexpected events Relevance to UI Design: Displaying progress indicators Opening window Finishing unrequested operations Responsiveness PrinciplesUI Deadline:10 Seconds: UI Deadline: 10 Seconds Average Time for: Unbroken attention to a task “Unit task” Relevance to UI Design: Completing one “step” of task Finishing input to operation Finishing one step in a wizard Responsiveness PrinciplesAchieving Responsiveness: Achieving Responsiveness Used with permission: Randy GlasbergenResponsivenessDesign Principles: Responsiveness Design Principles Responsiveness != performance Processing resources are limited UI is real-time, with deadlines Based on human time-requirements S/W needn’t do everything instantly Or in given order, or even at all Users are not computer programsSome Requests areCost-Sensitive: Some Requests are Cost-Sensitive “Can you reformat this document in two columns?” “Yes, but it will take an hour.” (or cost $300) “Ack! Forget it! I don’t want it that much.” Software Needn’t Do EverythingAchieving Responsiveness: Achieving Responsiveness Timely feedback Parallel work Queue optimization Dynamic time-management Test under realistic conditionsTimely Feedback: Timely Feedback Meet human time-deadlines Acknowledge user input immediately Display “busy” & progress indicators Display important information first Fake “heavyweight” computations Achieving ResponsivenessAcknowledgeUser-Input Immediately: Acknowledge User-Input Immediately “Fred, what are our plans this weekend?” “Just a minute. I’m trying to get this idea down on paper.” “OK” [finishes writing] “OK, done. Our plans for this weekend? Let’s see…” Timely FeedbackReal Progress Bars: Real Progress Bars MacOSX: File copy utilityDisplayImportant Information First: Display Important Information First Clock display on a computer screen Timely FeedbackDisplayImportant Information First: Display Important Information First Timely FeedbackDisplayImportant Information First: Display Important Information First Timely FeedbackFake“Heavyweight” Operations: Fake “Heavyweight” Operations “Let’s try putting the piano here.” “OK, but to save strain on my back, I brought a cardboard piano that we can move around until you know where you want it, then I’ll bring in the real piano and put it there.” Timely FeedbackWork in Parallel: Work in Parallel Delegate non-time-critical work to background processes But don’t overdo it Work ahead Smart: Prepare likely requests Dumb: Start before order complete Achieving ResponsivenessDelegate Workto Background Processes: Delegate Work to Background Processes “Hello. I’d like to fly from San Francisco to New York next Thursday, returning Sunday evening, as cheaply as possible.” “OK, I’ll check flights & fares and call you back.” Work in ParallelSmart Work-Ahead:Prepare Likely Requests: Smart Work-Ahead: Prepare Likely Requests “Here are the overheads for your talk. Also, I figured you’d want paper copies to hand out to the audience, so I made 20.” “Thanks, Fred, you’re a godsend!” Work in ParallelDumb Work-Ahead:Start Before Order Complete: Dumb Work-Ahead: Start Before Order Complete “And what would you like for the main course?” “Hmmm. We haven’t decided yet. It all looks good!” “Well, while you decide, I’ll get your appetizer started and fetch your wine. When I return, you can tell me your choice for the entree.” Work in ParallelQueue Optimization: Queue Optimization Re-order queued events Flush tasks that have become moot Merge compatible tasks Achieving ResponsivenessOptimizeOrder of Queued Events : Optimize Order of Queued Events [A building custodian starts his day] “Let’s see. What’s on my list for today? Sweep hallways floors. Sand baseboards in hallway. Repaint stairway banisters.” “Well, let’s see… I won’t sweep until after I sand because sanding will leave dust and grit everywhere. If I paint the banisters first, I’ll have to wait a day or two before I can sand the baseboards. So I’d better sand, then sweep, then paint.” Queue OptimizationFlush Queued Tasksthat Have Become Moot: Flush Queued Tasks that Have Become Moot “Before I postpone my family’s vacation & work overtime all week to get the Smith proposal done on time, are we still hoping to land that contract?” “Nope. We decided not to go after the Smith contract.” “Whew! Glad I checked.” Queue OptimizationDynamic Time Management: Dynamic Time Management Adjust strategy if not keeping up Decrease quality or quantity to keep up Predict time; decide how to do task Predict time-compliance; negotiate quality or whether to do task at all Achieving ResponsivenessAdjust StrategyBased on Queue Length: Adjust Strategy Based on Queue Length WordStar (CP/M, 1 mhz computer) If lagging, last typed character visible Stops updating other areas of screen Most Word Processors Display reflects input-queue position Last typed character lags Even today! Dynamic Time ManagementAdjust Strategy Basedon Deadline-Compliance: Adjust Strategy Based on Deadline-Compliance InXight Cone Tree Dynamic Time ManagementAdjust StrategyBased on Time-Estimates: Adjust Strategy Based on Time-Estimates “Are you ready to order?” “Almost. Maybe N more minutes. It all looks good!” “OK, I’ll…” SWITCH N: { N < 1 min: “… wait here.” 1 <= N < 3 min: “… take these other folks’ order & come right back.” N >= 3 min: “… go away, & come back when I see you’re ready.” } Dynamic Time ManagementTest UnderRealistic Conditions: Test Under Realistic Conditions Test under heavy loads Test on slower systems Slower computers Slower net connections Have programmers use slower systems? Achieving ResponsivenessThe End: The End For details, see GUI Bloopers Responsiveness Bloopers chapter Website: www.GUI-Bloopers.com More recent book: Web Bloopers Website: www.Web-Bloopers.com