This paper introduces a Theory of Troubleshooting that is rooted in cognitive science. This theory helps software developers explain the challenges they face and the project risks that emerge as troubleshooting becomes difficult. We define troubleshooting as the cognitive problem-solving process of identifying, understanding, and constructing a mental model of the cause of an unexpected system behavior, and consider the cognitive process of troubleshooting to be an integral part of the activity of debugging. Troubleshooting is a particularly intense and draining aspect of software work, placing sustained demands on attention, working memory, and mental modeling. By surfacing and naming the confusion experience inherent in troubleshooting in terms of neurological and attentional dynamics, our theory explains how prolonged troubleshooting can deplete cognitive resources and lead to cognitive fatigue. In the study presented in this paper, we interview 27 professional developers about their troubleshooting experiences, and follow a Constructivist Grounded Theory approach to construct a theory grounded in empirical data. Our theory contributes to research on Developer Experience by providing a cognitive foundation for understanding troubleshooting difficulty, fatigue, and sustainability risk--and offers practical implications for both research and industry.
翻译:本文提出了一种植根于认知科学的故障排除理论。该理论帮助软件开发人员解释他们所面临的挑战,以及当故障排除变得困难时出现的项目风险。我们将故障排除定义为识别、理解并构建意外系统行为成因心智模型的认知问题解决过程,并将故障排除的认知过程视为调试活动的内在组成部分。故障排除是软件工作中特别耗费心力且令人疲惫的方面,它对注意力、工作记忆和心智建模能力提出了持续性的要求。通过从神经机制与注意力动态的角度揭示并命名故障排除中固有的困惑体验,我们的理论阐释了长期的故障排除如何消耗认知资源并导致认知疲劳。在本研究工作中,我们访谈了27位专业开发者关于其故障排除的经历,并遵循建构主义扎根理论方法,构建了一个基于实证数据的理论框架。本理论通过为理解故障排除的困难性、疲劳度及可持续性风险提供认知基础,对开发者体验研究领域作出了贡献,并为学术界和工业界提供了实践启示。