Disponible uniquement sur Etudier
  • Pages : 11 (2524 mots )
  • Téléchargement(s) : 0
  • Publié le : 12 octobre 2010
Lire le document complet
Aperçu du document
Editor: Forrest Shull

voice of evidence

Fraunhofer Center for Experimental Software Engineering, Maryland n

What Do We Know about Agile Software Development?
Tore Dybå and Torgeir Dingsøyr, SINTEF
gile software development has had a huge impact on how software is developed worldwide. A 2005 survey of the US and Europe, for example, revealed that 14 percent ofcompanies were using agile methods, and 49 percent of the companies aware of agile methods were interested in adopting them.1 We can view agile methods such as Extreme Programming (XP) and Scrum as a reaction to plan-


based or traditional methods, which emphasize a “rationalized, engineering-based approach,”2 incorporating extensive planning, codified processes, and rigorous reuse.3 Incontrast, agile methods address the challenge of an unpredictable world, emphasizing the value competent people and their relationships bring to software development.4 Table 1 summarizes these differences. To clarify the effectiveness of agile methods, we reviewed the agile development literature and conducted a systematic study of what we know empirically about its benefits and limitations.
IEEESoft warE Published by the IEEE Computer Society

Three overviews from the first half of this decade describe the state of the art and practice of agile development in terms of lessons learned from applying various agile methods in industry. The first is a literature review from a 2002 VTT Electronics technical report.5 The report discussed the agile development concept in general, then presentedexperiences with 10 agile methods, and compared them with respect to the development phases they support and developer competence levels they require. The authors concluded that only the Dynamic Systems Development Method and the Rational Unified Process cover all development phases fully, while Scrum mainly covers aspects related to project management. They reported anecdotal evidence that agilemethods are “effective and suitable for many situations and environments,” but stated that few empirically validated studies support these claims. A follow-up analysis in 2003 stated that empirical support for the suggested methods remains scarce.6 In 2004, a review emphasizing agile development’s history showed some of its roots in other disciplines.7 In particular, it discussed relationsbetween agile development and the Capability Maturity Model. The authors suggested that agile methods will eventually consolidate, just as object-oriented methods did. Furthermore, they believed that agile and traditional methods will have a symbiotic relationship, in which factors such as
0 74 0 -74 5 9 / 0 9 / $ 2 6 . 0 0 © 2 0 0 9 I E E E

Agile Methods Overview

VOice Of eViDence

Table 1Traditional and agile perspectives on software development4
traditional view Design process Deliberate and formal, linear sequence of steps, separate formulation and implementation, rule-driven Optimization Selection of the best means to accomplish a given end through well-planned, formalized activities Stable, predictable Single-loop/adaptive agile perspective Emergent, iterative and exploratory,knowing and action inseparable, beyond formal rules Adaptation, flexibility, responsiveness Learning through experimentation and introspection, constantly reframing the problem and its solution Turbulent, difficult to predict Double-loop/generative

Goal Problem-solving process

View of the environment Type of learning

Key characteristics

Control and direction Avoids conflict Formalizesinnovation Manager is controller Design precedes implementation Technical/functional Logical positivism, scientific method

Collaboration and communication; integrates different worldviews Embraces conflict and dialectics Encourages exploration and creativity; opportunistic Manager is facilitator Design and implementation are inseparable and evolve iteratively Substantial Action learning, John...