lecture 19: getting users to like you · ¨ seeing is believing, clients do not understand code ¤...

42
LECTURE 19: GETTING USERS TO LIKE YOU CSE 442 – Software Engineering

Upload: others

Post on 17-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

LECTURE19:GETTINGUSERSTOLIKEYOUCSE442–SoftwareEngineering

Page 2: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

WhyHaveaUI?

¨  Solvingclient'sproblem:reasontheygiveusmoney

Page 3: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

WhyHaveaUI?

¨  Solvingclient'sproblem:reasontheygiveusmoney¤ WillonlyknowjobdonewhenUIshowscompletion

Page 4: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

WhyHaveaUI?

¨  Solvingclient'sproblem:reasontheygiveusmoney¤ WillonlyknowjobdonewhenUIshowscompletion

¨  UIshowsinformationuserusestocompletetasks¤ Easytoconfuseoroverwhelm;neededinformationonly¤ Clutterunhelpful&distractsusersfromfinishingtasks

Page 5: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

AskBeforeStartingUI

What problem is being solved?

What is necessary to solve this problem?

What makes it obvious problem is solved?

Page 6: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

UIGuidestheUser

¨  Providesdirection&notjustfiguratively

Page 7: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

UIGuidestheUser

¨  Providesdirection&notjustfiguratively

Page 8: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Developer-Centric==BadUI

Page 9: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Developer-Centric==BadUI

Page 10: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

GoodUI==User-Centric

Page 11: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

GoodUI==User-Centric

Page 12: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

UIGuidestheUser

¨  Providesdirection&notjustfiguratively¤ Centerofallinteractions;mustguideuserthroughwork

¨  WalkingthroughUIhelpsclarifyrequirements¤ Double-checkperformsactionsthatclientneeds¤ Pictureworth1000wordsandeliminatesneedingjargon¤ Providesvisuals&solimitsdifferingexpectations

¨  Ensuresyou’velearneddetailsyouneedtoknow¤ Keeppluggingawayuntilclientsatisfiedwithideas¤ Keepscostslow;onlycodeareaswherechangeunlikely

Page 13: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Atten

tion

Paid

TimeRequiredToUnderstand

KeepItSimple

Page 14: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Atten

tion

Paid

TimeRequiredToUnderstand

Alreadyquit&started/r/yousuck

KeepItSimple

Page 15: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Atten

tion

Paid

TimeRequiredToUnderstand

Alreadyquit&started/r/yousuck

KeepItSimple

Page 16: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

GoodUICanBeDense

Page 17: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

User==Idiot

¨  NevergowrongunderestimatingusersIQ¤ Peoplealwayssufferdropinintelligencewhentyping

¨  Beexplicitwithanswerssooutcomesunderstood

Page 18: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

User==Idiot

¨  Provideuserswithoptionsonlywhenrequired¤ Theywillscrewup,nomatterwhatyoutry¤ Theuserwillgetreally,REALLY,REALLYangryatyou¤ Minimumoptionsneededisgoalofanalysisphase

Page 19: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

AbilityWithApp

lication

TimeUsingProgram

Ongoing

Cancelled

Passion Threshold

Suck Threshold

User’sThoughtsofAProgram

You are here

Page 20: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

AbilityWithApp

lication

TimeUsingProgram

Ongoing

Cancelled

Passion Threshold

Suck Threshold

User’sThoughtsofAProgram

Huge bonus is here

Page 21: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

GetYourUserInvolvedNow

¨  Lessthanfiveminutestogettheminvestedinapp¤ Donotlosetimebyforcingthemtoreadusermanual¤ Enticeuserwithanattractiveapplication

¨  Givequickpayoffbyhavingsimplefirststep¤ Makethatfirststepeasyusingcommonmetaphors

¨  Quicklygettonexttasksotheydonotloseflow

Page 22: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

TestYourDesigns

¨  Alwaystestdesignbeforecodingworkreallybegins¤ Makecertainactionsclear,logical,&easilyfollowed¤ Pretendbeingdifferentusers&verifymeetstheirneeds¤  Ifseemsboring&slow:excellent!Usersalsoimpatient

¨  Talkfriendthroughusewithoutthemseeingscreen¤ ProgramUIwaytoocomplexforuserswhenyoucannot

Page 23: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Over-the-PhoneTest(1)

Page 24: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Over-the-PhoneTest(2)

Page 25: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

But,OnceYouDo…

