论文标题
敏捷软件开发项目的需求变化的多维研究
A Multi-dimensional Study of Requirements Changes in Agile Software Development Projects
论文作者
论文摘要
现在,软件工程(SE)团队广泛实践了敏捷流程,敏捷宣言声称敏捷方法支持对变化的反应良好。但是,似乎没有研究研究这在现实中是否准确。在任何软件开发环境中,需求变化(RCS)都是不可避免的,我们想了解RC在实践中如何在敏捷的SE团队中进行的RC进行全面了解。我们还想知道,对变更做出响应是软件团队在其项目中使用敏捷的唯一或主要原因。为此,我们进行了一项混合方法研究,其中包括来自新西兰和澳大利亚的10位敏捷从业者的访谈,文献综述以及全球40名敏捷从业者的参与。通过这项研究,我们确定了不同类型的RC,它们的起源包括起源,形式,来源,载体和事件的原因,其起源,具有挑战性的自然,以及敏捷是否有助于响应变化。我们还发现,敏捷团队似乎不愿接受RCS,因此,他们使用了几种缓解策略。此外,当他们接受RCS时,他们使用各种技术来处理它们。此外,我们发现敏捷允许对RCS更好的反应只是练习敏捷的一个小原因。更重要的原因包括能够在较短的时间内交付产品并提高团队生产率。从业者说,这改善了敏捷团队的环境,因此是团队实践敏捷的真正动机。最后,我们提供了一套实用建议,可以在敏捷软件开发环境中更好地处理RCS。
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.