agile software development
DESCRIPTION
TRANSCRIPT
June 19, 2002 1
Introduction to Agile Software Management
Presented by Jim Murray
Based on work done by
Dottie Acton of LM Mission Systems
301-897-6458
June 19, 2002 2
Topics
• Introduction
• Terminology
• The Agile Manifesto
• Some Agile Methodologies
• Summary
• References
June 19, 2002 3
Terminology• Agility
– The ability to both create and respond to change in order to profit in a turbulent business environment
• Companies need to determine the amount of agility they need to be competitive
• Chaordic– Exhibiting properties of both chaos and order
• The blend of chaos and order inherent in the external environment and in people themselves, argues against the prevailing wisdom about predictability and planning
– Things get done because people adapt, not because they slavishly follow processes
– An agile view is a chaordic view• “Balanced between chaos and order, perched on the precipice at the
edge of chaos.”• Some people are not comfortable in this environment; others thrive on it
June 19, 2002 4
1910
1920
1930
1940
1950
1960
1970
1980
1990
2000
WWIGreat
DepressionKorean
WarWWII Vietnam War Des
ert
Shie
ld /
Des
ert
Sto
rm
Op
erat
ion
Ira
qi F
reed
om
Ris
k M
gmt
Gu
ide
for
DoD
Acq
uis
itio
n
Pro
gram
Eva
luat
ion
and
R
evie
w T
echn
ique
(P
ER
T)
Ber
lin
Wal
l Fal
ls
Wil
lou
ghby
Tem
plat
es
“Sol
ving
th
e R
isk
Equ
atio
n”
Lin
e of
Bal
ance
Tec
hnol
ogy
Tot
al Q
uali
ty
Man
agem
ent
Cri
tica
l Pat
h M
etho
d (C
PM
)
Cold War
Bat
tle
of t
he A
tlan
tic
WWII ProductionAircraft 296,429Naval Ships 71,062Cargo Ships 5,425Artillery 372,431Tanks / SP Guns 102,351Trucks 2,455,964
Lea
n P
rod
ucti
on
Con
curr
ent
Dev
elop
men
t
Spir
al D
evel
opm
ent
1910
1920
1930
1940
1950
1960
1970
1980
1990
2000
WWIGreat
DepressionKorean
WarWWII Vietnam War Des
ert
Shie
ld /
Des
ert
Sto
rm
Op
erat
ion
Ira
qi F
reed
om
Ris
k M
gmt
Gu
ide
for
DoD
Acq
uis
itio
n
Pro
gram
Eva
luat
ion
and
R
evie
w T
echn
ique
(P
ER
T)
Ber
lin
Wal
l Fal
ls
Wil
lou
ghby
Tem
plat
es
“Sol
ving
th
e R
isk
Equ
atio
n”
Lin
e of
Bal
ance
Tec
hnol
ogy
Tot
al Q
uali
ty
Man
agem
ent
Cri
tica
l Pat
h M
etho
d (C
PM
)
Cold War
Bat
tle
of t
he A
tlan
tic
WWII ProductionAircraft 296,429Naval Ships 71,062Cargo Ships 5,425Artillery 372,431Tanks / SP Guns 102,351Trucks 2,455,964
Lea
n P
rod
ucti
on
Con
curr
ent
Dev
elop
men
t
Spir
al D
evel
opm
ent
1910
1920
1930
1940
1950
1960
1970
1980
1990
2000
WWIGreat
DepressionKorean
WarWWII Vietnam War Des
ert
Shie
ld /
Des
ert
Sto
rm
Op
erat
ion
Ira
qi F
reed
om
Ris
k M
gmt
Gu
ide
for
DoD
Acq
uis
itio
n
Pro
gram
Eva
luat
ion
and
R
evie
w T
echn
ique
(P
ER
T)
Ber
lin
Wal
l Fal
ls
Wil
lou
ghby
Tem
plat
es
“Sol
ving
th
e R
isk
Equ
atio
n”
Lin
e of
Bal
ance
Tec
hnol
ogy
Tot
al Q
uali
ty
Man
agem
ent
Cri
tica
l Pat
h M
etho
d (C
PM
)
Cold War
Bat
tle
of t
he A
tlan
tic
WWII ProductionAircraft 296,429Naval Ships 71,062Cargo Ships 5,425Artillery 372,431Tanks / SP Guns 102,351Trucks 2,455,964
Lea
n P
rod
ucti
on
Con
curr
ent
Dev
elop
men
t
Spir
al D
evel
opm
ent
Program Management Evolution• Program management is an evolving science
Continuing to seek efficient methods to address new development methods
June 19, 2002 5
Current Problem in PM & SW development
31.1% of projects will be canceledbefore they ever get completed … 52.7% of projects will
cost 189% of their original estimates. – The Standish Group
Plus project complexity is increasing– Demand for quicker delivery of useful systems
– Increasingly vague, volatile requirements
– Greater uncertainty/risk from limited knowledge of:• Underlying technologies
• Off-the-shelf (OTS) components used
Are conventional development/managementpractices addressing the problem?
June 19, 2002 6
What is the core challenge?
* Phillip Armour. “Zeppelins and Jet Planes: A Metaphor for Modern Software Projects” Communications of the ACM, October 2001.
Team = Product
Process = Product
— McCarthy
What is the nature of system/software development?• Well-understood, static problems, demanding
definable, predictable process, like– Manufacturing a widget– Constructing a building– Shooting zeppelins with cannons*
OR
• Exploration of many evolving unknowns, demanding a fluid, social learning process, like– Mountain climbing– Jazz jam session– Tracking jet fighters with self-guiding missiles*
June 19, 2002 7
Agile Manifesto
• Developed by 17 of the leaders in agile methodologies in Feb 2001.“We are uncovering better ways of developing software
by doing it and helping others do it. Through this work we have come to value
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
That is, while there is value on the items on the right, we value the items on the left more.”
June 19, 2002 8
Supporting Agile “Sentences”
1. Our highest priority is to satisfy the customer through early and frequent delivery of valuable software.
2. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter time scale.
3. Working software/product is the primary measure of progress.
4. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
5. Business people and developers work together daily throughout the project.
6. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
June 19, 2002 9
Questions for Reflection
• The first step in looking at any Agile method is to ask the following questions: – How close are your customer’s views and values to the
views and values expressed in the Agile Manifesto?
– How close are your program’s views and values to the views and values expressed in the Agile Manifesto?
– How close are your organization’s views and values to the views and values expressed in the Agile Manifesto?
– How close are your personal views and values to the views and values of the Agile Manifesto?
Adopting Agile Methods where they do not fit with the value system will not be successful.
June 19, 2002 10
When to Apply Agile Methodologies
• Problems characterized by change, speed, and turbulence are best solved by agility.– Accelerated time schedule combined with significant
risk and uncertainty that generate constant change during the project.
• Is your project more like drilling for oil or like managing a production line?– Oil exploration projects need Agile processes.
– Production-line projects are often well-served by rigorous methodologies.
“On projects with more than 250 people, methodology will have almost no impact on success or failure – politics will dominate.” Jim Highsmith
June 19, 2002 11
Some Agile Methodologies
• Extreme Programming (XP)
• Scrum
• Feature-Driven Development (FDD)
• Adaptive Software Process
• Crystal Light Methodologies
• Dynamic Systems Development Method (DSDM)
• Lean Development
June 19, 2002 12
Summary of Agile Characteristics
• Adaptability rather than predictability
• People rather than development process– Being agile means accepting that outcomes are not
predictable and that processes are not repeatable
• Collaborative values and principles
• A barely sufficient methodology– “the conventions we agree to”
– Processes are described in manuals; practices are what happen in reality
June 19, 2002 13
Agile PM issues to facilitate SW development
• Need a cohesive culture able to support and facilitate a variety of management and development methods
• Management needs a defined Info. Tech. framework– Management processes – Management tools/tool suite
• Management needs to be supportive of the development team– Interfaces to other functions offloaded– Training occurs up front and in-depth– Experienced core of the team– Variety of communication and collaboration tools
(available for use)
June 19, 2002 14
Agile Program Management Issues
• Promote teambuilding and trust, keep politics out of the effort
• Set an open tone with the customer(s) organizations
• Interpret and translate risks for overall program integration and a common view.
• Have a robust, flexible, and adaptable configuration and data management system
• Integrated Product Teams to some extent – (need immediateimmediate value)
June 19, 2002 15
• Extraordinarily robust test program through out the development process
• Anticipate the development and test needs developing test data and cases in advance
Agile Program Management Issues Cont’d
Involves Testing For:
Pre-ConditionsPre-Conditions
Post-ConditionsPost-Conditions
Class InvariantsClass Invariants
June 19, 2002 16
Agile Program Management Issues
• Storyboard the development and assign story actors to live the role
• Use automated tools for organizational and summary tasks
June 19, 2002 17
Develop a Componentized Architecture
• Principles– We do the simplest thing that could possibly work
making future changes or additions easier– The right design at the right time, no more
• up-front high-level system architecture• up-front high-level component architecture• up-front high-level data model• details are determined when the time comes for functionality
to be built
• Benefits– Less is faster, cheaper, and leads to “better”– Flexibility minimizes the cost of change
June 19, 2002 18
Product Build Philosophy
• Principles– Build the complete product, all the time– One button builds everything, including
– Product executables– Installation materials– Test harness and test components– Generated documentation
– Build can be accomplished from the command line– The same build process is used by everyone
• Benefits– Easy to manage; easy to add new team members– Integrates well with testing environment
June 19, 2002 19
Testing
• Principles– All code must have tests, with the test created first
– Unit tests are executed daily during the automated build
– When a bug is found, new tests are created
– All unit tests must pass before code can be released
• Benefits– Provides constant visibility into areas of the system at
risk
– The result is rapid progress and a system that always works better than it did the day before
June 19, 2002 20
Testing Meeting Configuration Management
• Test code maintained alongside project code
• Tests can be run from the command line
• Coverage statistics tell you how thorough the testing is
June 19, 2002 21
References• Agile Software Development Ecosystems, Jim Highsmith• Agile Software Development, Alistair Cockburn• Agile Modeling: Effective Practices for Extreme Programming and the
Unified Process, Scott Ambler• Agile Development, Rich McCabe, May 2003• Agile Software Development with Scrum, Ken Schwaber and Mike Beedle• Extreme Programming Explained: Embrace Change, Kent Beck• Refactoring: Improving the Design of Existing Code, Martin Fowler• Adaptive Software Development, A Collaborative Approach to Managing
Complex Systems, Jim Highsmith• A Practical Guide to Feature-Driven Development, Stephen Palmer and
John Felsing• Foundations of Lean Development: The Lean Development Manager’s
Guide, Vol 2, Robert Charette• Agile Software Development, Dottie Acton, Lockheed Martin Mission
Systems Oct, 2002 (Unpublished