DESIGNING FOR INTERRUPTION AND LIVENESS

642 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
642
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

DESIGNING FOR INTERRUPTION AND LIVENESS

  1. 1. DESIGNING FOR INTERRUPTION AND LIVENESS Chris Parnin, Georgia Tech @chrisparnin ninlabs.com checkbox.io
  2. 2. http://liveprogramming.github.io/2013/
  3. 3. Great success, but... Everyone said: Instant Feedback is good No one explained: A theory of why? Is the only goal, faster and faster feedback? Side-by-side.
  4. 4. Taken to an extreme... It is not unusual to wait 30 minutes to compile and test a single change in medium-sized C++ projects.
  5. 5. Meanwhile...
  6. 6. An Attempt to Explain LOW LIVENESS HIGH INTERRUPTION COGNITIVE CONSEQUENCE DESIGN PRINCIPLES EXAMPLE TOOL/ APPLICATION
  7. 7. 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 knowin recency memory dentate gyrus Brodmann 10 dorsolateral prefrontal cortex semantic memory declarative memory
  8. 8. I want to make a pie
  9. 9. PROSPECTIVE MEMORY
  10. 10. Prospective aids Developers, intentionally introduce compile errors as reminders
  11. 11. DESIGN OPPORTUNITY Use negative feedback positively: can be a prospective memory aid
  12. 12. ATTENTIVE MEMORY d
  13. 13. 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”
  14. 14. DESIGN OPPORTUNITY Feedback is global, should it also be focused and maintained?
  15. 15. EPISODIC MEMORY
  16. 16. • Programmers do this all the time, • Use blogs, diffs, backward recall Improved when done episodically.
  17. 17. DESIGN OPPORTUNITY Feedback is instantaneous, should it be progressive?
  18. 18. Visualization of Fine-Grained Code Change History YoungSeokYoon et. al
  19. 19. ASSOCIATIVE MEMORY
  20. 20. Who moved my cheese?
  21. 21. DESIGN OPPORTUNITY Feedback is decoupled, should it be integrated?
  22. 22. Embedded visualizations Visual Monitoring of Numeric Variables Embedded in Source Code --Fabian Beck et.al Visual Code Annotations for Cyberphysical Programming -- Ben Swift et.al
  23. 23. CONCEPTUAL MEMORY
  24. 24. Novice Golfers vs Expert Golfers
  25. 25. DESIGN OPPORTUNITY When giving feedback, what concepts are represented, who are they appropriate for? *visual languages
  26. 26. 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

×