skip to main content
10.1145/1134285.1134355acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Maintaining mental models: a study of developer work habits

Published:28 May 2006Publication History

ABSTRACT

To understand developers' typical tools, activities, and practices and their satisfaction with each, we conducted two surveys and eleven interviews. We found that many problems arose because developers were forced to invest great effort recovering implicit knowledge by exploring code and interrupting teammates and this knowledge was only saved in their memory. Contrary to expectations that email and IM prevent expensive task switches caused by face-to-face interruptions, we found that face-to-face communication enjoys many advantages. Contrary to expectations that documentation makes understanding design rationale easy, we found that current design documents are inadequate. Contrary to expectations that code duplication involves the copy and paste of code snippets, developers reported several types of duplication. We use data to characterize these and other problems and draw implications for the design of tools for their solution.

References

  1. de Souza, C. R., Redmiles, D., Cheng, L., Millen, D., and Patterson, J. 2004. Sometimes you need to see through walls: a field study of application programming interfaces. In Proceedings of the 2004 ACM Conference on Computer Supported Cooperative Work (Chicago, Illinois, USA, November 06 - 10, 2004), 63--71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Hertzum, M. & Pejtersen, A. M. The information-seeking practices of engineers: searching for documents as well as for people. Information Processing and Management, 36, 5, 761--778, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Kamiya, T., Kusumoto, S., and Inoue, K. CCFinder: a multilinguistic token-based code clone detection system for large scale source code. TSE, 28, 7 (Jul. 2002), 654--670. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Videira Lopes, C., Loingtier, J.-M., and Irwin, J. Aspect Oriented Programming. In Proceedings of ECOOP, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  5. Kim, M., Bergman, L, Lau, T., and Notkin, D. An Ethnographic Stud of Copy and Paste Programming Practices in OOPL. International Symposium on Empirical Software Engineering, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Kim, M., Sazawal, V., Notkin, D., and Murphy, G.C. An Empirical Study of Code Clone Genealogies. FSE 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Moran, T. P. and Carroll, J. M., Eds. Design rationale: concepts, techniques, and use. Lawrence Erlbaum Associates, Inc, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Parnas, D.L. On ICSE's "Most Influential Papers". In ACM Software Engineering Notes, 20, 3, July 1995, 29--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Perry, D., Staudenmayer, N., and Votta, L. G. People, Organizations, and Process Improvement. IEEE Software, 11, 4, 36--45, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Rosson, M.B., and Carroll, J.M. The Reuse of Uses in Smalltalk Programming. ACM Transactions on Human-Computer Interaction, 3, 3, 219--253, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Schwaber, K, & Beedle, M. Agile Software Development with Scrum. Prentice Hall, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Singer, J., Lethbridge, T., Vinson, N., and Anquetil, N. An Examination of Software Engineering Work Practices. In Proceedings of CASCON '97, 209--223, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Weiser, M. 1981. Program slicing. In Proceedings of the 5th International Conference on Software Engineering (San Diego, California, United States, March 09 - 12, 1981), 439--449. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Wright, G. and Ayton, P. Eliciting and Modeling Expert Knowledge In Decision Support Systems, Vol. 3, 13--26, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Maintaining mental models: a study of developer work habits

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          ICSE '06: Proceedings of the 28th international conference on Software engineering
          May 2006
          1110 pages
          ISBN:1595933751
          DOI:10.1145/1134285

          Copyright © 2006 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 28 May 2006

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          Overall Acceptance Rate276of1,856submissions,15%

          Upcoming Conference

          ICSE 2025

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader