Distributed agile software development
Distributed agile software development is a research area that considers the effects of applying the principles of agile software development to a globally distributed development setting, with the goal of overcoming challenges in projects which are geographically distributed. The principles of agile software development provide structures to promote better communication, which is an important factor in successfully working in a distributed setting. However, not having face-to-face interaction takes away one of the core agile principles. This makes distributed agile software development more challenging than agile software development in general. History / Research The increasing globalization with the aid of novel capabilities provided by the technological efficacy of the Internet has led software development companies to offshore their development efforts to more economically attractive areas. This phenomenon began in the 90s, while its strategic importance was realized in the 2000s. Most initial related studies also date from around this time. During this time, the Agile Manifesto was released, which represents an evolution from the prevailing heavyweight approaches to software development. This naturally led to the question, "can distributed software development be agile?". One of the first comprehensive reviews trying to answer this question was done in 2006. By studying three organizations, they found that “careful incorporation of agility in distributed software development environments is essential in addressing several challenges to communication, control, and trust across distributed teams”. Later, in 2014, a systematic literature review (SLR) was done to identify the main problems in getting agile to work in a distributed fashion. In 2019, a similar SLR was done. Moreover, a general review on the subject was done in. However, a 2023 systematic review found "that Distributed Scrum has no impact, positive or negative on overall project success" in distributed software development. The results of some of this research will be discussed in the section Challenges & Risks. In all, distributed agile software development remains a highly dynamic field. Research continues to be done on all of its facets, indicating that it offers unique opportunities and advantages over more traditional methods, but not without imposing its own challenges and risks. Opportunities In the distributed environment, one might have difficulties in keeping track of everyone's workload and contribution towards the deliverable. Through adoption of agile principles and practices, the visibility is made clearer as there are multiple iterations where one can visualize the issues or criticalities on the initial stages of the project. Continuous integration of programming code, which is one of the focal pieces of agile software development, additionally serves to reduce setup of the executive issues. Adopting of agile principles appears to positively affect correspondence between groups as advancement in cycles makes it simpler for members to see the short-term objectives. Sprint reviews can be seen as a powerful method to improve external correspondence whilst they help to share data about the features and prerequisite conditions between partners or stakeholders. Agile practices also assist in building trust between various teams associated with the process by stimulating consistent communication and conveyance of