This paper presents three dimensions for understanding developer productivity.
Productivity is a challenging concept to define, describe and to measure for any kind of knowledge work that involves non-routine creative tasks. Software development is a prime example of knowledge work, as it too often involves poorly defined tasks relying on extensive collaborative and creative endeavours. As in other areas of knowledge work, defining productivity in software development has been a challenge facing both researchers and practitioners that may wish to understand and improve it by introducing new tools or processes. In this paper, we present a framework for conceptualizing productivity in software development according to three main dimensions that we propose are essential for understanding productivity. In order to help clarify productivity goals, we also propose a set of *lenses* that provide different perspectives for considering productivity along these three dimensions. We contend that any picture of productivity would be incomplete if the three dimensions and various lenses are not considered.