where user experience and software engineering meet

62
where user experience and software engineering meet Andrew J. Ko Monday, November 30, 2009

Post on 19-Oct-2014

670 views

Category:

Technology


0 download

DESCRIPTION

My talk at CHOOSE 2009 in Bern, Switzerland.

TRANSCRIPT

Page 1: Where User Experience And Software Engineering Meet

where  user  experience  andsoftware  engineering  meet

Andrew  J.  Ko

Monday, November 30, 2009

Page 2: Where User Experience And Software Engineering Meet

2

I  evaluate  solutions

I  study  problems

I  design  solutions

in  method,  I’m  an  HCI  researcher

Monday, November 30, 2009

Page 3: Where User Experience And Software Engineering Meet

2

I  evaluate  solutions

I  study  problems

I  design  solutions

in  method,  I’m  an  HCI  researcher

Monday, November 30, 2009

Page 4: Where User Experience And Software Engineering Meet

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

Page 5: Where User Experience And Software Engineering Meet

4

human-­‐computer  interaction

software  engineering

me

Monday, November 30, 2009

Page 6: Where User Experience And Software Engineering Meet

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

Page 7: Where User Experience And Software Engineering Meet

6

how  do  we  get  the

user-­‐centered  software  evolution

right  designdesign  right?

Monday, November 30, 2009

Page 8: Where User Experience And Software Engineering Meet

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

#$!!!"

%$!!!"

&$!!!"

'$!!!"

(!$!!!"

(#$!!!"

)*+",-'"

./0",--"

123",--"

456",!!"

)*+",!("

./0",!#"

123",!#"

456",!7"

489",!%"

:*;",!<"

=>?",!<"

:5@",!&"

489",!A"

:*;",!'"

=>?",!'"

9/829?/9B"

5B/9B"

*>C3/"

>29/"

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

!"#$%&'(,

!"#$%&'(-

Monday, November 30, 2009

Page 9: Where User Experience And Software Engineering Meet

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

456",!!"

)*+",!("

./0",!#"

123",!#"

456",!7"

489",!%"

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

Monday, November 30, 2009

Page 10: Where User Experience And Software Engineering Meet

9

information  needs  at  Microsoft

observed  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

Page 11: Where User Experience And Software Engineering Meet

10

17  developers  hard  at  work  across  25  hoursVisual  StudioWindows  Vistaservice  packsmobile  devicesdiscussion  boardseducational  toolsSQL  serverMS  OfficeEncryptionDRM...

Monday, November 30, 2009

Page 12: Where User Experience And Software Engineering Meet

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

Page 13: Where User Experience And Software Engineering Meet

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

Page 14: Where User Experience And Software Engineering Meet

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

Page 15: Where User Experience And Software Engineering Meet

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

Page 16: Where User Experience And Software Engineering Meet

13

interrupted  every  ~5-­‐10  minutes

blocked  every  ~10  minutes

software  development  work  is  highly  fragmented

Monday, November 30, 2009

Page 17: Where User Experience And Software Engineering Meet

14

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

Monday, November 30, 2009

Page 18: Where User Experience And Software Engineering Meet

14

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

Monday, November 30, 2009

Page 19: Where User Experience And Software Engineering Meet

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?how  can  I  coordinate  this  with  the  other  code?did  I  follow  my  team’s  conventions?what  is  the  purpose  of  this  code?is  this  a  legitimate  problem?what  changes  are  part  of  this  submission?how  difficult  will  this  problem  be  to  fix?what  information  was  relevant  to  my  task?

21  information  needs  observed  (by  frequency)

Monday, November 30, 2009

Page 20: Where User Experience And Software Engineering Meet

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?how  can  I  coordinate  this  with  the  other  code?did  I  follow  my  team’s  conventions?what  is  the  purpose  of  this  code?is  this  a  legitimate  problem?what  changes  are  part  of  this  submission?how  difficult  will  this  problem  be  to  fix?what  information  was  relevant  to  my  task?

5  information  needs  least  often  satisfied%  unsatisfied36%

61%

15%41%

44%

Monday, November 30, 2009

Page 21: Where User Experience And Software Engineering Meet

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?how  can  I  coordinate  this  with  the  other  code?did  I  follow  my  team’s  conventions?what  is  the  purpose  of  this  code?is  this  a  legitimate  problem?what  changes  are  part  of  this  submission?how  difficult  will  this  problem  be  to  fix?what  information  was  relevant  to  my  task?

3  were  debugging  related  ...

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

Monday, November 30, 2009

Page 22: Where User Experience And Software Engineering Meet

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?how  can  I  coordinate  this  with  the  other  code?did  I  follow  my  team’s  conventions?what  is  the  purpose  of  this  code?is  this  a  legitimate  problem?what  changes  are  part  of  this  submission?how  difficult  will  this  problem  be  to  fix?what  information  was  relevant  to  my  task?

2  were  design  related

knowing  what  software  should  do  was  rarely  known

Monday, November 30, 2009

Page 23: Where User Experience And Software Engineering Meet

19

software  development  is  tacitplans  and  specifications  are  unwritten

developers  have  to  communicate  to  make  progress

Monday, November 30, 2009

Page 24: Where User Experience And Software Engineering Meet

20

software  quality  depends  highly  on  the  quality  of  human  communication  and  cognition

these  human  activities  are  faulty  and  unreliable

Monday, November 30, 2009

Page 25: Where User Experience And Software Engineering Meet

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

456",!!"

)*+",!("

./0",!#"

123",!#"

456",!7"

489",!%"

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

Monday, November 30, 2009

Page 26: Where User Experience And Software Engineering Meet

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

456",!!"

)*+",!("

./0",!#"

123",!#"

456",!7"

489",!%"

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

Monday, November 30, 2009

Page 27: Where User Experience And Software Engineering Meet

22

observe  failure

guess  the  cause

check  the  guess

solved!

wrong!

why  is  debugging  such  a  challenge?

Monday, November 30, 2009

Page 28: Where User Experience And Software Engineering Meet

23

Whyline

click  the  faulty  output

follow  dependencies

solved!observe  failure

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

Monday, November 30, 2009

Page 29: Where User Experience And Software Engineering Meet

why  was  the  line  black?

24

an  example  ...

Monday, November 30, 2009

Page 30: Where User Experience And Software Engineering Meet

why  was  the  line  black?

24

an  example  ...

Monday, November 30, 2009

Page 31: Where User Experience And Software Engineering Meet

25

record  the  problem

Monday, November 30, 2009

Page 32: Where User Experience And Software Engineering Meet

25

record  the  problem

Monday, November 30, 2009

Page 33: Where User Experience And Software Engineering Meet

26

load  the  recording

Monday, November 30, 2009

Page 34: Where User Experience And Software Engineering Meet

27why  was  the  line  color  black?Monday, November 30, 2009

Page 35: Where User Experience And Software Engineering Meet

27why  was  the  line  color  black?Monday, November 30, 2009

Page 36: Where User Experience And Software Engineering Meet

28why  was  the  line  color  black?Monday, November 30, 2009

Page 37: Where User Experience And Software Engineering Meet

28

code

executions  of  code(execution  events)

why  was  the  line  color  black?Monday, November 30, 2009

Page 38: Where User Experience And Software Engineering Meet

29why  was  the  line  color  black?Monday, November 30, 2009

Page 39: Where User Experience And Software Engineering Meet

29

followup  questions  about  selected  event

why  was  the  line  color  black?Monday, November 30, 2009

Page 40: Where User Experience And Software Engineering Meet

29

followup  questions  about  selected  event

why  was  the  line  color  black?Monday, November 30, 2009

Page 41: Where User Experience And Software Engineering Meet

29

selected  dependency  highlighted  in  source

why  was  the  line  color  black?Monday, November 30, 2009

Page 42: Where User Experience And Software Engineering Meet

30why  was  the  line  color  black?Monday, November 30, 2009

Page 43: Where User Experience And Software Engineering Meet

30

because  gSlider  was  used  twice,  ignoring  bSlider

why  was  the  line  color  black?Monday, November 30, 2009

Page 44: Where User Experience And Software Engineering Meet

31

a  comparison  study

Whyline  group  

controlgroup

vs

both  groups  had  modern  IDE  features    show  declaration,  show  callers,  show  references,  etc.

Monday, November 30, 2009

Page 45: Where User Experience And Software Engineering Meet

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

Page 46: Where User Experience And Software Engineering Meet

0

6

12

18

24

30minutes

whyline control

0

2

4

6

8

10#  successful

33

bug  1  results

more  successful  in  half  the  time

p<.05 p<.05

Monday, November 30, 2009

Page 47: Where User Experience And Software Engineering Meet

0

2

4

6

8

10minutes

0

2

4

6

8

10#  successful

whyline control

34

bug  2  results

more  successful  in  the  same  time

p<.05

4  of  10gave  up

Monday, November 30, 2009

Page 48: Where User Experience And Software Engineering Meet

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

Page 49: Where User Experience And Software Engineering Meet

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

456",!!"

)*+",!("

./0",!#"

123",!#"

456",!7"

489",!%"

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

Monday, November 30, 2009

Page 50: Where User Experience And Software Engineering Meet

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

#$!!!"

%$!!!"

&$!!!"

'$!!!"

(!$!!!"

(#$!!!"

)*+",-'"

./0",--"

123",--"

456",!!"

)*+",!("

./0",!#"

123",!#"

456",!7"

489",!%"

:*;",!<"

=>?",!<"

:5@",!&"

489",!A"

:*;",!'"

=>?",!'"

9/829?/9B"

5B/9B"

*>C3/"

>29/"

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

!"#$%&'(,

!"#$%&'(-

Monday, November 30, 2009

Page 51: Where User Experience And Software Engineering Meet

■ 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

Page 52: Where User Experience And Software Engineering Meet

four  types  of  contributors

38

CORE  devs  drivers,  super  reviewers,  module  owners,  peers

ACTIVE  devs  assigned  bug  reports

REPORTERSreported  and  commented  on  bug  reports

USERSonly  commented  on  bug  reports

1%

1%

80% 18%

Monday, November 30, 2009

Page 53: Where User Experience And Software Engineering Meet

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

Page 54: Where User Experience And Software Engineering Meet

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

Page 55: Where User Experience And Software Engineering Meet

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

Page 56: Where User Experience And Software Engineering Meet

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

Page 57: Where User Experience And Software Engineering Meet

%  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

Page 58: Where User Experience And Software Engineering Meet

%  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

Page 59: Where User Experience And Software Engineering Meet

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

Page 60: Where User Experience And Software Engineering Meet

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

Page 61: Where User Experience And Software Engineering Meet

ongoing  work

44

enabling  every  user  to  submit

precisestructuredaggregatablebug  reports

with  zero  training?

Monday, November 30, 2009

Page 62: Where User Experience And Software Engineering Meet

45?three  takeaway  points

software  quality  depends  highly  on  the  quality  of  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