where user experience and software engineering meet Andrew J. - - PowerPoint PPT Presentation

where user experience and software engineering meet
SMART_READER_LITE
LIVE PREVIEW

where user experience and software engineering meet Andrew J. - - PowerPoint PPT Presentation

where user experience and software engineering meet Andrew J. Ko Monday, November 30, 2009 in method , Im an HCI researcher I study problems I evaluate I design


slide-1
SLIDE 1

where ¡user ¡experience ¡and software ¡engineering ¡meet

Andrew ¡J. ¡Ko

Monday, November 30, 2009

slide-2
SLIDE 2

2

I ¡evaluate ¡ solutions I ¡study ¡ problems I ¡design ¡ solutions

in ¡method, ¡I’m ¡an ¡HCI ¡researcher

Monday, November 30, 2009

slide-3
SLIDE 3

2

I ¡evaluate ¡ solutions I ¡study ¡ problems I ¡design ¡ solutions

in ¡method, ¡I’m ¡an ¡HCI ¡researcher

Monday, November 30, 2009

slide-4
SLIDE 4

3

I ¡want ¡to ¡make ¡it ¡easy ¡to ¡ create ¡useful, ¡usable ¡software that ¡empowers ¡ and ¡enriches ¡ users’ ¡lives

in ¡topic, ¡I’m ¡an ¡SE ¡researcher

Monday, November 30, 2009

slide-5
SLIDE 5

4

human-­‑computer ¡ interaction software ¡ engineering me

Monday, November 30, 2009

slide-6
SLIDE 6

5

how ¡do ¡we ¡get ¡the ¡ how ¡do ¡get ¡the ¡ human-­‑computer ¡ interaction software ¡ engineering

(the ¡lives ¡of ¡users) (the ¡lives ¡of ¡developers)

right ¡design design ¡right ? ?

Monday, November 30, 2009

slide-7
SLIDE 7

6

how ¡do ¡we ¡get ¡the user-­‑centered ¡ software ¡evolution right ¡design design ¡right?

Monday, November 30, 2009

slide-8
SLIDE 8

7

why ¡is ¡software ¡evolution ¡difficult?

talk ¡outline

how ¡can ¡tools ¡help ¡software ¡evolution? how ¡can ¡users ¡help ¡software ¡evolution?

a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft debugging ¡with ¡the ¡Whyline recent ¡work ¡in ¡leveraging ¡the ¡crowd

,!!" !(" !#" ,!#" ,!7" ,!%"

!"#$%&'()*+ !"#$%

Monday, November 30, 2009

slide-9
SLIDE 9

8

talk ¡outline

why ¡is ¡software ¡evolution ¡difficult? how ¡can ¡tools ¡help ¡software ¡evolution? how ¡can ¡users ¡help ¡software ¡evolution?

a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft recent ¡work ¡in ¡leveraging ¡the ¡crowd debugging ¡with ¡the ¡Whyline

,!!" !(" !#" ,!#" ,!7" ,!%"

!"#$%&'()*+ !"#$%

Monday, November 30, 2009

slide-10
SLIDE 10

9

information ¡needs ¡at ¡Microsoft

  • bserved ¡25 ¡hours ¡of ¡coding ¡and ¡bug ¡

fixing, ¡in ¡the ¡role ¡of ¡“new ¡hires” 357 ¡pages ¡of ¡handwritten ¡notes 4,231 ¡events ¡in ¡ an ¡spreadsheet

with ¡the ¡Human ¡Interactions ¡in ¡Programming ¡group ¡at ¡Microsoft ¡Research

Monday, November 30, 2009

slide-11
SLIDE 11

10

17 ¡developers ¡ hard ¡at ¡work ¡ across ¡25 ¡hours

Visual ¡Studio Windows ¡Vista service ¡packs mobile ¡devices discussion ¡boards educational ¡tools SQL ¡server MS ¡Office Encryption DRM ...

Monday, November 30, 2009

slide-12
SLIDE 12

11

