designing for interruption and liveness

26
DESIGNING FOR INTERRUPTION AND LIVENESS Chris Parnin, Georgia Tech @chrisparnin ninlabs.com checkbox.io

Upload: chris-parnin

Post on 26-Jan-2015

108 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: DESIGNING FOR INTERRUPTION AND LIVENESS

DESIGNING FORINTERRUPTION AND

LIVENESS

Chris Parnin, Georgia Tech@chrisparnin ninlabs.com checkbox.io

Page 3: DESIGNING FOR INTERRUPTION AND LIVENESS

Great success, but...Everyone said:

Instant Feedback is goodNo one explained:A theory of why?

Is the only goal, faster and faster feedback? Side-by-side.

Page 4: DESIGNING FOR INTERRUPTION AND LIVENESS

Taken to an extreme...

It is not unusual to wait 30 minutes to compile and test a single change in medium-sized C++ projects.

Page 5: DESIGNING FOR INTERRUPTION AND LIVENESS

Meanwhile...

Page 6: DESIGNING FOR INTERRUPTION AND LIVENESS

An Attempt to ExplainLOW

LIVENESSHIGH

INTERRUPTION

COGNITIVE CONSEQUENCE

DESIGN PRINCIPLES

EXAMPLE TOOL/APPLICATION

Page 7: DESIGNING FOR INTERRUPTION AND LIVENESS

Programmer Information Needs After Memory Failure - [Parnin ICPC’12] Best Paper Award

Building a Conceptual Framework for Interruption

familiarity memory

spatial memory

relational memory

feeling of knowing

recency memory

dentate gyrus

Brodmann 10 dorsolateral prefrontal cortexsemantic memory

declarative memory

Page 8: DESIGNING FOR INTERRUPTION AND LIVENESS

I want to make a pie

Page 9: DESIGNING FOR INTERRUPTION AND LIVENESS

PROSPECTIVE MEMORY

Page 10: DESIGNING FOR INTERRUPTION AND LIVENESS

Prospective aids

Developers, intentionally introduce compile errors as reminders

Page 11: DESIGNING FOR INTERRUPTION AND LIVENESS

DESIGN OPPORTUNITY

Use negative feedback positively: can be a prospective

memory aid

Page 12: DESIGNING FOR INTERRUPTION AND LIVENESS

ATTENTIVE MEMORY

d

Page 13: DESIGNING FOR INTERRUPTION AND LIVENESS

Touch points

How We Refactor And How We Know It - [Murphy-Hill, Parnin ICSE’09/TSE’11] Sigsoft Distinguished Paper Award

Burg’s Timelaspe “probes”

Page 14: DESIGNING FOR INTERRUPTION AND LIVENESS

DESIGN OPPORTUNITY

Feedback is global,should it also be focused and

maintained?

Page 15: DESIGNING FOR INTERRUPTION AND LIVENESS

EPISODIC MEMORY

Page 16: DESIGNING FOR INTERRUPTION AND LIVENESS

• Programmers do this all the time,

• Use blogs, diffs, backward recall

Improved whendone episodically.

Page 17: DESIGNING FOR INTERRUPTION AND LIVENESS

DESIGN OPPORTUNITY

Feedback is instantaneous,should it be progressive?

Page 18: DESIGNING FOR INTERRUPTION AND LIVENESS

Visualization of Fine-Grained Code Change HistoryYoungSeok Yoon et. al

Page 19: DESIGNING FOR INTERRUPTION AND LIVENESS

ASSOCIATIVE MEMORY

Page 20: DESIGNING FOR INTERRUPTION AND LIVENESS

Who moved my cheese?

Page 21: DESIGNING FOR INTERRUPTION AND LIVENESS

DESIGN OPPORTUNITY

Feedback is decoupled,should it be integrated?

Page 22: DESIGNING FOR INTERRUPTION AND LIVENESS

Embedded visualizations

Visual Monitoring of Numeric Variables Embedded in Source Code --Fabian Beck et.al

Visual Code Annotations for CyberphysicalProgramming -- Ben Swift et.al

Page 23: DESIGNING FOR INTERRUPTION AND LIVENESS

CONCEPTUAL MEMORY

Page 24: DESIGNING FOR INTERRUPTION AND LIVENESS

Novice Golfers vs Expert Golfers

Page 25: DESIGNING FOR INTERRUPTION AND LIVENESS

DESIGN OPPORTUNITY

When giving feedback, what concepts are represented,

who are they appropriate for?

*visual languages

Page 26: DESIGNING FOR INTERRUPTION AND LIVENESS

Conclusions

• Use negative feedback positively

• Feedback is global, should it also be focused and maintained?

• Feedback is instantaneous, should it be progressive?

• Feedback is decoupled, should it be integrated?

• What concepts are represented in feedback, who are they appropriate for?

DESIGN LIVENESS FOR:PROSPECTIVE, ATTENTIVE, EPISODIC,

ASSOCIATIVE, CONCEPTUAL MEMORY