  Agile processes are now widely practiced by software engineering (SE) teams,
and the agile manifesto claims that agile methods support responding to changes
well. However, no study appears to have researched whether this is accurate in
reality. Requirements changes (RCs) are inevitable in any software development
environment, and we wanted to acquire a holistic picture of how RCs occur and
are handled in agile SE teams in practice. We also wanted to know whether
responding to changes is the only or a main reason for software teams to use
agile in their projects. To do this we conducted a mixed-methods research study
which comprised of interviews of 10 agile practitioners from New Zealand and
Australia, a literature review, and an in-depth survey with the participation
of 40 agile practitioners world-wide. Through this study we identified
different types of RCs, their origination including reasons for origination,
forms, sources, carriers, and events at which they originate, challenging
nature, and finally whether agile helps to respond to changes or not. We also
found that agile teams seem to be reluctant to accept RCs, and therefore, they
use several mitigation strategies. Additionally, as they accept the RCs, they
use a variety of techniques to handle them. Furthermore, we found that agile
allowing better response to RCs is only a minor reason for practicing agile.
Several more important reasons included being able to deliver the product in a
shorter period and increasing team productivity. Practitioners stated this
improves the agile team environment and thus are the real motivators for teams
to practice agile. Finally, we provide a set of practical recommendations that
can be used to better handle RCs effectively in agile software development
environments.