writing ¡code submitting ¡code triaging ¡bugs reproducing ¡a ¡failure understanding ¡behavior reasoning ¡about ¡design maintaining ¡awareness non-­‑work ¡activity

8 ¡activities

Monday, November 30, 2009

slide-13
SLIDE 13

11

writing ¡code submitting ¡code triaging ¡bugs reproducing ¡a ¡failure understanding ¡behavior reasoning ¡about ¡design maintaining ¡awareness non-­‑work ¡activity

8 ¡activities

Monday, November 30, 2009

slide-14
SLIDE 14

12

face ¡to ¡face ¡conversation phone ¡call instant ¡message e-­‑mail ¡alerts bug ¡report ¡change ¡alerts task ¡avoidance getting ¡blocked meetings task ¡completion

9 ¡reasons ¡for ¡ switching ¡tasks

Monday, November 30, 2009

slide-15
SLIDE 15

12

face ¡to ¡face ¡conversation phone ¡call instant ¡message e-­‑mail ¡alerts bug ¡report ¡change ¡alerts task ¡avoidance getting ¡blocked meetings task ¡completion

9 ¡reasons ¡for ¡ switching ¡tasks

Monday, November 30, 2009

slide-16
SLIDE 16

13

interrupted ¡every ¡ ~5-­‑10 ¡minutes blocked ¡every ¡ ~10 ¡minutes

software ¡ development ¡ work ¡is ¡highly ¡ fragmented

Monday, November 30, 2009

slide-17
SLIDE 17

14

next, ¡we ¡looked ¡ for ¡information ¡ that ¡developers ¡ sought ¡to ¡get ¡ their ¡work ¡ done ¡...

Monday, November 30, 2009

slide-18
SLIDE 18

14

next, ¡we ¡looked ¡ for ¡information ¡ that ¡developers ¡ sought ¡to ¡get ¡ their ¡work ¡ done ¡...

Monday, November 30, 2009

slide-19
SLIDE 19

15

what ¡have ¡my ¡coworkers ¡been ¡doing? ¡ what ¡code ¡could ¡have ¡caused ¡this ¡behavior? ¡ have ¡resources ¡I ¡depend ¡on ¡changed? ¡ what ¡code ¡caused ¡this ¡program ¡state? how ¡do ¡I ¡use ¡this ¡data ¡structure ¡or ¡function? did ¡I ¡make ¡any ¡mistakes? what ¡is ¡the ¡program ¡supposed ¡to ¡do? in ¡what ¡situations ¡does ¡this ¡failure ¡occur? is ¡this ¡problem ¡worth ¡fixing? why ¡was ¡this ¡code ¡implemented ¡this ¡way? what’s ¡statically ¡related ¡to ¡this ¡code? what ¡are ¡the ¡implications ¡of ¡this ¡change? what ¡does ¡the ¡failure ¡look ¡like?

21 ¡information ¡needs ¡observed ¡(by ¡frequency)

Monday, November 30, 2009

slide-20
SLIDE 20

16

what ¡have ¡my ¡coworkers ¡been ¡doing? ¡ what ¡code ¡could ¡have ¡caused ¡this ¡behavior? ¡ have ¡resources ¡I ¡depend ¡on ¡changed? ¡ what ¡code ¡caused ¡this ¡program ¡state? how ¡do ¡I ¡use ¡this ¡data ¡structure ¡or ¡function? did ¡I ¡make ¡any ¡mistakes? what ¡is ¡the ¡program ¡supposed ¡to ¡do? in ¡what ¡situations ¡does ¡this ¡failure ¡occur? is ¡this ¡problem ¡worth ¡fixing? why ¡was ¡this ¡code ¡implemented ¡this ¡way? what’s ¡statically ¡related ¡to ¡this ¡code? what ¡are ¡the ¡implications ¡of ¡this ¡change? what ¡does ¡the ¡failure ¡look ¡like?

5 ¡information ¡needs ¡least ¡often ¡satisfied

% ¡unsatisfied 36% 61% 15% 41% 44%

Monday, November 30, 2009

slide-21
SLIDE 21

17

what ¡have ¡my ¡coworkers ¡been ¡doing? ¡ what ¡code ¡could ¡have ¡caused ¡this ¡behavior? have ¡resources ¡I ¡depend ¡on ¡changed? ¡ what ¡code ¡caused ¡this ¡program ¡state? how ¡do ¡I ¡use ¡this ¡data ¡structure ¡or ¡function? did ¡I ¡make ¡any ¡mistakes? what ¡is ¡the ¡program ¡supposed ¡to ¡do? in ¡what ¡situations ¡does ¡this ¡failure ¡occur? is ¡this ¡problem ¡worth ¡fixing? why ¡was ¡this ¡code ¡implemented ¡this ¡way? what’s ¡statically ¡related ¡to ¡this ¡code? what ¡are ¡the ¡implications ¡of ¡this ¡change? what ¡does ¡the ¡failure ¡look ¡like?

3 ¡were ¡debugging ¡related ¡...

reproducing, ¡ diagnosing, ¡ and ¡scoping ¡ failures ¡were ¡ the ¡most ¡time-­‑ consuming ¡ activities

Monday, November 30, 2009

slide-22
SLIDE 22

18

what ¡have ¡my ¡coworkers ¡been ¡doing? ¡ what ¡code ¡could ¡have ¡caused ¡this ¡behavior? have ¡resources ¡I ¡depend ¡on ¡changed? ¡ what ¡code ¡caused ¡this ¡program ¡state? ¡ how ¡do ¡I ¡use ¡this ¡data ¡structure ¡or ¡function? did ¡I ¡make ¡any ¡mistakes? what ¡is ¡the ¡program ¡supposed ¡to ¡do? in ¡what ¡situations ¡does ¡this ¡failure ¡occur? is ¡this ¡problem ¡worth ¡fixing? why ¡was ¡this ¡code ¡implemented ¡this ¡way? what’s ¡statically ¡related ¡to ¡this ¡code? what ¡are ¡the ¡implications ¡of ¡this ¡change? what ¡does ¡the ¡failure ¡look ¡like?

2 ¡were ¡design ¡related

knowing ¡what ¡ software ¡ should ¡do ¡was ¡ rarely ¡known

Monday, November 30, 2009

slide-23
SLIDE 23

19

software ¡development ¡is ¡tacit

plans ¡and ¡specifications ¡are ¡unwritten

developers ¡have ¡to ¡ communicate ¡to ¡make ¡progress

Monday, November 30, 2009

slide-24
SLIDE 24

20

software ¡quality ¡depends ¡highly ¡on ¡the ¡quality ¡of ¡ human ¡communication ¡and ¡cognition these ¡human ¡activities ¡are ¡faulty ¡and ¡unreliable

Monday, November 30, 2009

slide-25
SLIDE 25

21

talk ¡outline

why ¡is ¡software ¡evolution ¡difficult? how ¡can ¡tools ¡help ¡software ¡evolution? how ¡can ¡users ¡help ¡software ¡evolution?

a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft debugging ¡with ¡the ¡Whyline recent ¡work ¡in ¡leveraging ¡the ¡crowd

,!!" !(" !#" ,!#" ,!7" ,!%"

!"#$%&'()*+ !"#$%

Monday, November 30, 2009

slide-26
SLIDE 26

21

talk ¡outline

why ¡is ¡software ¡evolution ¡difficult? how ¡can ¡tools ¡help ¡software ¡evolution? how ¡can ¡users ¡help ¡software ¡evolution?

a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft debugging ¡with ¡the ¡Whyline recent ¡work ¡in ¡leveraging ¡the ¡crowd

,!!" !(" !#" ,!#" ,!7" ,!%"

!"#$%&'()*+ !"#$%

Monday, November 30, 2009

slide-27
SLIDE 27

22

  • bserve ¡

failure guess ¡the ¡ cause check ¡the ¡ guess

solved! wrong!

