550 likes | 694 Views
Software Usability Course notes for CSI 5122 - University of Ottawa. Section 4: Usability in the Software Engineering Process Timothy C. Lethbridge < tcl@site.uottawa.ca > http:// www.site.uottawa.ca /~ tcl /csi5122. An Assertion.
E N D
Software UsabilityCourse notes for CSI 5122 - University of Ottawa Section 4: Usability in the Software Engineering Process Timothy C. Lethbridge <tcl@site.uottawa.ca> http://www.site.uottawa.ca/~tcl/csi5122
An Assertion • Lack of usability is the most critical problem facing software engineering • In other words, the biggest gains in • software quality • productivity • cost-reduction • user satisfaction • profitability, etc. … would come from focusing on usability and related issues. Section 4: Usability and the SE Process
Evidence for the assertion • Failures of projects due in significant part to usability • E.g. FAA air traffic control systems • Observations of ‘great’ software vs. not-so-great with respect to usability • Great: • Google (many of its products) • Microsoft Office (some of it) • Mac-OS (much of it) • Not-so-great: • Much in-house custom software • Software development environments (many aspects) • Web sites (far too many of them) • I have observed many users formally and informally • My survey of practitioners (next slide) • Analysis of benefits and cost savings Section 4: Usability and the SE Process
Practitioner survey about 75 topics taught to computer science students • Lethbridge, T.C. (2000), “What Knowledge is Important to a Software Engineer?”, IEEE Computer, May, pp. 44-50. Section 4: Usability and the SE Process
More on the survey • HCI was second in terms of “knowledge gap” • Where importance most exceeds current knowledge • The top 5 (out of 75) • Negotiation • HCI/user interfaces • Leadership • Real-time system design • Management • I believe not much has changed since 1998 Section 4: Usability and the SE Process
Sources of resistance to adopting usability practices • Primarily: Inadequate education of students, practitioners and managers • Which leads to: • Lack of introspection ability of software developers • Unable to think like users • Lack of integration of usability into core development processes • Persistent beliefs • Most software is usable enough • Usability can be fixed at the “end” • Usability should be left to the HCI experts Section 4: Usability and the SE Process
Causes of the problems in education • Faculty don’t have the background either • The field of HCI is seen as distinct and separate • The field is perceived as too soft: • There is a tendency to focus teaching and research on hard deterministic areas • There is little industry push for research in this area • There is little employer pull for greater education Section 4: Usability and the SE Process
Some partial solutions • The SE and HCI communities need to work more closely together • Core UI development and evaluation topics should be considered jointly part of the two fields • Improve education by ensuring HCI permeates curriculum models, certifications, accreditation, etc. • Enable corporations to be certified for their usability capabilities • Would help “pull” education up by creating a need for professionals • Clients might come to learn that better software comes from such companies Section 4: Usability and the SE Process
Should aspects of HCI be considered also integral to Software Engineering? • I argue yes: • Usability should have no special status as compared to reliability, efficiency, maintainability, etc. • Design involving users and their needs must drive software development Section 4: Usability and the SE Process
Should aspects of HCI be considered also integral to Software Engineering? • Yes, but this does not preclude HCI specialists • Analogies: • A software engineer must be capable of designing architectural elements for storing data and information • But there will always need to be database specialists • Similar argument can be made for • Security experts, performance experts, requirements experts, etc. • Core UCD techniques (coming slides) can be part of the SE field and part of a broader HCI field Section 4: Usability and the SE Process
User-Centred DesignRevisited Section 4: Usability and the SE Process
User centered design (UCD) • A term encompassing a range of software engineering approaches that focus on the user • We have talked about many of the techniques Section 4: Usability and the SE Process
UCD main stages • Pre-design • Design stage • Post-design Section 4: Usability and the SE Process
UCD Pre-design techniques: • Understand classes of user • Understand tasks • Perform a competitive analysis • i.e. usability testing of competing products • Set usability goals • using the metrics we discussed earlier Section 4: Usability and the SE Process
UCD Design-stage techniques • Parallel design • Many developers generate UI ideas in parallel on their own • They meet together and pick the best ideas • Has maximum chance of discovering good ideas, without constraining the possibilities too soon Section 4: Usability and the SE Process
UCD Design-stage techniques - 2 • Involving users • Critiquing design • Discovering problems • with the UI • with task descriptions • through user testing • Contributing ideas • But users are not designers so don't ask them what do you want? Section 4: Usability and the SE Process
UCD Design-stage techniques - 3 • Coordinating the interfaces of all parts of the system • Including documentation, training etc. • Applying guidelines and heuristic rules • Prototyping Section 4: Usability and the SE Process
UCD Design-stage techniques - 4 • Performing empirical testing using simulations and prototypes • To discover problems • Measuring usability of the simulations and prototypes • Performing iterative design • Design • Evaluate • Redesign Section 4: Usability and the SE Process
UCD Post-Design stage • Gather on-going feedback about potential improvements Section 4: Usability and the SE Process
Another term related to UCD • “Outside-in development” Section 4: Usability and the SE Process
Economics of Usability Section 4: Usability and the SE Process
An example of economic analysis in UCD: Economics of heuristic evaluation • We will look at • Number of people needed • Cost-benefit analysis Section 4: Usability and the SE Process
How many evaluators should you use in a heuristic evaluation? • Given: • N = total number of problems to be found • Clearly depends on: • Quality of the original design or work performed so far • Size and complexity of the system • λ= proportion of all usability problems found by a single evaluator: • Studies have shown this averages 34% (range 19% to 51%) • The percent of the total number of different usability problems found by aggregating reports from i evaluators is: • PercentProblemsFound(i) = 1-(1-λ)i Section 4: Usability and the SE Process
We can plot the effect of this formula for different λ Section 4: Usability and the SE Process
We can also look at specific figures for the average case where λ=34% • Evaluators Percent Problems found • 1 34 • 2 56 • 3 71 • 4 81 • 5 87 • 6 92 • 7 95 • Given a desired percentage of problems to be found, we can determine the number of evaluators needed • by inverting the formula: • i = ln(1-P)/ln(1-l) • It is not economical to try to find every problem but where should we stop? Section 4: Usability and the SE Process
How much cost savings can we achieve by finding a given problem? • This depends on many factors, but • The worst problems are the easiest to find and will be found first • As we put more effort into finding problems, we will find problems that are less and less severe • We can model the cost savings from fixing a problem as seconds of wasted time per user session • Very approximate, but useful • Some problems will only occur once, then never again because the user will learn to avoid them Section 4: Usability and the SE Process
Visualizing the diminishing returns • Estimated number of seconds per session saved by fixing the nth worst problem found in a particular project. Section 4: Usability and the SE Process
Deciding what to fix and the resulting savings • From the previous chart, find the total savings if we just solve the first n problems • We can divide this by the n to find the average savings per problem had we just found the first n • A typical answer for this would be 2 seconds Section 4: Usability and the SE Process
Deciding what to fix and the resulting savings • Some data from the previous chart, where there were about 200 problems eventually found • nth problem s/session saved average savings had we just • found found the first n problems • 1 10.6s 10.6s • 10 7.4s 8.9s • 20 4.9s 7.4s • 40 2.2s 5.4s • 60 1.0s 4.1s • 80 0.45s 3.2s • 100 0.20s 2.6s • In a large organization, we can gather data to calibrate our own charts and tables like the above. Section 4: Usability and the SE Process
Deciding how many evaluators to include:Costs • Fixed costs to organize the evaluation: (no matter how many evaluators): • Planning • Preparing materials • Writing report and communicating results to developers • Typical estimate for a small system • = 75 hours work • = $4500 Section 4: Usability and the SE Process
Costs continued • Variable costs for each evaluator • Weighted salary for time spent • Cost of analyzing the evaluator's report • Typical estimate for an average system • 8 hours work for each evaluator ($480) • 2 hours work analyzing the report ($120) • Total = $600 • Total costs = $4500 + 600i • Where i is the number of evaluators Section 4: Usability and the SE Process
Deciding how many evaluators to include:Benefits • Total benefits vary substantially depending on nature of system. • In some published studies, the benefit averaged $15000 per problem • On the following slides are two benefit calculation examples Section 4: Usability and the SE Process
Benefits example 1:small mass-market system • Three factors to consider: • 1. Time saved per session per problem • Will obviously vary from problem to problem and session to session • Reasonable average 2s saved per session per problem (similar to data shown earlier) • 2. Typical number of sessions of use per system • Assume an average of 50 sessions • 3. Number of users (licenses) • Assume an average of 3000 users Section 4: Usability and the SE Process
Benefits example 1 - continued • Therefore: total time = 2s * 50 sessions * 3000 users = 300000 seconds per problem! = 83.3 hours of saved time • If weighted at $60 per hour: • Potential benefit is $5000 per problem • Assuming only half the problems will get fixed: • Benefit = $2500 per problem found • Or added value to a license per problem fixed = 2s * 50 sessions = 100s = $1.66 Section 4: Usability and the SE Process
Benefits example 2:small in-house system • The same three factors to consider: • 1. Same average time savings per session (2s) • 2. More average sessions over lifetime (200) • 3. Fewer users (40) • Therefore: total time = 2s * 200 sessions * 40 users = 16000 s / problem = 4.4 hours of saved time • Using the same weighted value of $60 per hour: • Potential benefit is $266 per problem • or $133 per problem actually fixed. Section 4: Usability and the SE Process
Cost benefit analysis • So will a usability study be economical? • Let’s put the costs and benefits together Section 4: Usability and the SE Process
Example 1: Mass-market system • Insp Total benefit % probs total ben/cost • cost /prob found benefits ratio • 2 5700 2500 56 280000 49 • 3 6300 2500 71 355000 56 • 4 6900 2500 81 405000 59 • 5 7500 2500 87 435000 58 • 6 8100 2500 92 460000 57 • 7 8700 2500 95 475000 55 Section 4: Usability and the SE Process
Example 2: In-house system • Insp Total benefit % probs total ben/cost • cost /prob found benefits ratio • 1 5098 132 34 8976 1.8 • 2 5700 133 56 14896 2.6 • 3 6300 133 71 18886 3.0 • 4 6900 133 81 21546 3.1 • 5 7500 133 87 23142 3.1 • 6 8100 133 92 24472 3.0 • 7 8700 133 95 25270 2.9 Section 4: Usability and the SE Process
Odds and Ends Section 4: Usability and the SE Process
Prototyping • A prototyping tool should: • Be easy to learn and use • Possess good visual capabilities • Allow easy extension • Give full support for the types of interface being developed • Support modular programming Section 4: Usability and the SE Process
Types of prototyping • Horizontal prototyping • Complete UI, but no underlying functionality • Vertical prototyping • In-depth functionality of only certain parts • Scenario prototyping • Selected paths only Section 4: Usability and the SE Process
The design rationale document • Allows you to keep control of the various alternatives considered and decisions made • Explain your usability decisions so others know the reasoning you followed Section 4: Usability and the SE Process
Discount usability engineering • User and task observation • Cheap prototyping and scenarios • Simplified thinking aloud • Heuristic evaluation • Key goal, communicate qualitative information to developers in order to improve interfaces • as opposed to qualitative measures • A study was performed of iterative design involving discount usability engineering • Improvements of 38% after each stage Section 4: Usability and the SE Process
Consumability - Closely allied to usability • Ability for customers to get rapid return on investment. • Factors include • all aspects of usability • installability / uninstallability • lack of inter-product dependency/interaction • low footprint: lack of run-time resource consumption • backward-compatibility • integratability • appropriate prioritization of iterations and features to yield business value • low purchase cost Section 4: Usability and the SE Process
Rating corporate maturity with respect to usability Section 4: Usability and the SE Process
The Model for Usability Maturity (MUM)(proposed by Lethbridge!) • A 5-level CMM-like categorization of organizations • Based on their interaction with human end-users in software development • (Each level beyond 1 builds on the previous levels) • Level 1: Haphazard • Level 2: Defined input from users / usability awareness • Level 3: Iterative interaction with users / design for usability • Level 4: Controlled and measured involvement of users • Level 5: Continually improving usability Section 4: Usability and the SE Process
Level 1: Haphazard • If you can get users to use the system, then it is considered good enough! Section 4: Usability and the SE Process
Level 2: Defined input from users / usability awareness • Users involved in requirements reviews • Feedback from users at reviews is incorporated into the next stage • Design team members have basic training in usability • Design team adheres to usability standards for look and feel • Reuse of well-understood controls, styles etc. Section 4: Usability and the SE Process
Level 3: Iterative interaction with users/ design for usability • Users actively involved in decision making • Use case / task analysis • Competitive analysis • Design with careful attention to usability guidelines • Usability design decisions are carefully analyzed and the decisions are recorded • E.g. options analysis, tables of pros and cons Section 4: Usability and the SE Process
Level 3: Continued • User input and feedback with repeated prototypes • From paper prototypes to functional prototypes • Informal qualitative observations of users or heuristic evaluations • Discount usability engineering Section 4: Usability and the SE Process