Title
Asking and answering questions during a programming change task
Abstract
Despite significant existing empirical work, little is known about the specific kinds of questions programmers ask when evolving a code base. Understanding precisely what information a programmer needs about the code base as they work is key to determining how to better support the activity of programming. The goal of this research is to provide an empirical foundation for tool design based on an exploration of what programmers need to understand about a code base and of how they use tools to discover that information. To this end, we undertook two qualitative studies of programmers performing change tasks to medium to large sized programs. One study involved newcomers working on assigned change tasks to a medium-sized code base. The other study involved industrial programmers working on their own change tasks to code with which they had experience. The focus of our analysis has been on what information a programmer needs to know about a code base while performing a change task and also on how they go about discovering that information. Based on a systematic analysis of the data from these user studies as well as an analysis of the support that current programming tools provide for these activities, this research makes four key contributions: (1) a catalog of 44 types of questions programmers ask, (2) a categorization of those questions into four categories based on the kind and scope of information needed to answer a question, (3) a description of important context for the process of answering questions, and (4) a description of support that is missing from current programming tools.
Year
DOI
Venue
2008
10.1109/TSE.2008.26
IEEE Trans. Software Eng.
Keywords
Field
DocType
software system,medium-sized code base,current programming tool,assigned change task,systematic analysis,own change task,code base,tools support programmer,broad research question,industrial programmer,empirical foundation,support answering programmer,software evolution task,change task,answering questions,programming change task,key contribution,questions programmer,observed behavior,software evolution,software systems,development environment,computer science,indexing terms,software maintenance,data analysis,genetic programming,lab on a chip,empirical study,qualitative study
Data science,Programmer,Software engineering,Computer science,Software system,Theoretical computer science,Genetic programming,Need to know,Software maintenance,Software evolution,Program comprehension,Empirical research
Journal
Volume
Issue
ISSN
34
4
0098-5589
Citations 
PageRank 
References 
159
4.91
75
Authors
3
Search Limit
100159
Name
Order
Citations
PageRank
Jonathan Sillito181837.34
Gail C. Murphy25668341.93
De VolderKris31594.91