why ¡is ¡debugging ¡such ¡a ¡challenge?

Monday, November 30, 2009

slide-28
SLIDE 28

23

Whyline

click ¡the ¡ faulty ¡output

follow ¡ dependencies

solved!

  • bserve ¡

failure

a ¡Workspace ¡for ¡Helping ¡You ¡Link ¡Instructions, ¡Numbers, ¡and ¡Events

Monday, November 30, 2009

slide-29
SLIDE 29

why ¡was ¡the ¡line ¡black?

24

an ¡example ¡...

Monday, November 30, 2009

slide-30
SLIDE 30

why ¡was ¡the ¡line ¡black?

24

an ¡example ¡...

Monday, November 30, 2009

slide-31
SLIDE 31

25

record ¡the ¡problem

Monday, November 30, 2009

slide-32
SLIDE 32

25

record ¡the ¡problem

Monday, November 30, 2009

slide-33
SLIDE 33

26

load ¡the ¡recording

Monday, November 30, 2009

slide-34
SLIDE 34

27

why ¡was ¡the ¡line ¡color ¡black?

Monday, November 30, 2009

slide-35
SLIDE 35

27

why ¡was ¡the ¡line ¡color ¡black?

Monday, November 30, 2009

slide-36
SLIDE 36

28

why ¡was ¡the ¡line ¡color ¡black?

Monday, November 30, 2009

slide-37
SLIDE 37

28

code executions ¡of ¡code (execution ¡events)

why ¡was ¡the ¡line ¡color ¡black?

Monday, November 30, 2009

slide-38
SLIDE 38

29

why ¡was ¡the ¡line ¡color ¡black?

Monday, November 30, 2009

slide-39
SLIDE 39

29

followup ¡ questions ¡about ¡ selected ¡event

why ¡was ¡the ¡line ¡color ¡black?

Monday, November 30, 2009

slide-40
SLIDE 40

29

followup ¡ questions ¡about ¡ selected ¡event

why ¡was ¡the ¡line ¡color ¡black?

Monday, November 30, 2009

slide-41
SLIDE 41

29

selected ¡ dependency ¡ highlighted ¡ in ¡source

why ¡was ¡the ¡line ¡color ¡black?

Monday, November 30, 2009

slide-42
SLIDE 42

30

why ¡was ¡the ¡line ¡color ¡black?

Monday, November 30, 2009

slide-43
SLIDE 43

30

because ¡gSlider ¡ was ¡used ¡twice, ¡ ignoring ¡bSlider

why ¡was ¡the ¡line ¡color ¡black?

Monday, November 30, 2009

slide-44
SLIDE 44

31

a ¡comparison ¡study

Whyline ¡ group ¡ control group vs both ¡groups ¡had ¡modern ¡IDE ¡features ¡

¡show ¡declaration, ¡show ¡callers, ¡show ¡references, ¡etc.

Monday, November 30, 2009

slide-45
SLIDE 45

32

ArgoUML, ¡an ¡open ¡source ¡ software ¡design ¡tool ~150,000 ¡lines ¡of ¡code 22 ¡external ¡libraries chose ¡two ¡bug ¡reports ¡ from ¡version ¡18.1

■ one ¡w/ ¡simple ¡fix ■ one ¡w/ ¡complex ¡fix

subject ¡program

Monday, November 30, 2009

slide-46
SLIDE 46

6 12 18 24 30 minutes whyline control 2 4 6 8 10 # ¡successful 33

bug ¡1 ¡results

more ¡successful ¡in ¡half ¡the ¡time

p<.05 p<.05

Monday, November 30, 2009

slide-47
SLIDE 47

2 4 6 8 10 minutes 2 4 6 8 10 # ¡successful whyline control 34

bug ¡2 ¡results

more ¡successful ¡in ¡the ¡same ¡time

p<.05

4 ¡of ¡10 gave ¡up

Monday, November 30, 2009

slide-48
SLIDE 48

35

unsolicited ¡quotes ¡from ¡users

