Together with many success stories, promises such as the increase in production speed and the improvement in stakeholders' collaboration have contributed to making agile a transformation in the software industry in which many companies want to take part. However, driven either by a natural and expected evolution or by contextual factors that challenge the adoption of agile methods as prescribed by their creator(s), software processes in practice mutate into hybrids over time. Are these still agile? In this article, we investigate the question: what makes a software development method agile? We present an empirical study grounded in a large-scale international survey that aims to identify software development methods and practices that improve or tame agility. Based on 556 data points, we analyze the perceived degree of agility in the implementation of standard project disciplines and its relation to used development methods and practices. Our findings suggest that only a small number of participants operate their projects in a purely traditional or agile manner (under 15%). That said, most project disciplines and most practices show a clear trend towards increasing degrees of agility. Compared to the methods used to develop software, the selection of practices has a stronger effect on the degree of agility of a given discipline. Finally, there are no methods or practices that explicitly guarantee or prevent agility. We conclude that agility cannot be defined solely at the process level. Additional factors need to be taken into account when trying to implement or improve agility in a software company. Finally, we discuss the field of software process-related research in the light of our findings and present a roadmap for future research.
翻译:与许多成功故事、诸如提高生产速度和利益攸关方合作改善等承诺一起,使许多公司希望参与的软件行业的变革变得灵活。然而,由于自然和预期的演变,或受到各种背景因素的驱动,这些因素对采用其创建者规定的灵活方法提出了挑战,软件程序实际上随着时间推移而变异为混合。这些变化是否仍然灵活?在本篇文章中,我们调查了以下问题:软件开发方法如何灵活?我们介绍了一项经验性研究,其基础是大规模国际调查,旨在确定软件开发方法和做法,改进或调适灵活性。根据556个数据点,我们分析了在标准项目纪律实施过程中所察觉到的灵活性程度及其与使用开发方法和做法的关系。我们的研究结果表明,只有少数参与者以纯传统或灵活的方式(15%以下)运行其项目。说,大多数项目纪律和大多数做法都显示出提高灵活性的明显趋势。与软件开发方法相比,选择做法对未来研究方法的灵活程度产生了更强烈的影响。最后,我们无法在确定如何改进软件的难度时,我们无法明确确定一种方法。