designing for interruption and liveness
DESCRIPTION
TRANSCRIPT
DESIGNING FORINTERRUPTION AND
LIVENESS
Chris Parnin, Georgia Tech@chrisparnin ninlabs.com checkbox.io
http://liveprogramming.github.io/2013/
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.
Taken to an extreme...
It is not unusual to wait 30 minutes to compile and test a single change in medium-sized C++ projects.
Meanwhile...
An Attempt to ExplainLOW
LIVENESSHIGH
INTERRUPTION
COGNITIVE CONSEQUENCE
DESIGN PRINCIPLES
EXAMPLE TOOL/APPLICATION
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
I want to make a pie
PROSPECTIVE MEMORY
Prospective aids
Developers, intentionally introduce compile errors as reminders
DESIGN OPPORTUNITY
Use negative feedback positively: can be a prospective
memory aid
ATTENTIVE MEMORY
d
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”
DESIGN OPPORTUNITY
Feedback is global,should it also be focused and
maintained?
EPISODIC MEMORY
• Programmers do this all the time,
• Use blogs, diffs, backward recall
Improved whendone episodically.
DESIGN OPPORTUNITY
Feedback is instantaneous,should it be progressive?
Visualization of Fine-Grained Code Change HistoryYoungSeok Yoon et. al
ASSOCIATIVE MEMORY
Who moved my cheese?
DESIGN OPPORTUNITY
Feedback is decoupled,should it be integrated?
Embedded visualizations
Visual Monitoring of Numeric Variables Embedded in Source Code --Fabian Beck et.al
Visual Code Annotations for CyberphysicalProgramming -- Ben Swift et.al
CONCEPTUAL MEMORY
Novice Golfers vs Expert Golfers
DESIGN OPPORTUNITY
When giving feedback, what concepts are represented,
who are they appropriate for?
*visual languages
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