28
Enabling Data-Driven API Design with Community Usage Data: A Need-Finding Study Tianyi Zhang 1 , Björn Hartmann 2 , Miryung Kim 3 , Elena Glassman 1 1 Harvard University 2 UC Berkeley 3 UCLA

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

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Conclusion

• APIdesignersdesiretohaveaholisticviewofrealAPIusecases.

• Suchrealusecasesaregatheredinaninformalwayduetoalackof

toolsupport.

• NewinteractivesystemsareneededtodistillavarietyofAPIusage

insightsfromcommunitydata.