¨  Seeingisbelieving,clientsdonotunderstandcode¤  IftheyseeworkingGUI,assumeprogramnearlydone¤  Ifitappearsclosetodone,thinkitisclosetodone

Page 26: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

But,OnceYouDo…

¨  Seeingisbelieving,clientsdonotunderstandcode¤  IftheyseeworkingGUI,assumeprogramnearlydone¤  Ifitappearsclosetodone,thinkitisclosetodone

¨  Useroughsamplesofwhatscreenswillbe¤ Youwillmakechanges,solimittimewastednow¤ Drawimportantcomponents,butlimitdetailsshown¤ Focusonwhatmatters:ignoreGUIyoudonotcontrol

Page 27: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

NapkinLooksUnfinished

Page 28: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

AbilityWithApp

lication

TimeUsingProgram

Ongoing

Cancelled

Passion Threshold

Suck Threshold

User’sThoughtsofAProgram

Testing gets you here

Page 29: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

AbilityWithApp

lication

TimeUsingProgram

Ongoing

Cancelled

Passion Threshold

Suck Threshold

User’sThoughtsofAProgram

Bonus is still here

Page 30: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

GoodNews

¨  Clientexistandwilluseyourprogram…

Page 31: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

BadNews

¨  …butdonotlikeusingyourprogramApplication Market Share

Page 32: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

WhyDon’tYouLoveMe?

¨  Usersarepassionateaboutprogramsthat:¤ Reactandinteractincomfortable,commonway¤ Providespeedupsorshortcutsforcommontasks¤  Includeeastereggsknownbyonlyselectfew¤ Outcomeofanactionispredictableinallsituations

Page 33: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

ComfortLevel

¨  UsingstandardUIlowerslearningtimes¤ Usersimmediatelycomfortablewithapplication¤ Providesbigegoboost–“Iknowhowtousethis”¤ Whatitshouldlooklikeiswhatitactuallylookslike¤ Familiarityisprettiness–thoughttolookprettier

¨  Alwaysfollowguidelinesforlook-and-feel¤ CouldeitherbesetbyOSorsystemorboth¤ Matchusersexpectationsiftheyconflict

Page 34: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Shortcuts

¨  Addhooksfor“powerusers”tobemoreefficient¤ RenamevariableusingAlt-Shift-RinEclipse¤ Automaticallyexpandsysout&syserr ¤ ApplyquickfixusingCtlr-1

¨  Timetoreach“PassionLevel”improved¤ Passionateusersrecruitnewcustomersforyourwork

¨  Providesproofofmembershipinthein-crowd

Page 35: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Predictability

¨  Mostimportantofalltheseextras¨  VeryquicklyusersstoppayingattentiontotheUI

¤ Fadesintobackground(untilitlosestheirdata)¤ Differencebetweenlove&hateisveryslim

Page 36: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Predictability

¨  Donothurttheonesyoulove¤ Keepbuttonsinsamelocation¤ OKmeansonethingandnever,everchanges¤ Changeonlytofocususer’sattention

Page 37: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Predictability

¨  Donothurttheonesyoulove¤ Keepbuttonsinsamelocation¤ OKmeansonethingandnever,everchanges¤ Changeonlytofocususer’sattention

Page 38: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

Predictability

¨  Donothurttheonesyoulove¤ Keepbuttonsinsamelocation¤ OKmeansonethingandnever,everchanges¤ Changeonlytofocususer’sattention

Page 39: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

WhereAretheFeatures?

Page 40: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

AbilityWithApp

lication

TimeUsingProgram

Ongoing

Cancelled

Passion Threshold

Suck Threshold

User’sThoughtsofAProgram

Now we are here

Page 41: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

AbilityWithApp

lication

TimeUsingProgram

Word

Angel

User’sThoughtsofAProgram

Passion Threshold

Suck Threshold

Now we are here

Page 42: LECTURE 19: GETTING USERS TO LIKE YOU · ¨ Seeing is believing, clients do not understand code ¤ If they see working GUI, assume program nearly done ¤ If it appears close to done,

TestYourUIDesignEarly

¨  Testprogram'sscreensonyourself&potentialusers¤ Makecertaintoincludepeopleatallexperiencelevels¤ Describescreen&actionstoseeifuseissimpleenough¤ GotothatstartandwalkthroughrequirementsonGUI¤ Simulateallinputevenifitmeansusingfingerasmouse¤ Eachpauseorquestionshowswheredesignnotready