enabling data-driven api design with community usage data ...human-centered api design •apply hci...
TRANSCRIPT
![Page 1: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/1.jpg)
EnablingData-DrivenAPIDesignwithCommunityUsageData:ANeed-FindingStudy
Tianyi Zhang1,Björn Hartmann2,Miryung Kim3,ElenaGlassman11HarvardUniversity2UCBerkeley3UCLA
![Page 2: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/2.jpg)
APIsareubiquitous
WebAPIs SDKs Frameworks&libraries
…
![Page 3: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/3.jpg)
APIsareaprimaryinterfacebetweenprogrammersandcomputers
Programmer ComputerAPIs
![Page 4: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/4.jpg)
![Page 5: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/5.jpg)
Human-CenteredAPIDesign
• ApplyHCImethodstoAPIdesign,
e.g.,A/Btesting[1,2,3]
• Butitiscostly.
• ToomanyAPIsandusagescenarios
• Participantrecruitment
1. Ellis et al. The factory pattern in API design: A usability evaluation. ICSE 20072. Stylos et al. A case study of API design for improved usability. VL/HCC 2008.3. Stylos et al. The implications of method placement on API learnability. FSE 2008.
![Page 6: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/6.jpg)
AlotofAPIusagedatahasbeengeneratedfromprogrammercommunities…
![Page 7: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/7.jpg)
HowcanweleveragecommunitydatatoinformbetterAPIdesign?
![Page 8: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/8.jpg)
Contributions
• Semi-structuredinterviewswith23APIdesigners
• Anin-depthanalysisoftheirdesignstyles,usabilityevaluation
methodsinpractice,andunmetinformationneeds
• SeveraltooldesignimplicationsforleveragingcommunityAPIusage
datatoinformAPIdesign
![Page 9: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/9.jpg)
Interviewwith23APIDesigners
Alloy Partisan
6
6
11
WebAPIs DSLs Libraries
10
11
2
LargeTechCompanies Academia Open-source
![Page 10: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/10.jpg)
InterviewQuestions
• Whatdesigndecisions andtradeoffshaveyoumade?
• Howdoyouevaluate theusabilityofyourAPIs?
• Whatchallengesandfrustrations doyouhave?
• Whatinformation wouldyouliketodiscover?
• Whattoolsupport doyouneed?
![Page 11: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/11.jpg)
Finding1.DesignerSpectrum
User-driven Self-driven Visionary Closed-world
![Page 12: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/12.jpg)
User-DrivenAPIDesigner
• User-centereddesignprocess
• Surveyuserneeds
• APIstability
![Page 13: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/13.jpg)
Self-DrivenAPIDesigner
• Maketheirowndecisions
• Cleargoalsandpriorities
• APIexpressiveness&
extensibility
![Page 14: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/14.jpg)
VisionaryAPIDesigner
• Lackcommunicationchannels
tousers
• Designwithimaginedusecases
• EagertoknowAPIusageinthe
wild
![Page 15: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/15.jpg)
Closed-WorldAPIDesigner
• APIsusedinternallyinacompany
• Workcloselywithallstakeholders
• LeasttensionbetweenAPI
designersandusers
![Page 16: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/16.jpg)
Finding1.DesignerSpectrum
Theyallacknowledgedtheimportanceofkeepingusersinmind.
User-driven Self-driven Visionary Closed-world
![Page 17: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/17.jpg)
Finding2.UsabilityEvaluationMethods
![Page 18: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/18.jpg)
Finding3.UnmetInformationNeeds
![Page 19: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/19.jpg)
Finding3.UnmetInformationNeeds
P13:“I’dliketolookattheircodeandseeiftheywritecodeintheidealwaywewantthemtowrite.BecauseeveryAPIhasitsownpurposewhenthey’rebeingdesigned,andwehavesomeusecasesinmind.Ifnot,we’llprobablythinkifthisAPIisdesignedinaproperwayorweshouldcreatesomemoreobviousAPIstodealwiththiscase.”
![Page 20: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/20.jpg)
Finding3.UnmetInformationNeeds
![Page 21: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/21.jpg)
Finding3.UnmetInformationNeeds
P6:“Iwanttogetwhatpeoplearethinking,notjustwhethertheyareabletousethisAPI,likethat’swhatyouwouldgetfromlikeminingGitHubrepos.Butwhatyouarenotgettingislikethispersonstillspentthreehoursgoogling howtousethisAPI,andhespentanhouronStackOverflowtryingtofigureoutwhatwasgoingon,intheend,hegotthat,butitwasafrustratingattempt.”
![Page 22: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/22.jpg)
Finding3.UnmetInformationNeeds
![Page 23: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/23.jpg)
Finding3.UnmetInformationNeeds
![Page 24: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/24.jpg)
Finding4.OpportunitiesforToolSupport
• MiningandvisualizingAPIusagemistakes
• Interactivelyanalyzingpopulation-levelAPIusage
• AdaptingelicitationmechanismstounderstandAPIusers’mental
models
• ExploringthedesignspaceofsimilarAPIs
• LiveAPIdocumentation
![Page 25: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/25.jpg)
MiningandVisualizingDocumented Mistakes
![Page 26: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/26.jpg)
CapturingUndocumented LearningBarriers
• Participants suspectalotofissueswerenotreportedatall.
P9:“IthinkthepeoplethatusetheAPIwithnopriorexperience perhapshitthewallquickly.That’stherealissue.Butforthemostpart,I suspectthatImissedmostoftheeasyproblems goingonthere becausetheydon’tconveythatfirstbarrier withtheirremote communication.”
![Page 27: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/27.jpg)
CapturingUndocumented LearningBarriers
• Compilation/runtimeerrorsaregoodindicatorsofundocumentedlearningbarriers.
![Page 28: Enabling Data-Driven API Design with Community Usage Data ...Human-Centered API Design •Apply HCI methods to API design, e.g., A/B testing [1,2,3] •But it is costly. •Too many](https://reader036.vdocuments.net/reader036/viewer/2022063021/5fe5ef7b4c99522709426e17/html5/thumbnails/28.jpg)
Conclusion
• APIdesignersdesiretohaveaholisticviewofrealAPIusecases.
• Suchrealusecasesaregatheredinaninformalwayduetoalackof
toolsupport.
• NewinteractivesystemsareneededtodistillavarietyofAPIusage
insightsfromcommunitydata.