Professional Documents
Culture Documents
Dan X. Houston
The Aerospace Corporation
2310 El Segundo Blvd
El Segundo, California, U.S.A.
310-336-5000
dan.houston@aero.org
especially troublesome in software projects, whichdue to
softwares less tangible natureseem to amplify the effects of
inadequate prescriptive planning.
ABSTRACT
Agile software development grew out of a variety of alternative
software development methods that shared a common set of
values and principles. After two decades, agile software
development remains loosely defined, but has been widely
accepted. This acceptance has gained the attention of other fields
with discussions of applying agile to their work, for example agile
systems engineering and agile program management. However,
agile was defined in terms of software development, both in
practice and in principle. Therefore, translation into other fields
has been challenging. This paper derives a set of agile
characteristics and discusses two benefits of accepting such a set
of characteristics for (a) application of agile to other fields beyond
software development and (b) for measurement of agility.
General Terms
Management.
Keywords
Agile software development; agile values; agile principles, agile
practices, agile methods, agile characteristics, agile systems
engineering.
Permission
to make
digital
or hard
of all orofpart
for work
personal
Permission
to make
digital
or copies
hard copies
all of
or this
partwork
of this
foror
classroom use is granted without fee provided that copies are not made or distributed
personal
or
classroom
use
is
granted
without
fee
provided
that
copies
for profit or commercial advantage and that copies bear this notice and the full citation
or distributed
for profit or
advantage
onare
the not
first made
page. Copyrights
for components
of commercial
this work owned
by othersand
thanthat
ACM
must
be honored.
Abstracting
withthe
credit
is permitted.
To the
copyfirst
otherwise,
copies
bear this
notice and
full
citation on
page. or
Torepublish,
copy
to post on servers or to redistribute to lists, requires prior specific permission and/or a
otherwise,
or republish,
to post on servers or to redistribute to lists,
fee.
Request permissions
from Permissions@acm.org.
requires prior specific permission and/or a fee.
Copyright is held by the author/owner(s). Publication rights licensed to ACM.
65
Figure 1 does not show the rework cycles, both within and
between development phases.
2. SOFTWARE DEVELOPMENT
DYNAMICS AND THE NEED FOR
AGILITY
The agile movement in software development arose out of need to
harness the dynamics of software development, the same
dynamics found in any product development, but amplified. The
dynamics that drive product development projects out of control
are amplified in software development because software is less
tangible and unconstrained by physics. Therefore, functional
specifications are more likely to over-reach what can realistically
be accomplished with available resources while underestimation
is more likely. Furthermore, functional changes are expected to be
easier in software than in hardware. This brief explanation of
software development dynamics is intended to demonstrate the
need for the agile movement and provide some hints as to what
allows agility to work.
Requirements
Produce
Check
Deliver
Rework
Design
Produce
Check
V&V
Rework
Implementation
66
Table 2. Agile Values and Principles Matrix ( Major support Moderate support Minor support)
Agile Software Development
Principles
Continuous value delivery
Welcome change
Frequent delivery
Business-developer collaboration
Motivation centricity
Face-to-face conversation
Progress measure
Constant pace indefinitely
Technical excellence
Simplicity
Self-organizing teams
Reflect & adjust
Individuals and
interactions over
processes and tools
Responding to
change over
following a plan
67
Table 3. General Agile Characteristics Defined from Agile Software Development Values and Principles
General Agile Characteristics
ResponContinual
Self-organizing, Leadership
Agile Software
Interpersonal Customer/user
siveness to
delivery of
multifunctional
by the
Development Values &
interaction collaboration
change
customer value
team
motivated
Principles
Individuals & interactions
*
*
*
*
Working software
*
Customer collaboration
*
*
*
*
Responding to change
*
*
*
Continuous value delivery
*
Welcome change
*
*
Frequent delivery
*
Business-developer
*
*
collaboration
Motivation centricity
*
*
Face-to-face conversation
*
Progress measure
*
Constant pace indefinitely
*
*
*
Technical excellence
*
Simplicity
*
Self-organizing teams
*
*
*
Reflect & adjust
*
*
*
*
driven development, were refined from ideas used in early
computer programming. Still others, such as coding standards and
software configuration management, were simply included from
accepted software engineering practice. As practices were created
or appropriated, and refined, they were collected and their use
integrated into methods or processes. Agile software development
practices continue to evolve, guided by the values and principles.
Technical
excellence &
simplicity
*
*
*
*
Learning attitude
Continuous integration
Team ownership
This list compares well with the preceding list, though the two
lists have a few differences. Turners list does not explicitly
include product characteristics of technical excellence and
simplicity, but it does include learning attitude, which may refer
to learning about both the product under development and the
development processes employed. Also, Turners list does not
mention leadership motivation. His list does introduce lean
attitude as a willingness to remove non-value-added activities.
Interpersonal interaction
Customer/user collaboration
Responsiveness to change
68
6. REFERENCES
Of these six proposals, the first and the fourth hold the most
promise. They are both based on project characteristics, recognize
degrees of agility, can produce leading indicators, and can be
extended beyond software development. However, both have two
shortcomings: (1) neither use characteristics that have been
verified as dominant variables for measuring product development
agility; and (2) the scales and mathematical models employed by
each require validation for their ability to produce meaningful
measures. Using the Agile Manifesto as a starting point, Tables 2
and 3 have sought to address the first shortcoming with a set of
characteristics that are clearly traceable to a widely-accepted set
of values and principles that define agile software development.
The second aforementioned shortcoming remains to be addressed.
The six proposals indicate needs for measuring agility and hint at
some of the potential benefits. One of the benefits would be
overcoming the popular misconception of a binary approach to
agile development: either an development organization is agile or
it is not. Measureable definitions of agility would recognize that
organizations demonstrate degrees of agility and would facilitate
discussion of those degrees.
5. ACKNOWLEDGMENTS
This study was sponsored by The Aerospace Corporations
program funding and by its Software Acquisition Long Term
Capability Development Project.
69