where ¡user ¡experience ¡and software ¡engineering ¡meet
Andrew ¡J. ¡Ko
Monday, November 30, 2009
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
Monday, November 30, 2009
2
Monday, November 30, 2009
2
Monday, November 30, 2009
3
Monday, November 30, 2009
4
Monday, November 30, 2009
5
Monday, November 30, 2009
6
Monday, November 30, 2009
7
a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft debugging ¡with ¡the ¡Whyline recent ¡work ¡in ¡leveraging ¡the ¡crowd
,!!" !(" !#" ,!#" ,!7" ,!%"
!"#$%&'()*+ !"#$%
Monday, November 30, 2009
8
a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft recent ¡work ¡in ¡leveraging ¡the ¡crowd debugging ¡with ¡the ¡Whyline
,!!" !(" !#" ,!#" ,!7" ,!%"
!"#$%&'()*+ !"#$%
Monday, November 30, 2009
9
with ¡the ¡Human ¡Interactions ¡in ¡Programming ¡group ¡at ¡Microsoft ¡Research
Monday, November 30, 2009
10
Visual ¡Studio Windows ¡Vista service ¡packs mobile ¡devices discussion ¡boards educational ¡tools SQL ¡server MS ¡Office Encryption DRM ...
Monday, November 30, 2009
11
writing ¡code submitting ¡code triaging ¡bugs reproducing ¡a ¡failure understanding ¡behavior reasoning ¡about ¡design maintaining ¡awareness non-‑work ¡activity
Monday, November 30, 2009
11
writing ¡code submitting ¡code triaging ¡bugs reproducing ¡a ¡failure understanding ¡behavior reasoning ¡about ¡design maintaining ¡awareness non-‑work ¡activity
Monday, November 30, 2009
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
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
13
interrupted ¡every ¡ ~5-‑10 ¡minutes blocked ¡every ¡ ~10 ¡minutes
software ¡ development ¡ work ¡is ¡highly ¡ fragmented
Monday, November 30, 2009
14
next, ¡we ¡looked ¡ for ¡information ¡ that ¡developers ¡ sought ¡to ¡get ¡ their ¡work ¡ done ¡...
Monday, November 30, 2009
14
next, ¡we ¡looked ¡ for ¡information ¡ that ¡developers ¡ sought ¡to ¡get ¡ their ¡work ¡ done ¡...
Monday, November 30, 2009
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?
Monday, November 30, 2009
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?
% ¡unsatisfied 36% 61% 15% 41% 44%
Monday, November 30, 2009
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?
reproducing, ¡ diagnosing, ¡ and ¡scoping ¡ failures ¡were ¡ the ¡most ¡time-‑ consuming ¡ activities
Monday, November 30, 2009
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?
knowing ¡what ¡ software ¡ should ¡do ¡was ¡ rarely ¡known
Monday, November 30, 2009
19
plans ¡and ¡specifications ¡are ¡unwritten
developers ¡have ¡to ¡ communicate ¡to ¡make ¡progress
Monday, November 30, 2009
20
Monday, November 30, 2009
21
a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft debugging ¡with ¡the ¡Whyline recent ¡work ¡in ¡leveraging ¡the ¡crowd
,!!" !(" !#" ,!#" ,!7" ,!%"
!"#$%&'()*+ !"#$%
Monday, November 30, 2009
21
a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft debugging ¡with ¡the ¡Whyline recent ¡work ¡in ¡leveraging ¡the ¡crowd
,!!" !(" !#" ,!#" ,!7" ,!%"
!"#$%&'()*+ !"#$%
Monday, November 30, 2009
22
failure guess ¡the ¡ cause check ¡the ¡ guess
solved! wrong!
Monday, November 30, 2009
23
click ¡the ¡ faulty ¡output
follow ¡ dependencies
solved!
failure
a ¡Workspace ¡for ¡Helping ¡You ¡Link ¡Instructions, ¡Numbers, ¡and ¡Events
Monday, November 30, 2009
24
Monday, November 30, 2009
24
Monday, November 30, 2009
25
Monday, November 30, 2009
25
Monday, November 30, 2009
26
Monday, November 30, 2009
27
Monday, November 30, 2009
27
Monday, November 30, 2009
28
Monday, November 30, 2009
28
Monday, November 30, 2009
29
Monday, November 30, 2009
29
Monday, November 30, 2009
29
Monday, November 30, 2009
29
Monday, November 30, 2009
30
Monday, November 30, 2009
30
Monday, November 30, 2009
31
¡show ¡declaration, ¡show ¡callers, ¡show ¡references, ¡etc.
Monday, November 30, 2009
32
■ one ¡w/ ¡simple ¡fix ■ one ¡w/ ¡complex ¡fix
Monday, November 30, 2009
6 12 18 24 30 minutes whyline control 2 4 6 8 10 # ¡successful 33
p<.05 p<.05
Monday, November 30, 2009
2 4 6 8 10 minutes 2 4 6 8 10 # ¡successful whyline control 34
p<.05
4 ¡of ¡10 gave ¡up
Monday, November 30, 2009
35
Monday, November 30, 2009
36
a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft debugging ¡with ¡the ¡Whyline recent ¡work ¡in ¡leveraging ¡the ¡crowd
,!!" !(" !#" ,!#" ,!7" ,!%"
!"#$%&'()*+ !"#$%
Monday, November 30, 2009
36
a ¡study ¡of ¡information ¡needs ¡at ¡Microsoft debugging ¡with ¡the ¡Whyline recent ¡work ¡in ¡leveraging ¡the ¡crowd
,!!" !(" !#" ,!#" ,!7" ,!%"
!"#$%&'()*+ !"#$%
Monday, November 30, 2009
37
with ¡my ¡PhD ¡student, ¡Parmit ¡Chilana
Monday, November 30, 2009
38
reported ¡and ¡ commented ¡on ¡ bug ¡reports
1% 1% 80% 18%
Monday, November 30, 2009
39
!" #$!!!" %$!!!" &$!!!" '$!!!" (!$!!!" (#$!!!" )*+",-'" ./0",--" 123",--" 456",!!" )*+",!(" ./0",!#" 123",!#" 456",!7" 489",!%" :*;",!<" =>?",!<" :5@",!&" 489",!A" :*;",!'" =>?",!'" 9/829?/9B" 5B/9B" *>C3/" >29/"
!"#$%&'()*+ !"#$%&'(+ !"#$%&'(, !"#$%&'(-
Monday, November 30, 2009
39
!" #$!!!" %$!!!" &$!!!" '$!!!" (!$!!!" (#$!!!" )*+",-'" ./0",--" 123",--" 456",!!" )*+",!(" ./0",!#" 123",!#" 456",!7" 489",!%" :*;",!<" =>?",!<" :5@",!&" 489",!A" :*;",!'" =>?",!'" 9/829?/9B" 5B/9B" *>C3/" >29/"
!"#$%&'()*+ !"#$%&'(+ !"#$%&'(, !"#$%&'(-
Monday, November 30, 2009
40
!"# $!"# %!"# &!"# '!"# (!"# )!"# *!"# +!"# ,!"# $!!"#
2345.# 30-.# 67/89321.# 9:30;/8.1.# <0:=9># <0-?@A0-;.# 9:52896# B>.6#
Monday, November 30, 2009
40
!"# $!"# %!"# &!"# '!"# (!"# )!"# *!"# +!"# ,!"# $!!"#
2345.# 30-.# 67/89321.# 9:30;/8.1.# <0:=9># <0-?@A0-;.# 9:52896# B>.6#
Monday, November 30, 2009
41
!"# $!"# %!"# &!"# '!"# (!!"# )*+#,-'# ./0#,-'# 1/2#,--# 345#,!!# )*+#,!(# 678#,!(# 94:#,!$# )*;#,!<# =/>#,!%# 678#,!%# 94:#,!?# )*;#,!&# =/>#,!@# 678#,!@# 94:#,!'# 07+/# *0A8/# +/27+B/+#
!"#$%&'()*+ !"#$%&'(+ !"#$%&'(, !"#$%&'(-
Monday, November 30, 2009
41
!"# $!"# %!"# &!"# '!"# (!!"# )*+#,-'# ./0#,-'# 1/2#,--# 345#,!!# )*+#,!(# 678#,!(# 94:#,!$# )*;#,!<# =/>#,!%# 678#,!%# 94:#,!?# )*;#,!&# =/>#,!@# 678#,!@# 94:#,!'# 07+/# *0A8/# +/27+B/+#
!"#$%&'()*+ !"#$%&'(+ !"#$%&'(, !"#$%&'(-
Monday, November 30, 2009
42
Monday, November 30, 2009
43
Monday, November 30, 2009
44
Monday, November 30, 2009
45
Monday, November 30, 2009