You are on page 1of 21

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 james.j.murray.iii@lmco.com 1
Topics
• Introduction
• Terminology
• The Agile Manifesto
• Some Agile Methodologies
• Summary
• References

June 19, 2002 2


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 3


June 19, 2002
1910

WWI
1920

1930
Great
Depression

Trucks
Aircraft

Artillery
Naval Ships
Cargo Ships
1940
Battle of the Atlantic

Tanks / SP Guns
WWII

WWII Production

1950
War
Korean

2,455,964
102,351
372,431
5,425
296,429
71,062
Cold War

Line of Balance Technology 1960


Program Evaluation and
Review Technique (PERT)
Critical Path Method (CPM)
Lean Production 1970
Vietnam War

development methods
1980
Willoughby Templates
“Solving the Risk Equation”
• Program management is an evolving science

Berlin Wall Falls


Total Quality 1990
Management Desert Shield / Desert Storm
Concurrent Development
Program Management Evolution

Risk Mgmt Guide for


DoD Acquisition
Spiral Development
2000
Operation Iraqi Freedom
Continuing to seek efficient methods to address new

4
Current Problem in PM & SW
development
31.1% of projects will be canceled
before 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/management


June 19, 2002 practices addressing the problem? 5
What is the core challenge?
What is the nature of system/software development?
• Well-understood, static problems, demanding
definable, predictable process, like
– Manufacturing a widget Process = Product
– Constructing a building
– Shooting zeppelins with cannons*
OR

• Exploration of many evolving unknowns, demanding


a fluid, social learning process, like
– Mountain climbing Team = Product
– Jazz jam session — McCarthy
– Tracking jet fighters with self-guiding missiles*

* Phillip Armour. “Zeppelins and Jet Planes: A Metaphor for Modern


June 19, 2002 Software Projects” Communications of the ACM, October 2001. 6
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 7


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 8


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 9
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 10
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 11


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 12


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 13
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 immediate value)

June 19, 2002 14


Agile Program Management Issues
Cont’d
• Extraordinarily robust test program through out the
development process
Involves Testing For:
Pre-Conditions
Pre-Conditions

Post-Conditions
Post-Conditions
Class
ClassInvariants
Invariants

• Anticipate the development and test needs developing


test data and cases in advance
June 19, 2002 15
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 16


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 17


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 18
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 19


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 20


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

June 19, 2002 21

You might also like