“This ¡is ¡great, ¡when ¡can ¡I ¡get ¡this ¡for ¡C?” “My ¡god, ¡this ¡is ¡so ¡cool.” “It's ¡so ¡nice ¡and ¡straight ¡and ¡simple...”

Monday, November 30, 2009

slide-49
SLIDE 49

36

talk ¡outline

why ¡is ¡software ¡evolution ¡difficult? how ¡can ¡tools ¡help ¡software ¡evolution? how ¡can ¡users ¡help ¡software ¡evolution?

a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft debugging ¡with ¡the ¡Whyline recent ¡work ¡in ¡leveraging ¡the ¡crowd

,!!" !(" !#" ,!#" ,!7" ,!%"

!"#$%&'()*+ !"#$%

Monday, November 30, 2009

slide-50
SLIDE 50

36

talk ¡outline

why ¡is ¡software ¡evolution ¡difficult? how ¡can ¡tools ¡help ¡software ¡evolution? how ¡can ¡users ¡help ¡software ¡evolution?

a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft debugging ¡with ¡the ¡Whyline recent ¡work ¡in ¡leveraging ¡the ¡crowd

,!!" !(" !#" ,!#" ,!7" ,!%"

!"#$%&'()*+ !"#$%

Monday, November 30, 2009

slide-51
SLIDE 51

■ quantitative ¡analysis ¡of ¡to ¡characterize ¡bug ¡ report ¡resolution ¡trends ■ qualitative ¡analysis ¡to ¡explain ¡bug ¡report ¡ resolution ¡trends

37

does ¡open ¡bug ¡reporting ¡work?

with ¡my ¡PhD ¡student, ¡Parmit ¡Chilana

comprehensive ¡analysis ¡of ¡~500,000 ¡ reports ¡from ¡the ¡Mozilla ¡community

Monday, November 30, 2009

slide-52
SLIDE 52

four ¡types ¡of ¡contributors

38

CORE ¡devs ¡drivers, ¡super ¡reviewers, ¡module ¡owners, ¡peers ACTIVE ¡devs ¡assigned ¡bug ¡reports REPORTERS

reported ¡and ¡ commented ¡on ¡ bug ¡reports

USERS

  • nly ¡commented ¡
  • n ¡bug ¡reports

1% 1% 80% 18%

Monday, November 30, 2009

slide-53
SLIDE 53

39

!" #$!!!" %$!!!" &$!!!" '$!!!" (!$!!!" (#$!!!" )*+",-'" ./0",--" 123",--" 456",!!" )*+",!(" ./0",!#" 123",!#" 456",!7" 489",!%" :*;",!<" =>?",!<" :5@",!&" 489",!A" :*;",!'" =>?",!'" 9/829?/9B" 5B/9B" *>C3/" >29/"

!"#$%&'()*+ !"#$%&'(+ !"#$%&'(, !"#$%&'(-

# ¡of ¡comment ¡contributors ¡over ¡time

REPORTERs ¡are ¡the ¡most ¡active ¡commenters

Monday, November 30, 2009

slide-54
SLIDE 54

39

!" #$!!!" %$!!!" &$!!!" '$!!!" (!$!!!" (#$!!!" )*+",-'" ./0",--" 123",--" 456",!!" )*+",!(" ./0",!#" 123",!#" 456",!7" 489",!%" :*;",!<" =>?",!<" :5@",!&" 489",!A" :*;",!'" =>?",!'" 9/829?/9B" 5B/9B" *>C3/" >29/"

!"#$%&'()*+ !"#$%&'(+ !"#$%&'(, !"#$%&'(-

# ¡of ¡comment ¡contributors ¡over ¡time

REPORTERs ¡are ¡the ¡most ¡active ¡commenters

Monday, November 30, 2009

slide-55
SLIDE 55

resolution ¡by ¡reporter ¡type

40

!"# $!"# %!"# &!"# '!"# (!"# )!"# *!"# +!"# ,!"# $!!"#

  • ./0-1.-#

2345.# 30-.# 67/89321.# 9:30;/8.1.# <0:=9># <0-?@A0-;.# 9:52896# B>.6#

most ¡REPORTER ¡reports ¡are ¡not ¡FIXED

Monday, November 30, 2009

slide-56
SLIDE 56

resolution ¡by ¡reporter ¡type

40

!"# $!"# %!"# &!"# '!"# (!"# )!"# *!"# +!"# ,!"# $!!"#

  • ./0-1.-#

2345.# 30-.# 67/89321.# 9:30;/8.1.# <0:=9># <0-?@A0-;.# 9:52896# B>.6#

most ¡REPORTER ¡reports ¡are ¡not ¡FIXED

Monday, November 30, 2009

slide-57
SLIDE 57

% ¡reports ¡FIXED ¡by ¡each ¡type

41

!"# $!"# %!"# &!"# '!"# (!!"# )*+#,-'# ./0#,-'# 1/2#,--# 345#,!!# )*+#,!(# 678#,!(# 94:#,!$# )*;#,!<# =/>#,!%# 678#,!%# 94:#,!?# )*;#,!&# =/>#,!@# 678#,!@# 94:#,!'# 07+/# *0A8/# +/27+B/+#

!"#$%&'()*+ !"#$%&'(+ !"#$%&'(, !"#$%&'(-

REPORTERs ¡have ¡dropped ¡in ¡effectiveness

Monday, November 30, 2009

slide-58
SLIDE 58

% ¡reports ¡FIXED ¡by ¡each ¡type

41

!"# $!"# %!"# &!"# '!"# (!!"# )*+#,-'# ./0#,-'# 1/2#,--# 345#,!!# )*+#,!(# 678#,!(# 94:#,!$# )*;#,!<# =/>#,!%# 678#,!%# 94:#,!?# )*;#,!&# =/>#,!@# 678#,!@# 94:#,!'# 07+/# *0A8/# +/27+B/+#

!"#$%&'()*+ !"#$%&'(+ !"#$%&'(, !"#$%&'(-

REPORTERs ¡have ¡dropped ¡in ¡effectiveness

Monday, November 30, 2009

slide-59
SLIDE 59

42

why ¡are ¡REPORTERs ¡ineffective?

sampled ¡and ¡categorized ¡100 ¡reports ¡of ¡each ¡ resolution ¡type... most ¡REPORTER ¡reports ¡= ¡technical ¡support ¡for ¡ power ¡users’ ¡tinkering ¡and ¡using ¡old ¡builds rarely ¡provided ¡static ¡and ¡dynamic ¡context ¡ adequate ¡to ¡reproduce ¡problems reported ¡problems, ¡resolved ¡shortly ¡after ¡

Monday, November 30, 2009

slide-60
SLIDE 60

is ¡open ¡bug ¡reporting ¡useful?

■ significant ¡overhead ¡to ¡process ¡bad ¡reports ■ only ¡a ¡skewed ¡subset ¡of ¡users ¡report ¡bugs ■ users ¡who ¡report ¡bugs ¡are ¡bad ¡at ¡providing ¡ the ¡static ¡and ¡dynamic ¡context ¡of ¡problems ■ text ¡is ¡a ¡terribly ¡imprecise ¡medium ¡for ¡ expressing ¡this ¡context

43

yes, ¡but ¡...

Monday, November 30, 2009

slide-61
SLIDE 61
  • ngoing ¡work

44

enabling ¡every ¡user ¡to ¡submit precise structured aggregatable bug ¡reports with ¡zero ¡training?

Monday, November 30, 2009

slide-62
SLIDE 62

45

?

three ¡takeaway ¡points

software ¡quality ¡depends ¡highly ¡on ¡the ¡quality ¡

  • f ¡human ¡communication ¡and ¡cognition

human ¡communication ¡and ¡cognition ¡are ¡ faulty ¡and ¡unreliable carefully ¡designed ¡interactive ¡tools ¡can ¡ compensate ¡for ¡these ¡limitations

questions?

Monday, November 30, 2009