Litcius/Paper detail

Acrobats and Safety Nets: Problematizing Large-Scale Agile Software Development

Knut H. Rolland, Brian Fitzgerald, Torgeir Dingsøyr, Klaas-Jan Stol

2023ACM Transactions on Software Engineering and Methodology22 citationsDOIOpen Access PDF

Abstract

Agile development methods have become a standard in the software industry, including in large-scale projects. These methods share a set of underlying assumptions that distinguish them from more traditional plan-driven approaches. In this article, we adopt Alvesson and Sandberg's problematization approach to challenge three key assumptions that are prevalent in the large-scale agile literature: (1) agile and plan-driven methods are mutually exclusive; (2) self-managing and hierarchically organized teams are mutually exclusive; and (3) agile methods can scale through simple linear composition. Using a longitudinal case study of large-scale agile development, we describe a series of trigger events and episodes whereby the agile approach was tailored to address the needs of the large-scale development context, which was very much at odds with these fundamental assumptions. We develop a set of new underlying assumptions which suggest that agile and plan-driven practices are mutually enabling and necessary for coordination and scaling in large-scale agile projects. We develop nine propositions for large-scale agile projects based on these new alternative underlying assumptions. Finally, we summarize our theoretical contribution in a generic process model of continuously adjusting agile and plan-driven practices in order to accommodate process challenges in large-scale agile projects.

Topics & Concepts

Agile software developmentAgile Unified ProcessAgile usability engineeringComputer scienceScrumScale (ratio)Context (archaeology)Process (computing)Extreme programming practicesPlan (archaeology)Process managementSet (abstract data type)Management scienceSoftware development processSoftwareSoftware developmentSoftware engineeringEngineeringQuantum mechanicsHistoryOperating systemPhysicsProgramming languageArchaeologyPaleontologyBiologySoftware Engineering Techniques and PracticesSoftware Engineering ResearchSoftware System Performance and Reliability