Software Quality Journal

, Volume 19, Issue 1, pp 5–34 | Cite as

Resumption strategies for interrupted programming tasks

Article

Abstract

Interrupted and blocked tasks are a daily reality for professional programmers. Unfortunately, the strategies programmers use to recover lost knowledge and rebuild context when resuming work have not yet been well studied. In this paper, we describe an exploratory analysis performed on 10,000 recorded sessions of 86 programmers and a survey of 414 programmers to understand the various strategies and coping mechanisms developers use to manage interrupted programming tasks. Based on the analysis, we propose a framework for understanding these strategies and suggest how task resumption might be better supported in future development tools. The results suggest that task resumption is a frequent and persistent problem for developers. For example, we find that only 10% of the sessions have programming activity resume in less than 1 min after an interruption, only 7% of the programming sessions involve no navigation to other locations prior to editing. We also found that programmers use multiple coping mechanisms to recover task context when resuming work.

Keywords

Interruption Resumption strategies Task context Task knowledge 

References

  1. Adamczyk, P. D., & Bailey, B. P. (2004). If not now, when? The effects of interruption at different moments within task execution. In CHI ’04: Proceedings of the SIGCHI conference on human factors in computing systems (pp. 271–278). New York, NY: ACM.Google Scholar
  2. Allwood, C. (1984). Error detection processes in statistical problem solving. Cognitive Science, 8(4), 413–437.CrossRefGoogle Scholar
  3. Altmann, E. M., & Trafton, J. G. (2002). Memory for goals: An activation-based model. Cognitive Science, 26, 39–83.CrossRefGoogle Scholar
  4. Altmann, E. M., & Trafton, J. G. (2004). Task interruption: Resumption lag and the role of cues. In Proceedings of the 26th annual conference of the cognitive science society.Google Scholar
  5. Altmann, E. M., & Trafton, J. G. (2007). Timecourse of recovery from task interruption: Data and a model. Psychonomic Bulletin and Review, 14, 1079–1084.CrossRefGoogle Scholar
  6. Anderson, J. R., Bothell, D., Byrne, M. D., Douglass, S., Lebiere, C., & Qin, Y. (2004). An integrated theory of the mind. Psychological Review, 111, 1036–1060.CrossRefGoogle Scholar
  7. Anderson, J. R., Farrell, R., & Sauers, R. (1984). Learning to program in lisp. Cognitive Science, 8(2), 87–129.CrossRefGoogle Scholar
  8. Atkinson, R. C., & Shiffrin. (1968). The psychology of learning and motivation (Vol. 2), chapter Human memory: A proposed system and its control processes (pp. 89–195). Baddeley: Academic Press.Google Scholar
  9. Baddeley, A., & Hitch, G. (1974). The psychology of learning and motivation: Advances in research and theory, chapter working memory (pp. 47–89). New York: Academic Press.Google Scholar
  10. Bannon, L., Cypher, A., Greenspan, S., & Monty, M. L. (1983). Evaluation and analysis of users’ activity organization. In CHI ’83: Proceedings of the SIGCHI conference on human factors in computing systems (pp. 54–57). New York, NY: ACM.Google Scholar
  11. Bellotti, V., Dalal, B., Good, N., Flynn, P., Bobrow, D. G., & Ducheneaut, N. (2004). What a to-do: Studies of task management towards the design of a personal task list manager. In CHI ’04: Proceedings of the SIGCHI conference on human factors in computing systems (pp. 735–742). New York, NY: ACM.Google Scholar
  12. Borst, J. P., & Taatgen, N. A. (2007). The costs of multitasking in threaded cognition. In ICCM ’07: Proceedings of the 8th international conference on cognitive modeling (pp. 133–138). Oxford: Psychology Press.Google Scholar
  13. Brush, A. B., Meyers, B. R., Tan, D. S., & Czerwinski M. (2007). Understanding memory triggers for task tracking. In CHI ’07: Proceedings of the SIGCHI conference on human factors in computing systems (pp. 947–950). New York, NY: ACM.Google Scholar
  14. Chase, W., & Simon, H. (1973). Perception in chess. Cognitive Psychology, 4, 55–81.CrossRefGoogle Scholar
  15. Chase, W. G., & Ericsson, K. A. (1982). The psychology of learning and motivation, Vol. 16, chapter Skill and working memory (pp. 1–58). New York: Academic Press.Google Scholar
  16. Cherubini, M., Venolia, G., DeLine, R., & Ko, A. J. (2007). Let’s go to the whiteboard: How and why software developers use drawings. In CHI ’07: Proceedings of the SIGCHI conference on human factors in computing systems (pp. 557–566). New York, NY: ACM.Google Scholar
  17. Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. The Behavioral and brain sciences, 24(1), 87−185.Google Scholar
  18. Cutrell, E., Czerwinski, M., & Horvitz, E. (2001). Notification, disruption and memory: Effects of messaging interruptions on memory and performance.Google Scholar
  19. Czerwinski, M., Horvitz, E., & Wilhite, S. (2004). A diary study of task switching and interruptions. In CHI ’04: Proceedings of the SIGCHI conference on human factors in computing systems (pp 175–182). New York, NY: ACM Press.Google Scholar
  20. Dekel, U. (2008). Designing a prosthetic memory to support software developers. In ICSE companion ’08: Companion of the 30th international conference on software engineering (pp. 1011–1014). New York, NY: ACM.Google Scholar
  21. DeLine, R., Czerwinski, M., Meyers, B., Venolia, G., Drucker, S., & Robertson, G. (2006). Code thumbnails: Using spatial memory to navigate source code. In VLHCC ’06: Proceedings of the visual languages and human-centric computing (pp. 11–18). Washington, DC: IEEE Computer Society.Google Scholar
  22. Ericsson, K. A., & Kintsch, W. (1995). Long-term working memory. Psychological Review, 102, 211–245.CrossRefGoogle Scholar
  23. Ericsson, K. A., & Staszewski, J. J. (1989). Complex information processing: The impact of Herbert A. Simon, chapter Skilled memory and expertise: Mechanisms of exceptional performance (pp. 235–267). Hillsdale, NJ: Lawrence Erlbaum.Google Scholar
  24. Fogarty, J., Ko, A. J., Aung, H. H., Golden, E., Tang, K. P., & Hudson, S. E. (2005). Examining task engagement in sensor-based statistical models of human interruptibility. In CHI ’05: Proceedings of the SIGCHI conference on human factors in computing systems (pp. 331–340). New York, NY: ACM.Google Scholar
  25. Gilboa, A., et al. (2006). Hippocampal contributions to recollection in retrograde and anterograde amnesia. Hippocampus, 16(11), 966–980.CrossRefGoogle Scholar
  26. Gillie, T., & Broadbent, D. (1998). What makes interruptions disruptive? a study of length, similiarity, and complexity. Psychological Research, 50, 243–250.CrossRefGoogle Scholar
  27. Hodgetts, H. M., & Jones, D. M. (2006). Contextual cues aid recovery from interruption: The role of associative activitation. Journal of Experimental Psychology: Learning, Memory, and Cognition, 32(5), 1120–1132.CrossRefGoogle Scholar
  28. Iqbal, S. T., & Bailey, B. P. (2005). Investigating the effectiveness of mental workload as a predictor of opportune moments for interruption. In CHI ’05: CHI ’05 extended abstracts on human factors in computing systems (pp. 1489–1492). New York, NY: ACM.Google Scholar
  29. Kersten, M., & Murphy, G. C. (2006). Using task context to improve programmer productivity. In SIGSOFT ’06/FSE-14: Proceedings of the 14th ACM SIGSOFT international symposium on foundations of software engineering (pp. 1–11). New York, NY: ACM.Google Scholar
  30. Ko, A. J., Aung, H., & Myers, B. A. (2005). Eliciting design requirements for maintenance-oriented ides: A detailed study of corrective and perfective maintenance tasks. In ICSE ’05: Proceedings of the 27th international conference on software engineering (pp. 126–135). New York, NY: ACM.Google Scholar
  31. Ko, A. J., DeLine, R., & Venolia, G. (2007). Information needs in collocated software development teams. In ICSE ’07: Proceedings of the 29th international conference on software engineering (pp. 344–353). Washington, DC: IEEE Computer Society.Google Scholar
  32. Latoza, T. D., Venolia, G., & Deline R. (2006). Maintaining mental models: A study of developer work habits. In ICSE ’06: Proceeding of the 28th international conference on software engineering (pp. 492–501). New York, NY: ACM Press.Google Scholar
  33. Lethbridge, T. C., Sim, S. E., & Singer, J. (2005). Studying software engineers: Data collection techniques for software field studies. Empirical Software Engineering, 10(3):311–341.Google Scholar
  34. Mark, G., Gonzalez, V. M., & Harris J. (2005). No task left behind? Examining the nature of fragmented work. In CHI ’05: Proceedings of the SIGCHI conference on human factors in computing systems (pp. 321–330). New York, NY: ACM Press.Google Scholar
  35. Mayrhauser, A. V., & Vans, A. M. (1997). Hypothesis-driven understanding processes during corrective maintenance of large scale software. In ICSM ’97: Proceedings of the international conference on software maintenance (pp. 12–20). Washington, DC: IEEE Computer Society.Google Scholar
  36. McFarlane, D. (2002). Comparison of four primary methods for coordinating the interruption of people in human-computer interaction. Human-Computer Interaction, 17(1), 63–139.CrossRefGoogle Scholar
  37. McKinney, F. (1935). Studies in the retention of interrupted learning activities. Journal of Comparative Psychology, 19(2), 265–296.CrossRefGoogle Scholar
  38. Miller, G. A. (1994). The magical number seven, plus or minus two: Some limits on our capacity for processing information. 1956. Psychological Review, 101(2), 343–352.CrossRefGoogle Scholar
  39. Milner, B., Corsi, P., & Leonard, G. (1991). Frontal-lobe contribution to recency judgements. Neuropsychologia, 29(6), 601–618.CrossRefGoogle Scholar
  40. Miyata, Y., & Norman, D. A. (1986). Psychological issues in support of multiple activities. In D. A. Norman & S. W. Draper, (Eds.), User centered system design: New perspectives on human-computer interaction (pp. 265–284). Hillsdale, NJ: Erlbaum.Google Scholar
  41. Monk, C., Trafton, J., & Boehm-Davis, D. A. (2008). The effect of interruption duration and demand on resuming suspended goals. Journal of Experimental Psychology: Applied, 14, 299–313.CrossRefGoogle Scholar
  42. Monk, C. A. (2004). The efffect of frequent versus infrequent interruptions on primary task resumption. In Proceedings of the human factors and ergonomics society 48th annual meeting.Google Scholar
  43. Morris, R. G., & Frey, U. (1997). Hippocampal synaptic plasticity: Role in spatial learning or the automatic recording of attended experience? Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences, 352(1360), 1489–1503.CrossRefGoogle Scholar
  44. Morris, R. G. M. (2006). Elements of a neurobiological theory of hippocampal function: The role of synaptic plasticity, synaptic tagging and schemas. European Journal of Neuroscience, 23(11), 2829–2846.CrossRefGoogle Scholar
  45. Murphy, G. C., Kersten, M., & Findlater, L. (2006). How are Java software developers using the Eclipse IDE? (vol. 23, pp. 76–83). Los Alamitos, CA: IEEE Comp. Soc. Press.Google Scholar
  46. O’Brien, M. P., & Buckley, J. (2005). Modelling the information-seeking behaviour of programmers—an empirical approach. In IWPC ’05: Proceedings of the 13th international workshop on program comprehension (pp. 125–134). Washington, DC: IEEE Computer Society.Google Scholar
  47. O’Conaill, B., & Frohlich, D. (1995). Timespace in the workplace: Dealing with interruptions. In CHI ’95: Conference companion on human factors in computing systems (pp. 262–263). New York, NY: ACM Press.Google Scholar
  48. Offner, M. (1911). Mental Fatigue. Warwick & York.Google Scholar
  49. Parnin, C., & DeLine, R. (2010). Evaluating cues for resuming interrupted programming tasks. In CHI ’10: Proceedings of the 28th international conference on human factors in computing systems (pp. 93–102). New York, NY: ACM.Google Scholar
  50. Parnin, C., Görg, C. (2006). Building usage contexts during program comprehension. In ICPC ’06: Proceedings of the 14th IEEE international conference on program comprehension (pp. 13–22).Google Scholar
  51. Pennington, N., & Grabowski, B. (1990). The tasks of programming. In Psychology of programming, Computer and People Series, chapter 1.4 (pp. 45–62). London: Academic Press Ltd.Google Scholar
  52. Ratwani, R. M., & Trafton J. G. (2008). Spatial memory guides task resumption. Visual Cognition, 16, 1001–1010.CrossRefGoogle Scholar
  53. Renaud, K., & Gray, P. (2004). Making sense of low-level usage data to understand user activities. In Proceedings of SAICSIT ’04, (pp. 115–124). Republic of South Africa, 2004. South African Institute for Computer Scientists and Information Technologists.Google Scholar
  54. Robbes, R., & Lanza, M. (2007). Characterizing and understanding development sessions. In ICPC ’07: Proceedings of the 15th IEEE international conference on program comprehension (pp. 155–166). Washington, DC: IEEE Computer Society.Google Scholar
  55. Safer, I., & Murphy, G. C. (2007). Comparing episodic and semantic interfaces for task boundary identification. In CASCON ’07: Proceedings of the 2007 conference of the center for advanced studies on collaborative research (pp. 229–243). New York, NY: ACM.Google Scholar
  56. Salvucci, D. D., Taatgen, N. A., & Borst, J. P. (2009). Toward a unified theory of the multitasking continuum: From concurrent performance to task switching, interruption, and resumption. In CHI ’09: Proceedings of the 27th international conference on human factors in computing systems (pp. 1819–1828), New York, NY: ACM.Google Scholar
  57. Singer, J., Elves, R., & Storey, M.-A. (2005). Navtracks: Supporting navigation in software maintenance. In ICSM ’05: Proceedings of the 21st IEEE international conference on software maintenance (pp. 325–334). Washington, DC: IEEE Computer Society.Google Scholar
  58. Sinha, V., Karger, D., & Miller, R. (2006). Relo: Helping users manage context during interactive exploratory visualization of large codebases. In VLHCC ’06: Proceedings of the visual languages and human-centric computing (pp. 187–194). Washington, DC: IEEE Computer Society.Google Scholar
  59. Squire, L. R. (2004). Memory systems of the brain: A brief history and current perspective. Neurobiology of learning and memory, 82(3), 171–177.CrossRefGoogle Scholar
  60. Storey, M.-A., Best, C., Michaud, J., Rayside, D., Litoiu, M., & Musen, M. (2002). Shrimp views: An interactive environment for information visualization and navigation. In CHI ’02: CHI ’02 extended abstracts on human factors in computing systems (pp. 520–521), New York, NY: ACM.Google Scholar
  61. Storey, M.-A., Ryall, J., Bull, R. I., Myers, D., & Singer, J. (2008). Todo or to bug: Exploring how task annotations play a role in the work practices of software developers. In ICSE ’08: Proceedings of the 30th international conference on software engineering (pp. 251–260), New York, NY: ACM.Google Scholar
  62. The Eclipse Foundation. (2009). Usage Data Collector Results. January 5th, 2009. Website, http://www.eclipse.org/org/usagedata/reports/data/commands.cs.
  63. Trafton, J. G., Altmann, E. M., & Brock, D. P. (2005). Huh, what was i doing? How people use environmental cues after an interruption. In Proceedings of the human factors and ergonomics society 49th annual meeting.Google Scholar
  64. Trafton, J. G., Altmann, E. M., Brock, D. P., & Mintz, F. E. (2003). Preparing to resume an interrupted task: Effects of prospective goal encoding and retrospective rehearsal. International Journal of Human-Computer Studies, 58, 583–603.CrossRefGoogle Scholar
  65. Tulving. E. (1972). Organization of memory, chapter Episodic and semantic memory (pp. 381–403). New York: Academic Press.Google Scholar
  66. Tulving, E., & Thomson, D. M. (1973). Encoding specificity and retrieval processes in episodic memory. Psychological Review, 80, 352–373.CrossRefGoogle Scholar
  67. van Solingen, R., Berghout, E., & van Latum, F. (1998). Interrupts: Just a minute never is. IEEE Software, 15(5), 97–103.CrossRefGoogle Scholar
  68. Winograd, E. (1988). Practical aspects of memory: Current research and issues, Vol. 2, chapter Some observations on prospective remembering (pp. 348–353). Chichester: Wiley.Google Scholar
  69. Zeigarnik, B. (1927). Das behalten erledigter und unerledigter handlungen. Psychologische Forschung, 9(1), 1–85.CrossRefGoogle Scholar
  70. Zijlstra, F. R. H., Roe, R. A., Leonova, A. B., & Krediet, I. (1999). Temporal factors in mental work: Effects of interrupted activities. Journal of Occupational and Organizational Psychology, 72, 163–185.CrossRefGoogle Scholar
  71. Zou, L., & Godfrey, M. W. (2006). An industrial case study of program artifacts viewed during maintenance tasks. In WCRE ’06: Proceedings of the 13th working conference on reverse engineering (pp. 71–82). Washington, DC: IEEE Computer Society.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2010

Authors and Affiliations

  1. 1.Georgia Institute of TechnologyAtlantaUSA

Personalised recommendations