What developers (care to) recall: An interview survey on smaller systems
Paper in proceedings, 2020
Developers spend most of their time with program comprehension, obtaining (or recovering) the knowledge they need to perform a task. Researchers have investigated the information needs of developers to understand what knowledge is important and to scope techniques, for example, to facilitate program comprehension, support knowledge recovery, or identify experts. Similarly, researchers analyzed developers’ memory to understand how they forget, which essentially causes the need to recover knowledge. However, we are not aware of studies linking these research directions to investigate what knowledge developers aim to keep in their memory, allowing them to ask less and different questions during knowledge recovery. To address this gap, we conducted an interview survey with 17 experienced developers, in which we investigated 1) what knowledge developers consider important to remember; 2) whether developers can correctly recall knowledge about their (smaller) systems; and 3) how their self-assessment relates to their actual knowledge. Our results indicate, among others, that developers consider architecture and abstract code knowledge (e.g., its intent) as most important to remember, that the perceived importance relates to their ability to recall knowledge correctly, and that their self-assessment decreases while reflecting about their system. Based on these findings, we discuss research directions and practical implications for managing and recovering developers’ knowledge.