Despite the popularity of agile methods in software development and increasing adoption by organizations there is debate about what agility is and how it is achieved. The debate suffers from a lack of understanding of agile concepts and how agile software development is practised. This paper develops a framework for the organization of agile software development that identifies enablers and inhibitors of agility and the emergent capabilities of agile teams. The work is grounded in complex adaptive systems (CAS) and draws on three principles of coevolving systems: match coevolutionary change rate, maximise self-organizing, and synchronize exploitation and exploration. These principles are used to study the processes of two software development teams, one a team using eXtreme Programming (XP) and the other a team using a more traditional, waterfall-based development cycle. From the cases a framework for the organisation of agile software development is developed. Time pacing, self-management with discipline and routinisation of exploration are among the agile enablers found in the cases studies while event pacing, centralised management and lack of resources allocated to exploration are found to be inhibitors to agility. Emergent capabilities of agile teams that are identified from the research include coevolution of business value, sustainable working with rhythm, sharing and team learning, and collective mindfulness.
There is a common perception that, while there may be some 'teething' problems experienced during the initial transition to agile, people are much happier, engaged and ultimately more productive in these environments. This study shows that this belief may not always hold true, identifying many serious 'people' challenges experienced by 17 large multinational organisations, all using agile for more than three years. The cases provide an interesting insight in that they involve instances where agile was implemented in a top-down manner across the organisations or at least across business units. This is in contrast to most accounts of agile which involve voluntary, bottom up adoption on small co-located teams developing systems deemed to be suitable for agile development. The people issues uncovered include a broad range of problems from recruitment of agile staff, to training, motivation and performance evaluation among others. The paper will conclude with a set of actionable recommendations as to how organisations can overcome these challenges, based on the better practices uncovered in the cases studied.
The growing literature on affect among software developers mostly reports on the linkage between happiness, software quality, and developer productivity. Understanding happiness and unhappiness in all its components -positive and negative emotions and moods -is an attractive and important endeavor. Scholars in industrial and organizational psychology have suggested that understanding happiness and unhappiness could lead to cost-effective ways of enhancing working conditions, job performance, and to limiting the occurrence of psychological disorders. Our comprehension of the consequences of (un)happiness among developers is still too shallow, being mainly expressed in terms of development productivity and software quality. In this paper, we study what happens when developers are happy and unhappy while developing software. Qualitative data analysis of responses given by 317 questionnaire participants identified 42 consequences of unhappiness and 32 of happiness. We found consequences of happiness and unhappiness that are beneficial and detrimental for developers' mental well-being, the software development process, and the produced artifacts. Our classification scheme, available as open data enables new happiness research opportunities of cause-effect type, and it can act as a guideline for practitioners for identifying damaging effects of unhappiness and for fostering happiness on the job.Note:. the present PDF is the accepted version of Graziotin, D., Fagerholm, F., Wang, X., & Abrahamsson, P. (2018). What happens when software developers are (un)happy .
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.