  Affects---emotions and moods---have an impact on cognitive activities and the
working performance of individuals. Development tasks are undertaken through
cognitive processes, yet software engineering research lacks theory on affects
and their impact on software development activities. In this paper, we report
on an interpretive study aimed at broadening our understanding of the
psychology of programming in terms of the experience of affects while
programming, and the impact of affects on programming performance. We conducted
a qualitative interpretive study based on: face-to-face open-ended interviews,
in-field observations, and e-mail exchanges. This enabled us to construct a
novel explanatory theory of the impact of affects on development performance.
The theory is explicated using an established taxonomy framework. The proposed
theory builds upon the concepts of events, affects, attractors, focus, goals,
and performance. Theoretical and practical implications are given.
